Česky   |  Deutsch   |  English   |  Español   |  Français   |  Indonesia   |  日本語   |  한글   |  Polski   |  Português (BR)   |  Türkçe   |  中文   |  正體中文   |  Your Language  
PlanetNetbeans
Planet NetBeans is an aggregation of NetBeans related musings from all over the Blogosphere.
Feeds
[RSS 1.0 Feed] [RSS 2.0 Feed]
[FOAF Subscriptions] [OPML Subscriptions]
Do you blog about NetBeans ? Add your blog to PlanetNetBeans.
Feed Subscriptions
NetBeans Zone - The social network for developers (feed)
pandaconstantin's blog (feed)
APIDesign - Blogs (feed)
ludo's blog (feed)
hansmuller's blog (feed)
pkeegan's blog (feed)
richunger's blog (feed)
tball's blog (feed)
timboudreau's blog (feed)
David R. Heffelfinger (feed)
Carsten Zerbst's Weblog (feed)
Winston Prakash's Weblog (feed)
Need to find a title (feed)
Roger Searjeant's blog (feed)
Optonline Webmail (feed)
Michael's blog » NetBeans (feed)
DukeScript (feed)
ProNetBeans (feed)
Tim Boudreau (feed)
Paulo Canedo » NetBeans English (feed)
Bistro! 2.0 (feed)
Anchialas' Java Blog (feed)
markiewb's blog (feed)
Anuradha (feed)
Netbeans6/6.5 my best practices (feed)
Java Evangelist John Yeary (feed)
Java, business and... NetBeans ! [[ Jonathan Lermitage ]] - NetBeans IDE (feed)
Neil's Dev Stuff (feed)
Category: NetBeans | Software and Science (feed)
Computer says null; (feed)
NetBeans Adventures, Java and more (feed)
Inspiration and Expression » Netbeans (feed)
John O'Conner » NetBeans (feed)
Koberoi Oracle (feed)
Adam Bien (feed)
Ignacio Sánchez Ginés » NetBeans (feed)
Bernhard's Weblog (feed)
Michel Graciano's Weblog (feed)
Ramon.Ramos (feed)
Ozone and Programming » netbeans (feed)
NetBeans Ruminations » NetBeans (feed)
Tiplite » netbeans (feed)
Arun Gupta, Miles to go ... (feed)
Geertjan's Blog (feed)
.JARa's Bilingual Weblog (feed)
JavaFX Composer (feed)
The Java Jungle (feed)
Jesse Glick (feed)
Martin Grebac (feed)
The NetBeans Community Podcast (feed)
NetBeans Profiler (feed)
NetBeans for PHP (feed)
NetBeans Web Client (feed)
Rechtacek's (feed)
Virtual Steve (feed)
My First Blog - Satyajit Tripathi (feed)
The Aquarium (feed)
Tinuola Awopetu (feed)
Insert Witty Irony Here (feed)
Gualtiero Testa » Netbeans (feed)
James Selvakumar's Blog » netbeans (feed)
nB gUru » NetBeans (feed)
Newsintegrator Blog » netbeans (feed)
Praxis LIVE » NetBeans (feed)
TechAshram » NetBeans (feed)
There's no place like 127.0.0.1 » Netbeans (feed)
mkleint (feed)
NetBeans Community Docs Blog (feed)
The Netbeans Experience (feed)
NbPython/ jpydbg / pymvs (feed)
Shanbag's Blog (ರಜತ ಲೋಕ) (feed)
Wade Chandler's Programming Blog (feed)
Devlin's Lab (feed)
Big Al's Blog (feed)
Code Snakes (feed)
In perfect (spherical) shape (feed)
Van Couvering Is Not a Verb (feed)
Diego Torres Milano's blog (feed)
Vroom Framework (feed)
Messages from mrhaki (feed)
Jeff's Blog (feed)
Oliver Wahlen's Blog (feed)
Shuttle between Galaxies (feed)
Welcome to my live... (feed)
Netbeans IDE Blog by Tushar Joshi, Nagpur (feed)
Devel Blog (feed)
diamond-powder (feed)
Manikantan's Netbeans (feed)
Antonio's blog (feed)
Where's my Blog?!

Powered by:    Planet

Last updated:
April 17, 2015 10:05 PM
All times are UTC

Sponsored by
sponsored by Oracle

visit NetBeans website
Geertjan's Blog - April 17, 2015 08:52 PM
Java in the Trenches

Java has been driven into the trenches, some years ago already.

More or less the general consensus appears to be that the frontend battle has been won by JavaScript.

So, what's the role for Java in this brave new world? More or less the general consensus appears to be that Java has great value on the backend. The Java EE Platform is awesome in that it consists of specifications agreed upon across the industry, whereas the JavaScript ecosystem is crazy mad cowboy land.

However, what happens when those frontend developers, who have, without any resistance, moved to JavaScript, discover the value of Node.js over the value of the Java EE Platform? What happens when they see the value of doing the frontend and the backend in the same language, i.e., JavaScript? What happens when they rate that value higher than the value of the industry-based specification-approach promised by the Java EE Platform? When the value of an agreed upon platform, i.e., the Java EE Platform, weighs less than the value of having a common programming model right across the application, from its front to its back... then what happens?

What is to be done? Instead of giving up on the frontend and retreating to the backend, from which a further retreat will inevitably follow, into obscurity, the frontend should be defended, by Java developers. How? By means of DukeScript.

DukeScript - April 15, 2015 11:53 AM
The Design Experiment

So DukeScript claims to have a clean separation of design and development? That’s nice, but many frameworks claim that, and often the statement doesn’t hold in practice. That’s why we decided to do an experiment. Is it possible with DukeScript to completely outsource the UI design to a designer with no knowledge of DukeScript, or a specific set of tools? Here’s what we found:

The state of UI Development

Designing user interfaces is a tough job and we usually spend a lot of time in our live as developers in dealing with design issues. The worst case is if we have to deal with all these issues in manually written code. That’s why for most UI technologies we have tools that allow us to design and test the User Interfaces via drag and drop.

