FX Experience Has Gone Read-Only

I've been maintaining FX Experience for a really long time now, and I love hearing from people who enjoy my weekly links roundup. One thing I've noticed recently is that maintaining two sites (FX Experience and JonathanGiles.net) takes more time than ideal, and splits the audience up. Therefore, FX Experience will become read-only for new blog posts, but weekly posts will continue to be published on JonathanGiles.net. If you follow @FXExperience on Twitter, I suggest you also follow @JonathanGiles. This is not the end - just a consolidation of my online presence to make my life a little easier!

tl;dr: Follow me on Twitter and check for the latest news on JonathanGiles.net.

JavaOne Interviews: Stephen Chin

JavaOne Interviews: Stephen Chin

Today I have an interview with Stephen Chin. For those new to this series, here are the people who have been interviewed so far:

Let’s get into the interview! Enjoy 🙂

Hi there. Thanks for taking the time to do this quick interview. Can you please introduce yourself?
Hi, I am Stephen Chin (aka. steveonjava), Hacker, Author, Java Ambassador and also the JavaOne Content Chair.  If you like the conference, then it must be because Java is a great technology with an even greater community!  If not, then it is probably my fault.  🙁

Is this your first time presenting at JavaOne, or are you a JavaOne veteran?
Longtime attendee, pretty longtime speaker (and occasional Rock Star Speaker).

What are you going to talk about at JavaOne?
That is a great question that I am trying to avoid thinking about myself as I continue to lie to myself that preparation won’t be as horrendous as last year, and procrastinate away!  If I were to actually think about it, I might remember that I am going to do a UI mashup to show off the new Date and Time API, hack on some wearable embedded devices in a cool lab, and even perform a magic show.  Heck, I would even throw in an Agile talk for the brand new track we are kicking off, and do NightHacking interviews all afternoon in the Java Hub with notorious Java geeks.

However, I don’t actually know about any of this, because that amount of preparation would be too much for a normal person to handle…

Do you have any big announcements or releases planned leading up to (or at) JavaOne? Can you give any hints? 😉
Well, yes.  But you will have to wait for the welcome keynote to hear about that.  Oops, another thing I don’t have time to do [and have now forgotten about].  Back to playing with printing Dukes on my 3D printer!  🙂

Is there anything else you’d like to discuss?
I definitely don’t want to talk about other stuff I am helping out with like the new Embedded Device Showcase, Keynote Demos, or OTN Lab [where the 3D printer will live for the week], because that would further reinforce how badly behind I am on prep.  It is a good thing that I will forget about this interview right afterwards.

Thanks for taking time out of your day to answer these questions! All the best for your JavaOne talks!

JavaOne Interviews: Mikael Grev

JavaOne Interviews: Mikael Grev

Today I have an interview with Mikael Grev. For those new to this series, here are the people who have been interviewed so far:

mikael-grevHi there. Thanks for taking the time to do this quick interview. Can you please introduce yourself?
Hello Jonathan!
I have been in the Java ecosystem since Swing was a newborn. I work with many different things, some of which include creating Android apps (one Google Now competitor soon to be released), conceptual design for fighter aircraft systems, client application development/architecture and creating components/widgets in Swing and now JavaFX. Much API, UI/UX design and performance work, less web crap.

I’m a geek from very young age, I started programming my C-64 when I was ten (according to mom). Then I had a slight detour into piloting fighter jets for 17 years until I two years ago went back to being a full time computer geek and API snob. I collect pixels and have many of them in use and I set an alarm to go to bed in the evening.

Is this your first time presenting at JavaOne, or are you a JavaOne veteran?
It’s my fifth time being at JavaOne. I also presented in 2008 where I got a Rock Star award, of which I am very proud. And to this day, to my knowledge, I am the only fighter pilot in the known universe who also have been awarded JavaOne Rock Star! 😉