Web Designers vs. Web Developers (Infographic)

Infographic by: Shane Snow. Shane Snow is an entrepreneur, writer, and recent Columbia MS/Digital Media graduate. Visit his personal site and follow him on Twitter @shanesnow.

For Swing we have the Matisse GUI Builder in NetBeans and the Window Builder in Eclipse which help a lot getting the layout of forms right. For JavaFX there’s the SceneBuilder that helps us at least with FXML. But while it’s good to have them all of these tools are rather limited when it comes to slightly more complex designs.

With SceneBuilder for example you can drag and drop a Polygon on your design, but you have no means of changing it. It’s a triangle by default and you need to manually edit the FXML if you want to change that, e.g. make it a star shape. And while coding UIs manually is bad, “coding” (F)XML manually is horrible.

That’s why we decided to use HTML for DukeScript views. Layout and Styling with HTML is very well understood and there are tons of resources out there that help you get it right. Admittedly it’s not perfect, but there’s more information than for any other technology. You also have the best and most advanced tools available, and not just a single one, that seems abandoned and incomplete.

But still it’s us, the developers, who will get the mockups from the designer, and who will have to try to convert them, as pixel-perfect as possible to create the final design. That’s why we decided to do an experiment and see how far we can get in separating design and development. We decided to buy a readymade design and see if we can really use it with DukeScript.

The Setup

We wanted to create an app that is simple enough to show the full source code, so we decided to use our Todo-list example. This is the functional prototype:

In order to make this experiment really fair, we decided not to use a readymade design. If we would have hired a designer to do the design for us we would have been able to give him or her directions how to do it, what to use and what to avoid. So we started looking for a design. There are some websites out there that work similar to stock photo sites, but with website- or app- designs instead of the photos. Graphicriver is one of them. There we found a design that had all the buttons, etc. and looked nice:

The design is in Photoshop format (PSD) just like the designs we typically get from the design department. So now we needed to convert that to HTML and CSS.

Finding the right Designer

Initially I tried to find a designer, but the offers I got were either too expensive (around 1000$), or I didn’t feel confident that the person really had the required skillset. Fortunately someone sent me a hint that there are tons of online services for that. I just needed to type “PSD to HTML” in Google and there they were, by the million…

We checked a couple of review sites to find one that isn’t too expensive while still producing good code, and ended up with Rapidxhtml.

There you simply upload your design and after that, you can decide what you want from them in very much detail. We went for a basic responsive layout. Some things like the styling of checkboxes and scrollbars are extras, because they’re not standardized across HTML-renderers, so we decided to skip them as we only wanted a simple example. In the end the calculated price for our package was $170. That sounded OK, so I pressed the submit button and waited…

Six hours later I received an email from Rapidxhtml telling me my design was ready for download. That was faster than expected (the offers I had received up until then were estimating between 2 days and several weeks). I did so and the result looked pretty good at first sight, but didn’t resize. I wrote back and another hour later I received an updated version that resized. Here’s what the design looks like:

Working with the design

There were some more minor differences between the design and the result, and I wrote back. There was no reply, so I’d suggest that for a real project it’s probably better to go for a premium service ( like psd2html ), or work with a designer you know. But the remaining problems weren’t severe, so I decided to have a closer look at the HTML and CSS. It looked nice, well structured and I could understand what was going on. Here’s the relevant section of the HTML:

<div id="box">
  <div class="box-cont">
    <header class="box-header">
      <div class="box-title">My tasks for today</div>
      <div class="box-links"><a href=""><img src="images/btn-cal.png" alt="" /></a><a href=""><img src="images/btn-settings.png" alt="" /></a></div>
    </header>
    <section class="todo">
      <section class="todo-bg">
        <ul class="todo-list">
          <li class="done"><input type="checkbox" name="" class="toggle" checked="checked" /> Design a to-do list <span class="btns"><a href=""><img src="images/icon-edit.png" alt="" /></a><a href=""><img src="images/icon-delete.png" alt="" /></a></span></li>
          <li><input type="checkbox" name="" class="toggle" /> Design a super task<br />with 2 lines <span class="btns"><a href=""><img src="images/icon-edit.png" alt="" /></a><a href=""><img src="images/icon-delete.png" alt="" /></a></span></li>
          <li><input type="checkbox" name="" class="toggle" /> fix the dog toy <span class="btns"><a href=""><img src="images/icon-edit.png" alt="" /></a><a href=""><img src="images/icon-delete.png" alt="" /></a></span></li>
          <li><input type="checkbox" name="" class="toggle" /> buy coffee <span class="btns"><a href=""><img src="images/icon-edit.png" alt="" /></a><a href=""><img src="images/icon-delete.png" alt="" /></a></span></li>
          <li><input type="checkbox" name="" class="toggle" /> feed the dog <span class="btns"><a href=""><img src="images/icon-edit.png" alt="" /></a><a href=""><img src="images/icon-delete.png" alt="" /></a></span></li>
          <li><input type="checkbox" name="" class="toggle" /> take a walk with the dog :) <span class="btns"><a href=""><img src="images/icon-edit.png" alt="" /></a><a href=""><img src="images/icon-delete.png" alt="" /></a></span></li>
        </ul>
      </section>
    </section>
  </div>
</div>

Next I started applying the design to my Todo-list sample. The changes I had to make were very straightforward. I removed the demo content of the list and added some data-bind directives instead:

<div id="box">
            <div class="box-cont">
                <header class="box-header">
                    <div class="box-title">My tasks for today</div>
                    <div class="box-links"><a href=""><img src="images/btn-cal.png" alt="" /></a><a href=""><img src="images/btn-settings.png" alt="" /></a></div>
                </header>
                <section class="todo">
                    <section class="todo-bg">
                        <ul class="todo-list" >
                            <!-- ko foreach: tasks -->    
                            <li>
                                <!-- ko ifnot: $root.editing()===$data -->
                                <input type="checkbox" name="" class="toggle" data-bind="attr:{checked: complete}"/>
                                <span data-bind="text: title">

                                </span>
                                <span class="btns">
                                    <img src="images/icon-edit.png" alt="" data-bind="click: $root.editTask"  />
                                    <img src="images/icon-delete.png" alt="" data-bind="click: $root.deleteTask" />                        
                                </span>


                                <!-- /ko -->

                                <!-- ko if: $root.editing()===$data -->
                                <form data-bind="submit: $root.stopEditing">
                                    <input type="text" data-bind="textInput: title"/>
                                </form>
                                <!-- /ko -->
                            </li>
                            <!-- /ko -->
                            <li>
                                <form data-bind="submit: addTask">
                                    <input type="text" data-bind="textInput: input"/>
                                </form>
                            </li>
                        </ul>
                    </section>
                </section>
            </div>
        </div>

Running the example showed the expected result:

I fixed some minor problems in the html and css, and made the project more responsive by hiding some paddings and elements on smaller devices, but nothing fancy. There are some tricks that help an app behave like an app, and not a website, and I applied some of them, e.g. to prevent the “scroll/bounce effect” on iOS, I used this:

<script type="text/javascript" >
            document.ontouchmove = function (event) {
                event.preventDefault();
            };</script>

Normally I would have asked the designer to fix it, but with the online service that obviously didn’t work. So building a longer term relationship with your designer is beneficial. But even with this suboptimal setup, I was able to get a result quite quickly. After about an hour of changes the application was ready.

The result

Was the experiment a success? I spent 174$ for it (4$ for the PSD and $170 for the conversion). It took 7 hours to get from the design to the HTML including a fix. The result could be used more or less unmodified in the app. So, yes, I think it was a very successful experiment!

Try it for yourself, there are plenty of nice app designs out there that you can convert to an app using DukeScript, no design skills required!

You can download and test the result yourself:

https://github.com/dukescript/design-experiment

Geertjan's Blog - April 15, 2015 09:13 AM
YouTube: WADL-Driven REST Client Generation

Did you know you can (1) let Jersey generate a WADL file and (2) let NetBeans generate REST client stubs from the WADL file? No? Well, watch this screencast to see it all in action:

NetBeans Zone - The social network for developers - April 14, 2015 05:15 PM
NetBeans at Java Day Tokyo 2015

Recently, Java Day Tokyo 2015 was held, which included a successful NetBeans event. Around 100 attendees came to the NetBeans event, with about 50% being familiar with NetBeans IDE and 20% using it for their day-to-day development.  Preview Text:  Read a report by Masaki Katakai in Tokyo on the recently held NetBeans Day in Tokyo! ...

Geertjan's Blog - April 14, 2015 04:46 PM
YouTube: Defect Driven Design!

Every now and then, this very specific YouTube clip needs to be republished to the world, simply because it is so awesome!

NetBeans Zone - The social network for developers - April 14, 2015 12:18 PM
Agenda: NetBeans Days Greece

NetBeans Days in Greece, to be held on Friday and Saturday, 17 and 18 April, will be a great event in the history of the NetBeans community. The agenda has been finalized (although it can/will change based on what participants want to do/hear during the event) and is as follows: Friday, April 17 Preview Text:  The agenda for NetBeans Day Greece,...

NetBeans Zone - The social network for developers - April 14, 2015 07:10 AM
j-lawyer.org: Our Five Favorite NetBeans IDE Features!

Continuing a series of articles focusing on NetBeans users and their five favorite NetBeans IDE features, here's the next part, by Jens Kutschke and the development team at j-lawyer.org in Germany. -- NetBeans team. Preview Text:  NetBeans feels more like "all of one piece" supporting a typical development process, instead of having...

Geertjan's Blog - April 13, 2015 12:32 PM
Free: Inject Extra Power into the Browser!

Are you getting everything you can out of your browser? Sure, the browser can do so much more with new and richer content than a few years ago. However, did you know you can connect it to your development environment?

Install the free NetBeans Connector plugin into the Chrome browser and you're good to go:

Once you've installed the above, what can you do with it?

Quite a lot! Here are some small examples:

So, go here, and inject new power into the browser, for free, today!

DukeScript - April 12, 2015 04:53 PM
No More Redeploys!

One of DukeScript’s motto is “JavaScript as it was meant to be!” - i.e. our vision is to use the benefits of Java to create something more productive than JavaScript. JavaScript developers are used to an edit/reload/try workflow. The iterative nature of that style of development is very additive and productive. It is so comfortable that people may believe it is perfect. Well, it is not: DukeScript can do even better!

Yes, with DukeScript you can avoid the need to reload and moreover thanks to the structural nature of the used language (Java) also avoid the loss of memory state during “reload”.

No Redeploys via Command Line

Let’s start by creating sample skeletal project from our Maven Archetypes and execute it:

$ mvn archetype:generate \
  -DarchetypeGroupId=com.dukescript.archetype \
  -DarchetypeArtifactId=knockout4j-archetype 
  -DarchetypeVersion=0.8 \ # or more recent version when available
  -DgroupId=com.dukescript.test \
  -DartifactId=no-redeploys \
  -Dversion=1.0-SNAPSHOT
$ cd no-redeploys
$ mvn install
$ cd client
$ mvn exec:exec

Your application is running and you can play with it. For example change the Hello World message and see how it is changing throughout the page (more about the structure of the application in getting started tutorial). However we are not here to analyse the structure of the application, but to see the benefit of the re-deploys. Leave the application running and locate the DataModel.java file in your application. In the words method find the line that splits the Message String and change it to convert all characters to lowercase:

$ find src/ | grep DataModel.java 
src/main/java/com/dukescript/test/DataModel.java

# the following command prints the line we want to change
$ grep split src/main/java/com/dukescript/test/DataModel.java
        String[] words = message == null ? new String[0] : message.split(" ", 6);

# use your favorite editor here
$ sed -i s/message[^=]*split/message.toLowerCase\(\).split/ src/main/java/com/dukescript/test/DataModel.java

# verify the line is really changed
$ grep split src/main/java/com/dukescript/test/DataModel.java
        String[] words = message == null ? new String[0] : message.toLowerCase().split(" ", 6);