What are you going to talk about at JavaOne?
The session name “Create JavaFX Layouts Like a Boss” pretty much gives it away. I will focus on MigLayout as the tool, which I and Tom Eugelink has now readied for JavaFX 8. There will be a lot of general advice on how to make scalable and beautiful layouts. The intention is to raise the general – not-so-interested-about-visuals- developer well above ugly layouts without additional work. It will be fast-paced so don’t come there without ++coffee in your veins.

Do you have any big announcements or releases planned leading up to (or at) JavaOne? Can you give any hints? ;-)
I hope I will. Given the move towards simpler – and in that somewhat harder to figure out – GUI:s, it is recommended that one use subtle animations to convey intent. Animation is a great way to help the end user on the path to understanding the flow of your app. Unfortunately it’s not that easy to do UX-centric animations manually, even when the animation itself – the moving/fading part – is managed by the framework, like in JavaFX. My goal is to enable good looking animated transitions between layout changes just by adding the keyword “animate” to MigLayout. In >= 60fps. If I can’t make it ready in time I will pretend to faint 42 minutes into the presentation.

Is there anything else you’d like to discuss?
My session might be funny. So come by if you like that kind of thing. If you don’t like funny, come by anyway and not laugh.

Thanks for taking time out of your day to answer these questions! All the best for your JavaOne talks!
Thank you Jonathan!

JavaOne Interviews: Eugene Ryzhikov

JavaOne Interviews: Eugene Ryzhikov

A while back I sent out an email to a few members of the JavaFX community, asking them if they would mind answering a few questions regarding their upcoming JavaOne talks. My goal was to have the interviews be short and to the point – just enough to whet your appetite to attend the sessions at JavaOne. It is my intention to publish these interviews over the next few weeks as we build up to JavaOne. Today is the first interview, with Eugene Ryzhikov. Enjoy! 🙂

For those new to this series, here are the people who have been interviewed so far:

Eugene RyzhikovHi there. Thanks for taking the time to do this quick interview. Can you please introduce yourself?
My name is Eugene Ryzhikov. I’m a software architect at NextEra Energy in sunny Florida.

I’ve been involved with software development for at least 25 years now and still enjoying it! I work with a lot of programming languages but most of my time is spent doing Java and Scala. In the last 1.5 years I’ve been involved in ControlsFX project with Jonathan Giles.

Is this your first time presenting at JavaOne, or are you a JavaOne veteran?
I’ve attended JavaOne may times, but never presented.  Java One 2014 will be special – I will see the conference from the (unusual for me) speaker point of view.

What are you going to talk about at JavaOne?
Together with Jonathan we are going to talk about the ControlsFX library. We’ll examine many features, both old and new, show how to use it in your applications and provide some insights into the future plans.

Do you have any big announcements or releases planned leading up to (or at) JavaOne? Can you give any hints? 😉
May be.. I’d rather save those for our talk 🙂

Is there anything else you’d like to discuss?
I’ve been involved in open source projects for many years now, but I’m still amazed at what happens when many people come together to achieve some kind of goal. This is what is happening in ControlsFX now. We have approximately 55 committers, people who are passionate about JavaFX controls, and want to make a difference. They are an unstoppable driving force behind the library now, to the point that sometimes it is difficult to keep up with all the progress 🙂 This is amazing to watch and be part of.

Thanks Eugene – see you at JavaOne!

Interview with Eugene Ryzhikov

Interview with Eugene Ryzhikov

It has been a long time since I published an interview, but I’ve finally got back around to it and this week I’m pleased to have an interview with Eugene Ryzhikov, a long time Java desktop developer and open source contributor. I’ve been working with him for many months on ControlsFX, where he has been contributing large amounts of code and many of the features you see in ControlsFX are directly due to his hard work. Hopefully in the coming months I’ll start publishing more interviews again, but as always it depends on time! Right, let’s get into the interview – enjoy! 🙂

Eugene Ryzhikov

Hi Eugene – could you please introduce yourself?
I’m a graduate of Kaunas Technology University with a Masters in Computer Engineering. But since my early days I have been involved in software development, starting with the now archaic PL1 and several assembly languages, Borland IDEs, before moving to Java in the 90’s and now sharing my programming time between Java and Scala, which I can only praise. Thankfully, Java is moving in the same direction, which is evident in Java 8 Lambdas.