# perform the re-deploy
$ mvn process-classes

Now return back to your application and type a character into Hello World message field. This invokes the modified code and you can see that all words are now in lower case. If you want, you can now switch to upper case:

$ sed -i s/message[^=]*split/message.toUpperCase\(\).split/ src/main/java/com/dukescript/test/DataModel.java
$ mvn process-classes

See the productivity boost!? No more re-deploys! Just change your code and immediately see the changes.

Please note that the system is better than page reload in JavaScript - the text in the message field is kept even the code is reloaded. This is possible because Java is a structured language - we know what a class is, what are its methods and their code. This is clearly separated from object instances, so when there is a code change, we can just change the code in classes, but we can leave the object instances in memory untouched.

No Redeploys from an IDE

Some may object that JavaScript is still more productive, as it avoids the process-classes step. True, if you are working from a command line, however if you switch to some reasonable development environment, like NetBeans, you can avoid this step alltogether.

Open the client project in NetBeans 8.x. Press F6 to execute it. Play with the application as usual. Press Ctrl-O and to open the DataModel class. Change the line as in the above example. Press Ctrl-S to save the file and change something in the Hello World input field in your running application - the change is immediately visible.

No more re-deploys with DukeScript!

Geertjan's Blog - April 10, 2015 07:00 AM
NetBeans Platform Certified Training at Fontys University of Applied Sciences

Yet another NetBeans Platform Certified Training was held recently. At Fontys University of Applied Sciences in Venlo, a group of students is working on a logistics simulation software called LIMO, which stands for "Logistics Impact Model":

http://limo.fontysvenlo.org

The purpose of the project, created together with and for TNO, is to graphically visualize logistics chains, simulate costs, and generate advice on how to reduce or eliminate expenses.

The source code is on GitHub:

https://github.com/LogisticsImpactModel

Here's the group:

In two days, all the major NetBeans Platform topics were covered, many hands-on workshops were done, and by the end, after a lot of interaction and discussion, the group was able to plan several new features for the project. For example, a NetBeans-based Project System will be added and undo/redo functionality will be integrated into the Visual Library Scene. A prototype of the new features, as well as the existing Scene with its simulation capabilities is shown below: 

Are you also creating client-side applications and would you like to be able to immediately focus on the domain/business logic, rather than all the infrastructure and plumbing that desktop applications require? For domain-driven desktop programming, the NetBeans Platform is a perfect solution. Either get the awesome book "NetBeans Platform for Beginners" or the equally awesome JavaFX-oriented book "JavaFX Rich Client Programming on the NetBeans Platform". Or get both. And take a NetBeans Platform Certified Training, to quickly put all the pieces together, 100% free if you're a group of developers at an educational institution.

NetBeans Zone - The social network for developers - April 10, 2015 06:52 AM
Mirko Rener: My Five Favorite NetBeans IDE Features!

Continuing a series of articles focusing on NetBeans users and their five favorite NetBeans IDE features, here's the next part, by Mirko Rener. -- NetBeans team. Preview Text:  What do you like most about NetBeans IDE? In this article, Mirko Rener talks about multi-language support, the NetBeans community, and much more! ...

markiewb's blog - April 09, 2015 07:31 PM
Github issues and Color Preview plugins

Today I like to blog about some new plugins from another very productive plugin author. All of them were created by junichi11, who created more than 15 plugins, which all are freely available at the NetBeans plugin portal. Many of them are PHP-related, so if you are a PHP developer you are certainly using one of his plugins already.

a) Github issues plugin

https://github.com/junichi11/netbeans-github-issues-plugin

This plugin integrates issues from your github repositories into the tasks view of NetBeans. From within NB you can view, edit and create issues. And much more…

2015-04-09_21h02_07

BTW if you are using Backlog for tracking your issues, then you can also use https://github.com/junichi11/netbeans-backlog-plugin

b) Color preview plugin

https://github.com/junichi11/netbeans-color-codes-preview

This plugin shows color for hexadecimal encoded colors (f.e. #FF0045) in the left sidebar of the editor. This feature is not new to IDEs, but it is now finally available for NetBeans. Enable this feature via “View->Show Colors” and the colors in CSS files will be visualized. It is configurable and thus not limited to CSS.

2015-04-09_21h08_26

The plugins are signed and this way they can be installed directly from your IDE (Tools->Plugins->Available Plugins). You can also download them from their github pages or from http://plugins.netbeans.org and install them manually

Do not hesitate to post feedback or file issues at the respective github pages of the plugins. junichi11 is a friendly one and very responsive! Thank you for the good work junichi11!


Geertjan's Blog - April 09, 2015 08:59 AM
Sample REST Application

For some time in NetBeans IDE, there's been this example available in the New Project dialog:

The template above creates a new NetBeans Platform application that consumes services from the "Message Board" application that is available in the "Web Services" category in the New Project dialog.

I looked at the code of the "Sample REST Application" and, since it had been written some years ago, a lot of XML files are included, instead of annotations on TopComponents. And there are other problems in the example, too. Rather than updating it within the NetBeans sources, I think it's better to have the code available separately, so it can be worked on and extended further by anyone out there. So, here it is:

github.com/GeertjanWielenga/SampleRESTApplication

Here's the structure of the sample REST application, together with the Java EE application that provides the services:

Notice that the NetBeans Platform application uses Maven as its build system.

When both applications are deployed, you see the following, click to enlarge the image:

Related issue: https://netbeans.org/bugzilla/show_bug.cgi?id=251791

Adam Bien - April 09, 2015 04:54 AM
13th Airhacks.tv Questions and Answers

13th airhacks.tv, or answers for the questions:

Accidentally, I forgot to answer the questions 9 and 10. I will cover them soon, probably in a 13/2 show.

Any questions left? Ask here.

See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting


Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - April 08, 2015 09:03 PM
22 June, 2015: NetBeans Day Brazil

In February, we had NetBeans Day Netherlands, while March was NetBeans Day Germany. In April, i.e., next week, it's NetBeans Day Greece, while NetBeans Day UK is in May. And, guess what, you can now also sign up for... NetBeans Day Brazil, to be held in June, the day before JavaOne Brazil:

Go here to sign up for this free event: https://www.eventbrite.com/e/registo-netbeans-day-brasil-2015-16474984121

Adam Bien - April 08, 2015 02:45 AM
A Java EE Startup: Getting Lucky With DreamIt

Norman, could you please introduce yourself?

I am CTO and co-founder of dreamIT where we especially built and keep building up an entire gambling platform for a world-wide lottery provider from scratch. Since then I have accepted several key responsibilities, piling up more than 15 years of experience in the gambling and technology sectors. I worked across many gambling verticals including Sports- and Horse Betting, Casino, and Lottery. Through my career I have worked with many of the (world's) leading gambling operators where I developed and deployed strategies, products and solutions across Europe for both B2B and B2C customers.

Until now I have been improving my skill set continuously - especially in the web, mobile and interactive world to build high-performance, scalable and maintainable - but not over-engineered - solutions. I believe that simplicity of a solution ensures protection of investments for the ever-changing requirements in today's fast-paced world and is one of the most important - but almost underrated - challenge in coding. With deep understanding on both B2C and B2B sides of the Gambling Industry, I was driven by my passion to superior systems, excellent user experience and, of course, innovation in the gambling.

What is dreamIT? What are you building?

dreamit.de is a Hamburg-based software engineering company delivering individual software solutions tailored to very specific clients’ needs. We are focusing on large, transaction-based B2C platforms, and we develop all elements of such tailor-made solutions (database-/back end systems, frontend, mobile (iOS/Android)). We consequently use agile software development methods with short sprints and a continuous deployment approach. We have a strong and proven ability to architect, design, develop, implement and operate SaaS solutions. Our senior architects address typical challenges with proven best practices, which enables us to quickly find the right solution for our clients’ needs.

One of our teams' largest projects so far has been the development of an entire gambling platform for a foreign secondary lottery provider from scratch, following the client's very specific requirements. We helped this client to really identify, articulate and document any technical product specific needs, based on their business needs. Strictly following these customer specifications, we built an entire website-/desktop-/admin tool system that currently processes an 8-digit number of transactions each month.

You started straight with Java EE 6. Are you still happy with this decision?

Yes, we are still happy.

How much traffic (peek e.g transactions per second, concurrent users etc.) your application has to handle?

In the lottery business we tend to have quick surges in user traffic, resulting in big peeks. On high jackpots we get about 4000 to 5000 concurrent users.

What about the performance? Is Java EE fast enough?

Java EE is really fast and solid as a rock. Job applicants often say that they've never seen a faster web site before.

Are you happy with Java EE's productivity?

Java EE is great. It doesn't restrict you in anything. We are working domain driven and it seems that Java EE is built for it. You have bean validation, CDI, JSF, which all works very well together. So you can build perfect domain models with very good cohesion. Especially CDI fits well in the whole Java infrastructure, because you can use every visibility as you would without a container. This is a big advantage over classical EJBs, where you need everything public, which should be handled by the container.

We are using the full stack of Java EE only. And we try to avoid third party libraries. Simplicity is our key to success. And Java EE gives you almost everything out-of-the-box, so we can concentrate on business logic.

Any plans to migrate to Java EE 7?

We are planning to migrate to Glassfish 4.1 or even Payara in the next few weeks. Java EE 7 is not the key reason for migration as Java EE 6 is quite cool for us, but our developers are waiting to use "revolutionary" Java 8. In general we try to be up-to-date with our technology stack as soon as possible.

What application servers, tools etc. UI technologies are you using?

We are using Glassfish 3.1.2.2 right now. Our database is mongoDB, our frontend is JSF. The IDE is IntelliJ IDEA. The continuous integration server is TeamCity from JetBrains. Other tools are: haproxy, nginx, hazelcast, SonarQube.

Should architects code?

Absolutely. We think, they work basically for the development team. And developers usually understand code very well. An architect must be present his ideas for the developers in source code. Though they also must be able to do some nice diagrams both for developers and the management. But management compatibility is only a side aspect of the architect's job.

How many developers are working on the application?

Currently we have about 15 developers and the team keeps growing fast.

Are there any pain points with Java EE? What could be simplified?

Unfortunately the CDI spec changed with Java EE 7. Things that were possible with EE 6 don't work any longer. Another problem is Oracle's policy of Glassfish updates. But Payara is a hot candidate to fill the gap.

Will you choose Java EE for the realization of your ideas again?

For sure. The technology is mature, but still let's you do whatever you want.

I really enjoyed to work with you and your team--we had lots of fun. What in your opinion is more important, having fun with hacking and be passionate, or the actual experience?

It's a mixture of both. You need experienced developers in the team (at least the architect). But they all need to be passionate including the experienced developers.

Do you have any demos, links etc. for the readers?

We do not promote our customers' web sites, so unfortunately I am not able to give you any demo link here. But visit our web site http://dreamit.dein contact with us.

Or visit us on the code.talks developer conference where we act as a sponsor too http://www.codetalks.de/2015/sponsoren

We will starting soon our github repo. And in general we try to establish us as a brand -- at least here in Hamburg. Just to be a cool developer company. We now organize our first meet-ups. Hopefully with your support too. I count on you.

Additionally, here is a link to our chief architect: http://frankcaputo.de. He is a member of the JSF and 
MVC-Ex pert-Groups, where we e.g. have a chance to help improving upcoming JSF versions directly. Frank participates in JSF improvements significantly. E.g. make JSF more HTML5 markup friendly with pass-through attributes or adding resource library contracts.

You always ask me whether I know passionate Java EE developers. How to apply? :-)

Simply send us an email to jobs@dreamit.de, take a look at http://dreamit.de/it-jobs-in-hamburg or contact me directly on Xing https://www.xing.com/profile/Norman_Schoeneich

Norman, thank you for the interview!


Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - April 07, 2015 07:00 AM
New Book on JavaFX

Diese Buch bietet Ihnen einen schnellen Einstieg und umfassenden Überblick über die gesamte JavaFX-API. Schritt für Schritt zeigt es, wie Sie eine erste Anwendung bauen, wie Sie das eigene Datenmodell in der Oberfläche darstellen und editierbar machen und wie Sie die Anwendung mit JavaFX-Features anreichern, um ein modernes und ansprechendes User Interface zu erhalten.

Dabei lernen Sie u.a., folgende Möglichkeiten von JavaFX einzusetzen:

• Controls nutzen und anpassen
• Formulare layouten und eigene Layouts erstellen
• Charts/Diagramme erzeugen
• Animationen erstellen
• Audio und Video einbinden
• Anwendungen mit CSS stylen
• Nebenläufigkeit nutzen

Anhand eines durchgängigen Beispiels können Sie die besprochenen Inhalte praktisch nachvollziehen und vertiefen. Darüber hinaus können Sie das Buch bei der späteren Projektarbeit zum Nachschlagen einsetzen.

Das Buch richtet sich gleichermaßen an Einsteiger und Umsteiger in JavaFX.

The book is by NetBeans Dream Team member Toni Epple, and is available in German right now, as you can see above, from here:

http://www.dpunkt.de/buecher/4403/javafx-8.html

Adam Bien - April 06, 2015 05:17 PM
Questions For 13th Airhacks Q&A Easter Egg Edition at Tuesday 7th April

Last chance to ask questions. We will discuss them at 7th April (exceptionally at Tuesday), 6.PM. CET: http://www.ustream.tv/channel/adambien:

  1. I have never used Spring ,hibernate and struts ,I build my web app's using Jsf, ejb,cdi ,jpa ,is the same ? what's the difference? [@SoyRoji]
  2. Do you follow any java or software development related blogs? If so, would you share some with us. [matlach]
  3. JPA 2.1 has properties to drop and create the database but not to update it. How do you usually handle database schema updates and rollbacks? [xavistp]
  4. For multi tenancy application I am using JAVA EE 7. I need to change schema dynamically based on customer.Since there will be a lot of customer so multiple EntityManager will be insufficient. So I am using Hibernate's EmptyInterceptor along with ThreadLocal and changing schema dynamically which is working fine.Since, my solution is tightly couple with Hibernate, could you suggest me some generic way so that it will be vendor independent .

    Also Like to ask which application server( full java EE 7 support) will be best for production Glasfish(payara) or Wildfly or Liberty.

    [surajchhetry]
  5. In a JAVA EE 7 web application with an highly and dynamic configuration settings for the persistence tier, what will be your way? NoSQL or an entity abstraction layer like Atlassian JIRA (Apache OfBiz)? [riccardomerolla]
  6. Your thoughts on java ee "extensions" like deltaspike and picketlink as you always advocate slim "war"-files. i.e. few external dependencies?
I, for one, would miss for example "deltaspike data" or the powerful, though complicated, security features of picketlink (like build in JWT).

    I also noticed that you are a member of the JSR 375 (Java EE Security API) expert group. Do you have any infos/plans about that JSR?

    [haisi]
  7. Having read about the so called "onion architecture" as opposed to the traditional layered architecture I am wondering about how to realize that with Java EE. The onion promotes an application core, which is independent of libraries and infrastructure. With Java EE's POJOs I have a feeling that we are already close to that onion idea, right? Regards, Michael [micgn]
  8. How would you implement "RPC like" API between microservices using your Java EE approach? Do you think that JAX-RS can be used for that (especially with JAX-RS client API)? if not, what else could be used in Your opinion? Regards, Piotrek [pkucia]
  9. It's been announced a new MVC framework with Java EE 8. What do you see in the future of JSF? Do you think JSF will become obsoleted by this MVC framework? Thank you Antonio Varela.[antoniovl]
  10. Do you use JSF for the presentation layer of your projects, or you use someting else? Thank you again. Antonio Varela. [antoniovl]
  11. Why JNDI expose implementation bean name in global namespace? Why the caller must know name of bean for standardized JNDI java:global/appname/modulename/beanname!interfacename [n4noman]
  12. What are your recommended strategies for achieving zero downtime under continuous delivery principles? My team has a good pipeline in place for automated verification: from unit tests to functional tests to code coverage checks to corporate compliance checks to user acceptance tests. At the end of the pipe though, we still have to take a downtime while the application is redeployed. This can range from 1-5 minutes depending on the application, our current Java EE container is Apache TomEE. Thank you! jieryn
  13. Do you think there is value in having a JDBC driver wrapper which populates its configuration parameters (e.g. jdbc.url) from a distributed configuration management system like etcd (by CoreOS)? The idea being that a customer would stand up many instances of a JavaEE server, probably through Docker, and configure the database endpoint through etcd. Then the database could be dynamically migrated and update the etcd configuration. This might allow database migration without restarting all web layer microservices. Is this pathologically dangerous? Is there some alternative to this? Thank you! [jieryn]
  14. What is the best way to achieve a singleton JPA @Entity? I find I often I want to create a singleton object which holds runtime configuration data, configurable within the application itself, and persistently stored within the JPA environment for that application. In order to maintain that only one ApplicationConfiguration will ever exist within the application, I have to jump through hoops for all CRUD operations within my DAO layer and play tricks with the @Id (checking if @Entity exists, then remapping the CxUD with the getId() of the originally persisted entity, yuck). Would you please recommend a strategy for a JPA @Entity which follows @Singleton semantics. Thank you! [jieryn]
  15. Are cross-view (cross-rectangle) Presenter something valuable? Did you ever miss that? In JEE application I used to freedom in EJB assembly, for example: I have 3 EJB A,B,C. I can freely assembly other EJBs:
    
    @Stateless class AddressBean {
    @Inject A a;
    @Inject B b;
    }
    @Stateless class PaymentBean {
    @Inject B b;
    @Inject C c;
    }
    
    
    In JavaFx view is constructed in FXML with rectangles. For example one top rectangle is attendeeinput.fmxl and bottom rectangle is workshops.fxml. And bottom rectangle has inside other rectangle day.fxml. That is OK. What is hard to accept to me is that Presenter is tied to rectangles. I would like to have freedom with Presenter assembly, i would like to inject by @FMXL gui components from many rectangles. For example if checkbox from top rectangle is checked then textfield from bottom rectangle is disabled. It will be natural to me to have a dedicated Presenter, not tied to any rectangle, with injected by @FXML checkbox from top and textfield from bottom view. Conclusion: I want Presenter freedom. I didn't found the freedom in JavaFX so checked afterburner.fx. but there isn't also. My questions: 1. Is Presenter freedom something valuable or it is a wrong thinking. Bad analogy with JEE. 2. If valuable, is it possible to apply that concept to JavaFX, with or without afterburner.fx? [michaldo]

See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting


Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - April 06, 2015 07:00 AM
Mocha and Chai and NetBeans -- Unit Testing for JavaScript

Mocha and Chai work great with the unit testing support that is a standard part of NetBeans IDE for JavaScript files, as Adam Bien shows below:

Adam's blog on this is here: http://www.adam-bien.com/roller/abien/entry/first_greenbar_with_javascript

APIDesign - Blogs - April 05, 2015 09:02 PM
JavaScript is a New Assembly Language

Ever felt JavaScript is your carrier path? Well, maybe you should re-think you future! JavaScript is just another assembly language!

--JaroslavTulach 21:02, 5 April 2015 (UTC)

Geertjan's Blog - April 03, 2015 07:54 PM
How My Life Would Have Been So Much Better If We Had Used the NetBeans Platform

Came across this today from some years ago. If I may say so myself, about something created and delivered by me myself, I'd say this is still really excellent content and should help anyone getting started creating their applications on the NetBeans Platform:

Once you've watched the above, do yourself a favor and get this book: leanpub.com/nbp4beginners.

Adam Bien - April 02, 2015 11:38 AM
First Greenbar With JavaScript

Unit testing a UI-leass "hello world" JavaScript application (like e.g. Nashorn) with npmjs.com, mochajs.org and chaijs.com:

See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting


Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - April 02, 2015 07:00 AM
Updated NetBeans Twitter Page

Are you following NetBeans on Twitter? Do so, lots of info is spread in that way. Today the NetBeans Twitter page was updated and refreshed.

Click above or go here to get to the NetBeans Twitter page: https://twitter.com/netbeans

Java Evangelist John Yeary - April 02, 2015 03:45 AM
JSF 2.2 Tip of the Day: p:passthrough and How to use it

I was asking my team to go through their JSF pages, and to update the XML namespaces to use the latest namespace from the JSF 2.2 specification. While I was looking at the code, I found a number of instances where developers were adding attributes like name to <h:commandButton /> and NetBeans correctly was identifying that there is an issue with that.

Fortunately, some of these attributes were passing through to the underlying page without needing p:passthrough. However, you should not rely on such functionality to work. If the VDL Document does not show it as an attribute, you shouldn't expect it to work.

Alright, so how do we do it correctly?

There is no magic here. It is simply a matter of adding the attribute with a prefix of p:, for example p:name="someName" for the name attribute. This will result in the attribute being passed through the rendered and added to the resulting output.

So I have an example, and the resulting output.

The resulting output will run the JavaScript associated with the passed through attributes, or set the CSS styling. Very simple and easy to implement.

Michael's blog » NetBeans - April 01, 2015 08:52 PM
JavaLand 2015 & Java aktuell

Last week I visited JavaLand 2015. This great software conference [1] with lot of community activities resides in my home town Brühl [2]. Beside attending lots of tracks I had the opportunity to meet a couple of people face-to-face like … Continue reading

Adam Bien - April 01, 2015 03:44 PM
Counting Lines With Java 8


import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

Path path = Paths.get("./readme.txt");
long lineCount = Files.lines(path).count();

See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting


Real World Java EE Workshops [Airport Munich]>

Geertjan's Blog - April 01, 2015 07:00 AM
Using Bower Package Manager

New support for the Bower package manager, a popular technology for JavaScript/HTML5 application development, is being worked on. Here's something to get you started, showing Bower's key features in NetBeans:

Also see this issue, which describes improvements made after the above was made, i.e., automatically the .bowerrc file is now created: https://netbeans.org/bugzilla/show_bug.cgi?id=251608.

Praxis LIVE » NetBeans - March 31, 2015 06:23 PM
Code fragment editing in NetBeans RCP

So, you’ve got a String property that’s a fragment of Java code, and you want to open and edit it within the NetBeans editor; you want access to code completion, hints, and all that NetBeans goodness; and, you want your … Continue reading

Geertjan's Blog - March 31, 2015 07:58 AM
YouTube: Debugger for JDK8’s Nashorn JavaScript in NetBeans IDE

Since the release of JDK 8 and NetBeans IDE 8, NetBeans has provided a built-in debugger for JDK8's Nashorn, the new lightweight high-performance JavaScript runtime built on top of the JVM.

With NetBeans IDE, you can add breakpoints to your Nashorn scripts and go through them when debugging your Java application. When you're debugging, you can step where no developer has stepped before: from your Java code into your JavaScript code.

To see this in action, watch this quick 5 minute screencast. Together with seeing Java and Nashorn being debugged together seamlessly, you'll see that Nashorn can also be integrated into a NetBeans module, i.e., you're able to extend NetBeans IDE via JavaScript!

Adam Bien - March 31, 2015 02:17 AM
A Java EE 7 Startup: Virtualizing Services with hubeo.com

Could you please briefly introduce Hubeo.com and yourself?

My name is Wojciech Ozga. I am 25 years old, living currently in Krakow, Poland. I am interested in different areas of Computer Science, starting from software engineering going through computer networks and finishing on cloud computing and linux system administration.

I started my adventure with programming when I was kid, I got Microsoft Visual Basic 6 Pack from my father. Then I was experimenting mostly with c/c++ till 2004 when I entered the path of PHP. After one year I finished works on Cracow-Apartments.com, one of the first online booking system of apartments in Poland.

Since 2009 I have spent most of my time in the JVM world with small exceptions for python and shell scripting languages. In mid 2012 I started the design and the implementation of Hubeo.com. I decided to keep as close as possible to Java EE stack, and it was good ;)