It would be fair to say you’re a relative newcomer to the JavaFX world. What did you do before your involvement in JavaFX?
I was always a big fan of Desktop UI. It started from the early days of Turbo Pascal and then Delphi. I started working with Java in 1999 and have used Swing since then in most of my applications. I have developed several open source frameworks to enhance the capabilities of Swing.

I was watching JavaFX closely for several years. The switch to JavaFX 2 won me over, but I did not have enough experience in it. The solution was obvious – I had to be involved in the development of an open source JavaFX-based library. Luckily, you started ControlsFX approximately at the same time as I was looking for one, so I offered my help.

Are you employed to work on Java desktop software, or is Java desktop just a hobby of yours?
I consider myself lucky – my work and my hobby overlap. I currently work as a Software Architect. One of the big systems I started and am still involved with is related to energy trading. The client side of this system is Swing based and I developed several libraries to simplify development of required UI features and many parts of the UI itself. 

Is ControlsFX your only open source project that you are involved in?
As I said before, I have several Java and Scala based projects. One of the most popular ones is Project Oxbow. This is a collection  of useful components and utilities for Swing. The main components of it are the JTable Filtering and Task Dialog framework. The experience gained in developing the Swing Task Dialogs was directly applied to the dialog framework in ControlsFX.

ControlsFX 8.0.2 was just released. What plans do you have for future releases of ControlsFX?
I’m still surprised that ControlsFX gathers so much interest even though it only supports the as-of-yet unreleased version of JavaFX 8. At the same time it’s very exciting. I do have a lot of plans and ideas. Some of these include new controls, such as a popover control. A more grandiose one is a validation framework for JavaFX. I’ve made one in Swing once, but JavaFX presents new ideas and challenges. For example, observable collections, the new JavaFX property standard, and property binding greatly simplify many aspects of JavaFX development. CSS support makes for rethinking the whole “Look and Feel” part and is simply amazing!

What is the best way for people to see, interact and learn about ControlsFX?
There are many.  We have a lot of active discussions on the ControlsFX mailing list. General information is available at controlsFX.org and fxexperience.com. The library has an excellent JavaDoc, thanks to your relentless efforts. A lot of information can also be found at our Bitbucket repository. There are many interesting discussions related to issues and pull requests there.

How can people join in the project? Are you welcoming contributions to ControlsFX?
Everyone can contribute if they so choose; it’s so easy nowadays with sites like Bitbucket and GitHib. ControlsFX is truly an open source project. Currently we have contributions from 14 developers. Joining is super easy: sign the CLA at http://cla.controlsfx.org, fork the project at https://bitbucket.org/controlsfx/controlsfx  and send pull requests with your contributions. A contribution does not have to be code or a new control. For example, we are always looking to improve the quality of our JavaDocs, our tests or our samples. Your contribution can be in the form of an issue or feature request submitted to our issue tracker.

What has been your experience in wrapping your head around the way JavaFX works?
I like it a lot. My previous Swing experience helps a lot, but there are so many new exciting features, like CSS support, observable collections, better controls development process etc. JavaFX still has many surprises to reveal.

If you could change or improve any aspect of JavaFX, what would you do? Or, what are you really wanting to see in future releases of JavaFX?
As I said before, I am a big fan of Scala and functional programming in general. It is a great paradigm, especially for UI development. We don’t have to go far to see it – just look at how much easier ScalaFX or GroovyFX  frameworks make JavaFX development. Thankfully, this is not a dream anymore – Java 8 takes a huge step towards functional programming with Lambda and I’m certain Java developers will appreciate it. And it can only get better from there.

What is your setup for developing JavaFX-related code? Do you have a preferred IDE or any tips?
I’m OS agnostic. I have a Windows 8 desktop with Ubuntu VM on it and my laptop  is a MacBook Pro. I run Eclipse IDE on all of these platforms. I usually develop on Windows, but on the road, I do it on my Mac. This allows for greater flexibility and great testing – there are still small differences we have to deal with on each platform to make ControlsFX play nicely with all of them.