Hubeo.com is a global web platform for virtualization of services like: accommodation, tours, transportation, medical treatments etc. Complex system logic is hidden behind user friendly web page with modern and fresh design.

What makes hubeo.com stand out from other booking platforms is the ability of its users to advertise, promote, find and book a wide range of services in one place. Main features are:

  • selling own services
  • buying services of other users
  • affiliation
  • automatic booking settlements (with anti-fraud protection)
  • reviews

You told me, you read the book realworldpatterns.com and used the ideas to implement a prototype. What is exact the story behind?

I started to take a deeper look into Java EE on my studies. We had classes where outdated ways of coding and usage of Java EE were introduced to students. That time I was thinking that programming in Java EE is a nightmare. I found some online tutorials to give it a try and I remember one which scared me a lot.

The simple code was surrounded by all the patters coming from "old j2ee times". I had to write the same thing 3 times, encapsulating everything. Moreover I was shown to use ale the xml configurations which I just had to "click and fill" in Eclipse. I was really happy passing the exam and being able to forget about Java EE world. But then I found your books. I read two of them: "Real World Java EE Patterns - Rethinking Best Practices" and "Real World Java EE Night Hacks". The second one made so big impression on me that I decided to give it a try implementing the first prototype version of "cloud market" (the antecedent name of hubeo.com). What I liked the most reading them is that they are written from the programmer point of view: keep it simple, stupid, do not repeat your self. Skip the unnecessary boiler code, write it the simple way so every one can understand. Some times I had an impression that you are more agile then Agile :) Since that time I recommended them to few friends of mine. I think it is obligatory to read them!

You also told me that your colleague was fascinated by the simplicity of the code and wanted to join forces with you. Could you tell the story to the readers?

One friend of mine - Mateusz Krzyszton - was working previously in a big company as JSF programmer. They had a lot of issues with it, large views and server was responding slowly. They were implementing a lot of hacks to make it work. I needed someone to take care of implementing the front-end part, and I knew Mateusz is a brilliant, experienced programmer. That time we met in Lisbon. I told him the basic idea and I showed the very early mock-ups. He was not convinced. Months later we met again in Warsaw where I showed him the skeleton of the web project, implemented in JSF 2.0 with Primefaces and Omnifaces. He browsed through the source code, looked at the implementation of business logic and he decided to reinforce the team! He was really impressed about, how things can be easily done using modern version of Java EE and JSF following patterns from your books.

What surprised you in Java EE the most?

What I like the most is avoiding of writing the boiler code again and again. At the beginning I created few classes, I wrote few lines of code and I added annotations. The very simple, but working, 3 layer application has been implemented! With no magic I had a simple CRUD application with MySQL engine behind! Every programmer with a bit of experience in linux administration can quickly make business application accessible to everyone in a very easy way.

On the other hand I was really disappointed about the security models. I could not find any suitable for hubeo.com. I read official Oracle tutorials 20 times and I did not find JASS as a good solutions for modern web applications. I took a deep look into Apache Shiro but it did not convinced me neither. Modern web systems require much more complex management of roles and permissions. I hope that it will be done with Java EE 8.