Thanks so much for taking the time to answer these questions! Do you have anything else you would like to add?
Just want to say thanks to everyone for the feedback , support, and contributions; we do try to keep up the highest possible standards in ControlsFX. Keep ‘em coming!

Interview with Felipe Heidrich

Interview with Felipe Heidrich

As I promised last week in my interview with Tom Schindl, today I have an interview with Felipe Heidrich. Felipe is an Oracle employee responsible for a number of things in the JavaFX area, but the reason why I wanted to interview Felipe is because his work is what enabled Tom to create the styled text editor he announced last week. I’ll leave it to Felipe to introduce himself, so without further ado, let’s get into it! Enjoy 🙂

Hi Felipe – could you please introduce yourself?Felipe Heidrich
My name is Felipe Heidrich, I was born and raised in Brazil. After receiving my Bachelor degree in CS from the Federal University of Santa Catarina I moved to Ottawa, Canada for an internship position with Object Technology International (OTI). The following year OTI was fully integrated by IBM Canada where I worked for the next 10 years.

In 2012, I decided it was time for a new adventure (and better weather) so I moved to Santa Clara, California to work for Oracle on the JavaFX project.

Before joining Oracle you had a lot to do with Eclipse – can you clarify what exactly you did there?
I worked on the Eclipse Platform for over 10 years. More specifically on the Standard Widget Toolkit (SWT) where I had the opportunity to work on virtually everything it takes to build a widget toolkit, from accessibility to input methods to printing. My areas of responsibility also included the StyledText and everything related to it. In my last year there I worked on the Orion project where I was responsible for designing  and implementing the text editor component. We had a great team in Ottawa and an amazing community around Eclipse and Orion, it was a great run.

You’ve been at Oracle for around a year now. What have you done during this time?
I’m currently working in the graphics team. I spend most of my time working with text. Our first challenge was to add unicode support and after that it was to design and implement rich text support. Being at the bottom of the stack I get to interact with nearly all other parts of the system and I always try to contribute and participate in the entire product.


Interview with Tom Schindl

Interview with Tom Schindl

Hi everyone. I’ve been meaning to get more interviews out for quite some time, but as you know work is often all-consuming! 🙂 Anyway, today I am pleased to post this catch-up with Tom Schindl about his work on a styled text editor for JavaFX. Next week I will be following this interview up with another interview, this time with Felipe Heidrich, an Oracle engineer who works on text in JavaFX (including the rich text APIs Tom mentioned below and native text rendering). Previously he was very closely involved with Eclipse and SWT, so he has a wealth of knowledge in the Java desktop area. Anyway, for today let’s get back to Tom! Enjoy 🙂

Hi Tom, I’ve already interviewed you in the past, but today I wanted to talk to you about your latest work around styled text editing in JavaFX. Could you please summarise what exactly it is you’ve been working on?
In the last week I’ve been working on a StyledTextArea (Blog 1, Blog 2, Blog 3). Developers interact with such a control day by day when using their favorite IDE – in my case Eclipse.

If someone one day wants to write a purely JavaFX driven IDE, the source code editor is certainly the most important control. In JavaFX 2 it was very hard to implement a control like this and the only feasible solution was to use WebView and use one of the sourcecode editors written in JavaScript. And as a matter of fact, one can really get quite far with it (See my blog entry about mixing and matching JDT and JavaFX).

JavaFX 8 introduces a new scenegraph element named “TextFlow” that helps with the layout of Text nodes and so writing such a control has become much easier than it was in JavaFX 2.x. One of my main goals is to have a control that has an API comparable to the widget used within Eclipse. The reason for that is that if the widget works similar to the SWT one,  almost everything provided by the Eclipse text parsing and styling infrastructure can be reused almost unmodified (only replace things like SWT-Color, Font by their JavaFX counterparts and you are done).