What about the Java EE performance? Did you have to perform particular measures to improve the performance?

Performance! Yes, we did several measurements, using JMeter, Selenium and VisualVM. We found few issues but they were mostly related to our implementation. We focused also on the memory usage of our front-end application. I can say that creating complex views, with many components and ajax is not a way to go with JSF. Between requests, JSF stores the component tree of views on the server. Depending on configuration, JSF can store even few hundreds views per user. Having views build with many components we can finish up with few Mb of memory taken by an individual user. That made us thinking about the number of users we can handle during the duration of the user session.

For now we did not find important issues related to the JPA performance, but in the business logic we avoid eagerly loading of collections.

What were the most interesting challenges?

Designing Hubeo.com from scratch was really interesting challenge :) Considering the principles, the design of the database was a really difficult part. I needed a good common schema to store information about services like apartments, tours, dentist treatments and many more. All of those services had to be represented in a similar way to allow design of the algorithm to calculate availability and prices.

Probably the most difficult part of the implementation was the business component responsible for service order and booking management.

Moreover I was really excited discovering Amazon Cloud. Two years ago, together with Jose Java EE Coarasa Perez (blog, @coarasa, LinkedIn), we build one of the biggest implementation of cloud using OpenStack on CMS farm (one of the experiments at CERN) It was a great adventure but after using Amazon services I see how immature OpenStack was that time.

Which IDEs / tools are you using?

At the beginning of my Java EE journey I was using Eclipse. It was a nightmare. After reading your books I switched to NetBeans and I was really happy. Things were just working! Right now I am using IDEA IntelliJ. We use maven and Nexus to store artifacts. For continuous integration server we have Jenkins. The application runs on WildFly 8.2. We also use the relational database: MySQL. Hubeo.com is hosted in Amazon Cloud. We use EC2 to run VMs, S3 to provide common storage for all VMs and RDS for the database. CloudFront helps us to make our static resources easily accessible around Europe and US.

If you had the chance to start-over, would you use Java EE again?

Definitely yes. I could rethink the usage of JSF for that kind of application, but the business logic would be definitely implemented in Java EE.

Do you have any other (secret) startup ideas, which you would like to share with the readers? :-)

I was asked to implement the idea of a simple web page, where people can see the map with different trails indicating interesting points in the city, related to some topics. User can select the trail, search for places, and select specific marker to read details. This is the classical CRUD application. I decided to implement it with Java EE 7 and it took me one day. It runs on WildFly on some really small server (1gb of memory), waiting for a better times - some investor to push it forward.

Any web links / resources?

  • Hubeo.com - virtual market of "real world services". Register your service and start earning money with us ;)
  • Szlaki miejskie - urban trails, application implemented in 1 day using Java EE 7 and Wildfly

Wojciech, thank you for the interview and good luck with your next project!


Real World Java EE Workshops [Airport Munich]>