Five Typical Responses From Oracle JET's Unofficial World Tour

Here are, off the top of my head, the 5 typical responses, from my point of view, from the past months of running around the world introducing Oracle JET.

Saturday, June 30, 2018 | Oracle JET | Read More

Oracle as an Agent of Social Change

Together with my colleague JB Brock I've spent the past week in South Africa. Last year, with Andrejus Baranovskis from Oracle partner Red Samurai Consulting, I did something similar—introducing Oracle's new modern vision on application development and user interface design to a range of Oracle partners and customers, including to Oracle staff in the the local Oracle offices, too.  A pic of a few of them is below, taken in Cape Town, Johannesburg, and Pretoria. Just like the...

Sunday, February 25, 2018 | Oracle JET | Read More

My OpenWorld/JavaOne 2017 Session Schedule

In most cases, I'm speaking with one or more others in the below.   Sunday, 1 October   SUN4389: Oracle JavaScript Extension Toolkit: How and Why Organizations Use ItRoom: Marriott Marquis (Yerba Buena Level) - Salon 13When: 15:45 - 16:30 Monday, 2 October   CON3935: Getting Started with Oracle JavaScript Extension ToolkitRoom: Moscone West - Room 3001When: 11:00 - 11:45   CON6063: Java Versus JavaScript for the Enterprise?Room: Moscone West - Room 2007When: 12:15 - 13:00   14:00...

Friday, August 25, 2017 | Read More

From ojNavigationList to ojTrain

Sometime ago I showed how to replace ojNavigationList in the 'navdrawer' template with ojButtons. Let's now do something different and replace ojNavigationList with ojTrain: The router is integrated into it, so that everything works as before, except that now you have a step sequence. In 'main.js', add a reference in the 'require' block to 'ojs/ojtrain'. In 'appController.js', add the following, which is the array that ojTrain will use: self.stepArray = ...

Sunday, August 20, 2017 | Read More

Oracle JET in South Africa

Recently I had an excellent time with Andrejus Baranovskis from Red Samurai Consulting, in South Africa, visiting a number of Oracle partners and customers. A pic of a few of them (we literally had about 5 engagements a day for a week, in Johannesburg, Pretoria, and Cape Town, in some cases with multiple organizations simultaneously): In each session, we introduced Oracle JET and explained how it fits into other Oracle technologies, such as ABCS, ACCS, JCS, MCS, and more. In...

Monday, July 31, 2017 | Oracle JET | Read More

Migrating to Oracle JET in 10 Minutes

Watch and learn for 10 minutes as you're shown the key principles of moving frontend JavaScript apps to the free and open source architecture provided by Oracle JET:

Monday, June 26, 2017 | Oracle JET | Read More

jquery-stockquotes and Oracle JET

Here's https://github.com/ajwhite/jquery-stockquotes integrated into an Oracle JET application: Steps: Somehow download https://github.com/ajwhite/jquery-stockquotes, e.g., via Bower. In "main.js" include a reference: 'jqueryui-stockquotes': 'libs/jquery-stockquotes/dist/jquery.stockquotes', In your module, reference 'jqueryui-stockquotes' in your define block and in your "self.handleAttached" include the following: $('.stock-quote').stockQuote(); In the view, include...

Friday, May 26, 2017 | Oracle JET | Read More

Beyond Mobile App vs. Mobile Browser

The continual discussion of whether to create a native/hybrid mobile app or to create an app accessed via the browser, has two recent alternatives. The starting point is to recognize that most people use about 5 apps on their mobile device and ignore the other 30 or so that are there by default. Most people have no clue about which apps are available and don't go searching for them randomly in an app store. Instead, they go to their browser on their mobile phone, access the...

Saturday, May 13, 2017 | Read More

YouTube: Two Minute NetBeans Tip #2

Drum roll... two minute NetBeans tips, part 2:

Monday, May 8, 2017 | Read More

YouTube: Two Minute NetBeans Tip #1

I realized again, during the recent NetBeans Days in Athens, London, and Bangalore, that everyone appreciates quick NetBeans tips. In London, Mark and Zain provided those tips, in Athens it was Bethan and Georgia, while in Bangalore Aatul and Tushar did the honors. And, in each of those cases, the result was great and useful. So, I'm starting a new YouTube series on that topic, hopefully one a week, and to make it as simple and doable as possible am constraining it to...

Monday, May 1, 2017 | NetBeans | Read More

Trip Report: NetBeans Day India 2017

NetBeans Day India was held today in Bangalore, hosted by BlueJeans. Not only did BlueJeans give us a location, but food and drinks as well, which was great! The program was announced here, with thanks to Vaibhav Choudhary, for organizing the event: https://www.meetup.com/BangaloreOpenJUG/events/238630862/ Attendance was good, the room was mostly full, which was especially great since it is a long weekend, with Monday being a public holiday. Sessions focused on Java as well as...

Saturday, April 29, 2017 | NetBeans Day | Read More

DevExpress Meets Oracle JET

I'm at Code Europe in Krakow, Poland and met Don Wibier from DevExpress, with the developer site at js.devexpress.com. Just like me, he runs around to promote enterprise JavaScript technologies and just like Oracle JET, DevExpress is focused on the enterprise, specifically, DevExpress provides enterprise JavaScript components. A match made in heaven (Krakow)! Guess what, there's great integration with Oracle JET. Here's the DevExtreme Scheduler, integrated into the Oracle JET...

Wednesday, April 26, 2017 | Oracle JET | Read More

Trip Report: NetBeans Day UK 2017

The 3rd NetBeans Day took place in London today! (Go here for the 2016 report and here for the 2015 report.) As before, NetBeans Day UK took place at the beautiful and historic Greenwich University. Many people were involved in making the event possible, such as Chris Walshaw, lecturer at Greenwich University, and Laura Muncey also from Greenwich University; Mark Stephens, Zain Arshad, and Georgia Ingham from IDR Solutions; Mike Croft and Andrew Pielage from Payara; Neil C....

Tuesday, April 25, 2017 | NetBeans Day | Read More

Software Adoption Surveys: From Quantity To Quality!

In a democracy, everyone is equal. One person, one vote, and all votes are equal since all people are equal. Erroneously, that approach is applied to software adoption surveys too. Anyone at all can respond to a survey and can indicate that they use software product X, Y, or Z. However, what if I am a student paddling in the shallow waters of software development, with the likelihood that I'll abandon it before I graduate, while you are a senior Java architect creating mission...

Saturday, April 22, 2017 | NetBeans | Read More

Trip Report: NetBeans Day Greece 2017

NetBeans Day Greece, hosted at Oracle partner Unisystems Hellas in Athens, took place today. Around 50 attendees, with a range of speakers and topics connected to NetBeans IDE, as listed here: Many thanks also to IDR Solutions, in England, for sending two great speakers, Bethan and Georgia, who talked about tips and tricks for NetBeans usage. Bethan wrote a detailed trip report about the event here: https://blog.idrsolutions.com/2017/04/netbeans-day-athens-2017/ Slides, code, and...

Friday, April 21, 2017 | NetBeans Day | Read More

JShell Integration in NetBeans IDE

I've blogged about the integration of the Java 9 JShell in NetBeans IDE before, here and here. In the latest daily builds, assuming you're running the daily build on top of Java 9, you'll see the top part of the JShell looks the way you'd like it, i.e., there's a nice code fold and the first statement is numbered 1, rather than 9 as it was initially, as can can be seen in the previous blog entries. Click to enlarge the below.   The JShell can be opened from Tools | Open Java...

Thursday, April 20, 2017 | NetBeans | Read More

Running NetBeans IDE 9 Development Build on JDK 9 EA Build 162

For the adventurous, interesting times ahead since you're able to try out the NetBeans IDE 9 development build on top of JDK 9 EA, in my case, Build 162. When you configure that in your 'etc/netbeans.conf' file, the first thing you see on start up is this error, which appears to be related to the Darcula plugin that I'm using. Of course, since it's awesome despite this aspect for the moment, I'm using the Darcula plugin, which you can download and install from here, i.e.,...

Sunday, March 26, 2017 | NetBeans | Read More

New: JDK 9 Jigsaw Modular Projects in NetBeans IDE

The NetBeans IDE 9 development builds now enable you to create Java Modular Projects, i.e., Jigsaw projects that can contain multiple Jigsaw modules, which can be compiled together as a unit: They're visualized as follows, for example, in this case, for the Jigsawified Anagram Game (discussed here): Details:  http://wiki.netbeans.org/JDK9Support http://openjdk.java.net/projects/jigsaw/quick-start https://github.com/GeertjanWielenga/JigsawJavaModularProjectSamples

Friday, March 24, 2017 | NetBeans | Read More

Software at Delta Air Lines

A few days ago, not long after flying with Delta to Atlanta for DevNexus, and benefiting from a Delta upgrade and bathing in the luxury of Delta business class, I spent some time at Delta's Operational Control Center (OCC). I was able to do that thanks to Graeme Ingleby, a senior developer at Delta who has been exploring the benefits of the NetBeans Platform for quite some time and has attended JavaOne over the past years, including related events such as NetBeans Day...

Sunday, February 26, 2017 | NetBeans | Read More

From AngularJS to Oracle JET at DevNexus

I'm going to DevNexus this week. There'll be a NetBeans booth and several NetBeans community members in attendance, drop by and come and chat about NetBeans, Apache, etc! Also, I'll be talking about Oracle JET: https://devnexus.com/s/devnexus2017/presentations/17974 I'll take an AngularJS/Ionic application Matt Raible created and talked about recently at Jfokus and I'll show how that application looks and how it is structured when created via Oracle JET. I'll discuss the...

Sunday, February 19, 2017 | Oracle JET | Read More

Oracle JET at Transfer Solutions (Part 2)

I attended an excellent session about Oracle JET by Lai Ho Yueng and Maresa Bunschoten, from Transfer Solutions in Leerdam in the Netherlands. Transfer Solutions, an Oracle partner, regularly hosts free knowledge sharing sessions. Some time ago, I was invited to talk about Oracle JET (as described here in part 1) and in the meantime developers at Transfer Solutions are using Oracle JET to create mobile and web products for their customers. Before the break, Maresa did a...

Thursday, February 16, 2017 | Oracle JET | Read More

NetBeans and Apache (Part 2)

Since the various announcements about NetBeans transitioning to Apache, what's been going on and what's the current status? Before reading on, take a look at the following: James Gosling on NetBeans and Apache NetBeans and Apache (Part 1) NetBeans Apache Incubator Proposal Well, if you're asking "what's been going on?" it simply means you're not part of the discussion, which is a simple step-by-step process to be part of: https://cwiki.apache.org/confluence/display/NETBEANS/How+to+...

Tuesday, February 14, 2017 | NetBeans | Read More

Trip Report: NetBeans Day France 2017

The Laboratoire d'Informatique de Grenoble hosted NetBeans Day France yesterday. The event was sponsored by Davidson in Paris, who provided the great lunch! The program included the following topics: Reactive Systems with Eclipse Vert.x and Red Hat Open Shift (Clement Escoffier, Red Hat) Développement entreprise JavaScript avec Oracle JET (Geertjan Wielenga, Oracle) Jouer avec Spring Boot et Docker (Nebrass Lamouchi, Davidson SI) JBoss Forge, WildFly et Java EE (Emmanuel Hugonnet,...

Wednesday, February 8, 2017 | NetBeans Day | Read More

London App Brewery and Oracle JET at Oracle London Office

London App Brewery is a great organization run by Philipp Muellauer and Angela Yu, focused on mobile development. They organize workshops, training sessions, and events. Yesterday Oracle hosted a London App Brewery event about Oracle JET, at the Oracle office in central London: How to Visualise Data and Analytics on Mobile and Web Apps using Oracle JET. The event was well attended and very diverse, from students to professionals and from all kinds of industries. I introduced...

Tuesday, January 17, 2017 | Oracle JET | Read More

Trip Report: NetBeans Day Canada 2017

Today, NetBeans Day Canada was held, with an interesting and varied agenda at Dawson College in Montreal: https://www.dawsoncollege.qc.ca/netbeansday/ Congratulations to Ken Fogel and the enthusiastic group of speakers and attendees in Montreal! 

Thursday, January 12, 2017 | NetBeans Day | Read More

New Year: New Opportunities, New Rewards!

In Dutch they say, "Nieuwe kansen, nieuwe prijzen", at the start of the latest installment of a game show, lottery, etc. Well, each new year offers new opportunities, with new rewards, and here we are in 2017. I haven't blogged for a while, simply because I've been too busy to do so. Oracle JET is taking up all my time. I've traveled a lot over the past months and that will continue, the first half of the year is almost completely booked full already. At the same time, there's...

Tuesday, January 10, 2017 | Read More

Custom Component for Zipping and Downloading Files

Here's a handy custom component (i.e., a CCA component) for zipping files and downloading them, in an Oracle JET application: <fileDownloadForm file="{{file}}" content1="{{htmlContent}}" content2="{{jsContent}}"></fileDownloadForm> I've created it as part of a project where we want to let developers design a CCA component and then download it as a ZIP file, so that it can be distributed to those who want to make use of the component. That's the reason you can see...

Friday, December 16, 2016 | Oracle JET | Read More

Page Flow, Enablement, and ojListView (Part 2)

Before going to the next page, as shown in yesterday's blog entry, we want to display a confirmation dialog. We'll use 'ojDialog' for this: http://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=dialog&demo=modal Start by adding 'ojs/ojdialog' to the 'define' block of the viewModel of your Oracle JET module, together with a function for opening an ojDialog, yet to be defined, as well as a function for going to the next section: self.next = function() { ...

Tuesday, December 13, 2016 | Oracle JET | Read More

Page Flow, Enablement, and ojListView (Part 1)

Let's combine a couple of recent blog entries into a scenario. We'll combine Simple JSON and ojListView Sample with From ojNavigationList to ojButton and add some additional bits and pieces.  Start by setting up Simple JSON and ojListView Sample. Now, we have a new requirement—we need a "Next" button, i.e., for navigating to the next section of our single page application. However, that button should only be enabled if something is selected in the list. Some small tweaks are...

Monday, December 12, 2016 | Oracle JET | Read More

json2form Generator for Oracle JET applications

There's often a need to create standard forms for different purposes in an application, such as these, an incident entry form and a customer feedback form: Imagine if all that would be needed for creating the two forms above would be this in each view: <json2form json="{{jsonFile}}"/> For each view containing the above, the viewModel would load a file such as this for the form on the left above: [ { "key": "incidents_form", "title": "Incident Entry Form", ...

Saturday, December 10, 2016 | Oracle JET | Read More

Restructuring of Oracle JET Applications

During UKOUG 2016, this week, I learned a cool thing from my colleague Lyudmil Pelov—the response to the most frequently asked question from the Oracle JET sessions I have been doing around the world: "Isn't the 'js/views' and 'js/viewModels' structure a technical rather than a functional architecture? And wouldn't it be better to have both sides of an Oracle JET module in the same folder?" Well, take a look at this, the "navdrawer" template restructured based on...

Friday, December 9, 2016 | NetBeans | Read More

Wireframing with Oracle JET

I learned a few interesting things from my colleague Sylvain Côme in London today. Sylvain is a very big enthusiast of Oracle JET and is introducing it in a variety of contexts. For wireframing, he uses Adobe XD. For the images in his wireframes, he has installed SVG Crowbar into his Chrome browser, which enables him to download SVG files of images in the Oracle JET Cookbook. He then imports those SVG files into his wireframe in Adobe XD, where he can even edit them,...

Thursday, December 8, 2016 | Oracle JET | Read More

Integrating Styles into Oracle JET Applications

A lot of organizations have style guidelines for their browser apps. I.e., these style guidelines consist of colors, sizes, icons, etc, normally supported by CSS stylesheets. Wouldn't it be nice if there'd be a few customizable templates for quickly styling Oracle JET applications? Well, take a look here: http://www.oracle.com/webfolder/technetwork/jet/globalExamples-ThemeViewer.html Welcome to the Oracle JET Theme Builder. It's been around for a while, though a bit hidden on...

Wednesday, December 7, 2016 | Oracle JET | Read More

From ojNavigationList to ojButton

The Oracle JET "navbar" template provides a navigation bar for switching between Oracle JET modules: Let's remove that navigation bar and replace it with buttons: By means of the above, you have more control over the navigation in your page, e.g., you can include validation rules, which will be handled in a future blog entry, etc. Plus, via this mechanism you have the basis of a wizard-like step-through sequence enabling the user to work through a number of different screens....

Tuesday, December 6, 2016 | Oracle JET | Read More

Simple JSON and ojListView Sample

Simple sample to create ojListView from a JSON file (which I copied locally from here) and therefore looks like this: {"employees":[ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"}]} Here's the business logic: define(['text!../data/employees.json', 'ojs/ojcore', 'knockout', 'jquery', 'ojs/ojlistview', 'ojs/ojarraytabledatasource'], function (file, oj, ko, $) { ...

Monday, December 5, 2016 | Oracle JET | Read More

React.js Calculator in Oracle JET

Using the techniques discussed here and here, you can integrate a pretty cool React calculator component into your Oracle JET application. By default, this is how it looks in the page: When hovered over, the calculator animates and is then displayed as follows: Here's how I'm structuring JSX composites in my Oracle JET application:

Sunday, November 20, 2016 | Oracle JET | Read More

React.js and Oracle JET (Part 2)

Following on from part 1, the next step is to have support for React JSX in the context of our Oracle JET application. The RequireJS plugin below works perfectly in the context of Oracle JET applications, as outlined below: https://github.com/podio/requirejs-react-jsx To use the above in your Oracle JET applications: Include the above plugin in "bower.json": "requirejs-react-jsx": "1.0.2" Add the following to the bootstrap file (i.e., main.js) paths directive: 'babel':...

Saturday, November 19, 2016 | Oracle JET | Read More

React.js and Oracle JET (Part 1)

Here is a fantastic small example that works perfectly, showing how to combine React with Require: http://remarkablemark.org/blog/2016/09/24/react-requirejs-amd/ Let's take that and integrate it into an Oracle JET module. Include in Bower dependencies: "react": "15.3.2" Include in "paths" in bootstrap file, i.e., "main.js": 'react': 'libs/react/react.min', 'react-dom': 'libs/react/react-dom.min' In your viewModel: define(['ojs/ojcore', 'knockout', 'jquery', 'react',...

Thursday, November 17, 2016 | Read More

Top 5 Features of Oracle Application Container Cloud

I asked Shaun Smith, product manager of Oracle Application Container Cloud (ACC), what he considers its top 5 features to be. He responded with this list: Polyglot platform. Use the language of your choice. Today we have Java SE, Node.js, PHP, and will be adding support for Java EE WAR deployment, as well as Python and Ruby. We're open to supporting other languages if the demand is there. Open platform. Run anything. This is an ideal platform forrunning open source stacks and...

Tuesday, November 15, 2016 | Read More

Updates to Oracle JET MOOC

Before JavaOne/OpenWorld this year, we ran the first session of the Oracle JET MOOC (massive open on-line course). The aim was to prepare a large number of developers all at the same time about enterprise JavaScript in the context of Oracle JET, i.e., Oracle's free and open source JavaScript platform. The MOOC is on-line, self paced, three weeks, and focused on 10 YouTube clips per week for three weeks, with many homework tasks, quizzes, and a certificate of completion at the...

Monday, November 14, 2016 | NetBeans | Read More

Understanding the Enterprise JavaScript Landscape

Here's a recording (go to it directly on Vimeo here) of a session I did last week in Malmo, Sweden, at Oredev, all about the relevance of the JavaScript ecosystem for modern enterprise applications. Get started with Oracle JET, i.e., Oracle's JavaScript enterprise platform, for free in a free three week on-line course here.

Sunday, November 13, 2016 | Presentations | Read More

Understanding Oracle's JavaScript Platform

Here's a recording (go to it directly on Vimeo here) of a session I did yesterday here in Malmo, Sweden, at Oredev, all about the requirements for enterprise JavaScript and Oracle's free and open source solutions for this space. Get started with all of this yourself for free in a free three week on-line course here.

Thursday, November 10, 2016 | Presentations | Read More

Conversations with Cab Drivers

Malmo, Sweden, November 2016 San Francisco, USA, October 2016

Tuesday, November 8, 2016 | Read More

Join NetBeans on Slack: https://netbeans.signup.team

One of the coolest recent developments in the NetBeans ecosystem is the establishment of the NetBeans Slack channel. We've only got this going over the past few weeks and there's a few hundred already registered and active. What's the big deal and what's so great about Slack? Well, to me, and to how I'm using it, is that I see it as a modernized version of IRC, with the benefit of direct and quick interaction, e.g., I was holding off on publishing the new release of the One Cli...

Monday, November 7, 2016 | Read More

No More Double-Clicking To Open Files In NetBeans!

Probably to most NetBeans users, the need to double-click a file to open it has become part of your DNA. However, consider the thought of not needing to double-click anymore. Simply select a file and it opens. That's what the "One Click Open Sesame" plugin aims to achieve for you: http://plugins.netbeans.org/plugin/53723/one-click-open-sesame The project was started some time ago here: https://github.com/GeertjanWielenga/OneClickOpenSesame Chris Lenz (@Chrizzly42) and...

Saturday, November 5, 2016 | Read More

Oracle JET: Where Is My Home?

Since the past few days, if you've been creating Oracle JET applications via the "Oracle JET QuickStart Basic" template, i.e., in NetBeans IDE via the wizard below... ...you might have been asking yourself: "Where is my home?" I.e., look below, there's no "home" module, that is, no "home.js" and no "home.html": Not to worry, at all! What's happened is that we're now using the "navdrawer" template for the "Oracle JET QuickStart Basic" wizard, so that you end up with the file...

Friday, November 4, 2016 | Read More

Generator for Hybrid Oracle JET Applications

Thanks to a lot of helpful feedback from my colleague Graeme Mawson, I updated the NetBeans plugin that provides tooling for hybrid mobile development with Oracle JET.  Go here to get it: http://plugins.netbeans.org/plugin/64070/yooraclejet Now, instead of multiple different wizards, each for a different Oracle JET template, and each for a different mobile platform, everything is now integrated into one single wizard named "Hybrid Oracle JET Application": And here you see the...

Wednesday, November 2, 2016 | NetBeans | Read More

How Oracle Applications Are Being Written (For Free)

&amp;amp;amp;lt;span id=&amp;amp;amp;quot;XinhaEditingPostion&amp;amp;amp;quot;&amp;amp;amp;gt;&amp;amp;amp;lt;/span&amp;amp;amp;gt;

Friday, October 28, 2016 | Presentations | Read More

Handy Tools for Working with CSS

Here's an overview of CSS tools in NetBeans that I've found to be quite useful. Below, in the first example, the value of "class" is set to "foo", which does not exist in any of the available CSS stylesheets. NetBeans offers to create the rule in a stylesheet of my choosing and to import that stylesheet into my HTML file: Below, the value of "id" is "foo", which doesn't exist in any of the stylesheets. NetBeans suggests to create it for you and import the related stylesheet: In...

Friday, October 21, 2016 | Read More

UI Component Extensions for ABCS (Part 4: Drop Dialogs)

The next feature to be added to your UI component extension is a Drop Dialog, i.e., when the citizen developer drags and drops your component, a small dialog will appear to fill in some of the values in the component to override the defaults the component gives you: To achieve the above, do the following. Create the View. In your 'templates' folder, add a new HTML file, with any name, such as "popup.html", with this content: <div> <label...

Thursday, October 13, 2016 | Read More

UI Component Extensions for ABCS (Part 3: Property Inspectors)

The next step is to give your citizen developers a Property Inspector for the UI component extension you're creating for them. Let's go through the whole process from start to finish, imagining you've gone through the various dialogs in yesterday's blog entry and you now have a UI component extension generated for you from the "blackbox" template. We'll use the "Hello World" scenario from the Knockout site for this example.  Define the UI Component Extension....

Wednesday, October 12, 2016 | Read More

UI Component Extensions for ABCS (Part 2: Reusable Components)

What we have so far, after part 1, is a custom component. What's we'd like to have is an extension to ABCS so that the component can be dragged and dropped into any application created in ABCS. In the left side of ABCS, below, provided by the hamburger button in the top left, you see an item called "Extensions": Now you're on the page below where, as you can see in the left side, you can create new UI components: Fill in the details below, which is a dialog that appears...

Tuesday, October 11, 2016 | Read More

UI Component Extensions for ABCS (Part 1: Custom Components)

Once you're comfortable with Oracle JET, consider taking the next step: Application Builder Cloud Service (ABCS). No, ABCS isn't simply a drag-and-drop development environment for citizen developers. Instead, it's an architecture for software developers to establish a drag-and-drop development environment for citizen developers! In other words, you can extend ABCS specifically for your business developers, with components that you define yourself... using Oracle JET. Or, more...

Monday, October 10, 2016 | NetBeans | Read More

Vimeo: "What's Oracle Doing with JavaScript?!"

Today a session I did on Oracle JET at GeeCON in Poland was published. Here it is:

Thursday, October 6, 2016 | Presentations | Read More

NetBeans and Apache (Part 1)

Now that NetBeans is in the Apache Incubator, here are some feelings from my side on the process and on where we currently are. Philosophically always Apache. I've been involved with NetBeans since about 2004, when I joined Sun Microsystems in Prague. It was always the case that with NetBeans we were trying to do something bigger than serve the interests of a specific commercial entity—NetBeans has always been a platform for innovation and sharing. It's always been free and...

Tuesday, October 4, 2016 | NetBeans | Read More

Top 5 Favorite NetBeans IDE 8.2 Features

With the release of NetBeans IDE 8.2, here are my favorite features! The Release Itself. It's always great to have a new release, a fresh start, new development environment, and to me a new release always feels faster and snappier than the last. Maybe because I simply hope this is the case or maybe because it simply is true. Well, with bunches of bugs fixed, and performance standards to comply with, a new NetBeans release should at least be as performant as the previous, and...

Monday, October 3, 2016 | Read More

@OracleJET at Luciad User Conference 2016

I attended Luciad User Conference 2016 in Brussels over the past days. I attended to represent Oracle JET, Oracle's new JavaScript platform, used throughout Oracle and beyond as the basis of enterprise JavaScript frontends, solving a range of complex problems out of the box, while providing a range of components such as graphs and charts. And all for free. I attended together with my colleague Hans Viehmann, from Oracle Spatial and Graph, who did a session on Oracle DB, as well...

Thursday, September 29, 2016 | Read More

Minimal Oracle JET Composite Component

Let's say you have a suite of Cloud applications and you want them to display customers in a standardized way: If that's your business scenario, then Oracle JET composite components are a perfect fit. Here's what an absolutely minimal Oracle JET composite component looks like:  The above is really trivial. Here's the content of "customer.html": <h2 data-bind="text: $props.name"></h2><h4 data-bind="text: $props.city"></<h4<hr> Here's "customer.json": { "properties": { ...

Friday, September 23, 2016 | NetBeans | Read More

Cab Drivers in San Francisco Love NetBeans

On the way to NetBeans Day 2016, I had a nice conversation... Here's where it is on YouTube: https://www.youtube.com/watch?v=M2F9cik4hXs

Tuesday, September 20, 2016 | Read More

James Gosling on NetBeans and Apache at NetBeans Day San Francisco 2016

To a packed room at NetBeans Day 2016, at the start of JavaOne 2016, James Gosling participated in a discussion panel, where he reflected on the history of NetBeans and shared his thoughts on the plans to move to Apache. Below, watch the final minutes, where he focuses specifically on the NetBeans plans in relation to Apache: &amp;amp;amp;amp;lt;span id=&amp;amp;amp;amp;quot;XinhaEditingPostion&amp;amp;amp;amp;quot;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;gt...

Monday, September 19, 2016 | NetBeans Day | Read More

Getting Started with Oracle JET Composite Components

I worked with JB Brock yesterday on setting up and using Oracle JET's new Composite Component Architecture. The aim of it all is to have reusable components that enable you to define your own HTML elements, like this, for example: <!-- ko foreach: employees --><demo-card class="oj-flex-item" name="{{name}}" avatar="{{avatar}}" work-title="{{title}}" work-number="{{work}}" email="{{email}}" ...

Sunday, September 18, 2016 | NetBeans | Read More

Finegrained JShell Integration in NetBeans IDE

In addition to the generic JShell integration in NetBeans, discussed yesterday, there's more finegrained support enabling project-specific JShell snippets to be run. That means, depending on how you organize your life, no "build" will be needed anymore when you try out your code. Just hack a snippet together, run it in JShell, when/if it works, move it to your project.Each project, whether Maven-based or Ant-based, will have an "Execute Java Shell" menu item, which is shown...

Wednesday, September 7, 2016 | Read More

Learning Java with JShell in NetBeans IDE

Let's use JShell to learn about Paths and Files and Streams... here we go... this seems to work, since the Output window prints out the content of my file, which has two lines "hello" and "world": Sweet documentation explains everything: Next, let's put that useful code snippet to some use... i.e., we'll move it into a new Java source file in my application: And there it is, all the verbosity/expressiveness of Java wrapped around our little snippet: Hmmm. This will be pretty...

Wednesday, September 7, 2016 | Read More

Tip for JavaOne Speakers with NetBeans IDE

Quite a few speakers at JavaOne 2016 will be using NetBeans IDE for demos during their sessions. Excellent. Less excellent is the yelling that will befall you when your audience wants your font to be bigger. So. BEFORE your session, make sure you're comfortable with the "Zoom Text" keyboard shortcuts, which are set as following by default: Under pressure, I'm not so great with the mousewheel on my keyboard and so I have remapped the "Zoom Text" keyboard shortcuts as follows,...

Monday, September 5, 2016 | Read More

My JavaOne 2016

Here's where I'm speaking (in bold) some with others and some alone and what (I'm hoping) I'll definitely be attending (not in bold): Sunday: NetBeans Day Monday:8:30 a.m. - 10:30 a.m. | Rapid Development Tools for Java EE 8 [TUT1869] | Hilton - Continental Ballroom 6 11:00 a.m. - 12:00 p.m. | Ten Essential Building Blocks of JavaScript in the Enterprise [CON6218] | Hilton - Plaza Room A 1:30 p.m. - 3:30 p.m. Booth 4:00 p.m. - 5:00 p.m. | How to Plug into NetBeans in 60 Minutes...

Sunday, September 4, 2016 | Read More

From Oracle JET Web to Hybrid

A 'web' project scaffolded using Oracle JET 2.1.0 can be extended with 'hybrid' features. You can then build both web or hybrid app from the same sources. To add the 'hybrid' capabilities to a web project, use the oraclejet:add-hybrid command in the application directory: yo oraclejet:add-hybrid --platforms=android|ios|windows --appid=com.my.app --appname="My Hybrid App" The --appid, --appid, and --platforms options take the same values as the yo oraclejet:hybrid generator. The...

Thursday, September 1, 2016 | NetBeans | Read More

Trip Report: NetBeans Day Greece 2016

Recently NetBeans Day Greece took place, in Athens, in a really nice location, with enthusiastic NetBeans users.

Wednesday, August 31, 2016 | NetBeans Day | Read More

The Mechanics of Theming Oracle JET Applications

We have a requirement to have different themes for our Oracle JET application, "business" and "pleasure". The first will have images of serious business suits, the second will have party hats; the first will have grey/blue fonts and colors, the second will be polka dots or something. You want the themes to be able to be swapped in and out at build time. OK, that's the scenario. 1. Create the application. Let's imagine we start like this: yo oraclejet myapp --template=basic OK,...

Monday, August 29, 2016 | Oracle JET | Read More

Patterns for Global Settings in Oracle JET Applications

While following the Oracle JET MOOC, especially when dealing with topics that relate to routing and navigation, you'll find a few contrasts between the MOOC and your own Oracle JET applications. Though not true for all the application templates, you'll notice one or two new files, one or both of 'appController.js' and 'navigation.js': Now notice how clean your 'require' block is, in 'main.js': require(['ojs/ojcore', 'knockout', 'appController', 'ojs/ojknockout',...

Sunday, August 28, 2016 | NetBeans | Read More

Avoiding Hiccups in Building Oracle JET Applications

When using NetBeans IDE to work on an Oracle JET project installed using the Yeoman generator on the command line, the files in the "src" folder are incomplete without the build command being run. Of course, you can just enable the Grunt build task and that solves that issue. Just right-click on the project and choose Build: The first time you do this, you'll be prompted as follows: Say Yes and you'll be here (your version of the below may be different to mine since I'm using...

Saturday, August 27, 2016 | NetBeans | Read More

Application Templates in Oracle JET

Here's an overview of each of the Oracle JET application templates in Oracle JET 2.1.0. Note: Below each of the Yeoman generator commands below, you see how the project looks in NetBeans IDE. I.e., just go to File | Open Project, browse to the folder where you ran the commands below and you'll simply be able to open the project into NetBeans IDE. yo oraclejet app1 --template=blank yo oraclejet app2 --template=basic yo oraclejet app3 --template=navbar yo oraclejet app4...

Friday, August 26, 2016 | NetBeans | Read More

Adding Some Color to the RebelLabs Developer Productivity Report 2016

I used to have a very nice colleague who would never disagree with me. He'd never say 'I disagree with you'. Instead, he'd always say, 'let me add some color to that', after which he'd proceed to, essentially, disagree with me. :-) [I miss you, Ashwin!] But it was a nice experience. He wasn't disagreeing, he was adding color. In that light I'd like to look at an aspect of the RebelLabs Developer Productivity Report 2016. It wasn't released very long ago and has the following...

Thursday, August 25, 2016 | Read More

Oracle JET MOOC - Tips & Tricks (Part 1)

We're really pleased with the level of activity around the Oracle JET MOOC. Monday next week, when the 2nd week starts, we'll close registration, at which point we expect to have around 2,000 participants. The MOOC will run again, for free, in October, after OpenWorld and JavaOne. We've picked up on some common problems on the Oracle JET forum and have put together some tips and tricks, as well as news and updates, here: &amp;lt;span id=&amp;quot;XinhaEditingPostion&amp;quot;&a...

Wednesday, August 24, 2016 | Read More

Integrating Oracle Fusion Middleware MapViewer with Oracle JET

There are many map components in the world out there—and I have documented how to integrate several of them in an Oracle JET application, e.g., 3DCityDB, Mapbox, Leaflet, and LuciadRIA, as well as Oracle JET's ojThematicMap component.  However, Oracle has its own map component, as described in detail below, which includes the Oracle Maps Javascript library: http://www.oracle.com/technetwork/middleware/mapviewer/overview/index.html Oracle Fusion Middleware MapViewer is a...

Saturday, August 20, 2016 | NetBeans | Read More

Translating Oracle JET Applications

The Oracle JET MOOC starts on Monday. When we talk about Oracle JET we always say that it solves "enterprise challenges". One of these is internationalization/localization/translation of JavaScript applications. Recently I started playing with the translation features of Oracle JET and they're pretty impressive. Really, if you want to create JavaScript applications that need to be translated, you should look no further than Oracle JET. Let's start by looking at the result of...

Friday, August 19, 2016 | Oracle JET | Read More

Sign Up Free, Today: Oracle JET MOOC

A lot of work has gone into the preparation of something completely different—an enterprise JavaScript MOOC (massive open on-line course) via Oracle JET, which will start coming Monday, 22 August. Oracle JET is a set of best practices, recommendations, architectures, templates, and components for enterprise JavaScript applications. There are over 1,000 subscribers to the MOOC so far. The MOOC will take 3 weeks of your time, the first week starting on Monday, 22 August. Each...

Thursday, August 18, 2016 | Oracle JET | Read More

What Are Your Favorite NetBeans Features?

What are your favorite NetBeans features? Damir Demirović from Serbia answers that question today in a new article on JAXenter. An extract: Read the article here: https://jaxenter.com/netbeans/damir-demirovic-my-five-favourite-netbeans-features

Sunday, August 14, 2016 | Read More

Code Sharing for NetBeans Developers!

Through the years, a recurring request by developers everywhere—not least among NetBeans users—is a facility for collaborative development. In a new article on JAXenter, I share info on two platforms for snippet sharing and how neatly they integrate into NetBeans IDE. Some extracts:  The full article: https://jaxenter.com/netbeans/code-sharing-for-netbeans-developers

Friday, August 12, 2016 | Read More

Learn Oracle JET in 3 Weeks

Oracle JET, the open source toolkit for enterprise JavaScript, targeted at mobile and web applications, was announced at JavaOne and OpenWorld last year. In February, it was open sourced at github.com/oracle/oraclejet. Soon you'll be able to take a free course on-line, which will introduce you to all the key topics and give you many exercises to do to guide you through the process of creating JavaScript enterprise applications in a simple and logical way: Click here, to sign...

Tuesday, August 9, 2016 | Read More

Most Unique Feature of NetBeans IDE!

What's NetBeans all about, what makes it special, why would anyone use NetBeans rather than something else, what are its key features, what distinguishes NetBeans from other tools, etc etc etc. Set aside those questions for a moment and take a look at this photo taken last week at JCrete: That's a small part of the NetBeans community around the world, most of the above are members of the NetBeans Dream Team. And the enthusiasm that jumps out at you is why NetBeans is special....

Monday, August 8, 2016 | Read More

Interface-Driven Java Formatter

Today at JCrete, Dan North and others suggested a really cool feature—the ability to format a Java source file based on the interfaces that the Java source file is implementing. The "Ordering" formatting options for Java source files in NetBeans IDE are quite detailed by default: However, the new interface-driven formatting options, which I am implementing in a new tab (since the tab above is pretty full and can't be extended externally via a plugin anyway), enable...

Thursday, August 4, 2016 | Read More

Twitter, Codebird, and JavaScript

In my "bower.json" file, I have a dependency set like this: "codebird-js": "2.6.0" That enables Codebird to be installed. Next, I went to apps.twitter.com and created a new application, so that I now have a Consumer Key (API Key) and a Consumer Secret (API Secret). <script type="text/javascript"> var cb = new Codebird; cb.setConsumerKey( "replace-with-consumer-key", "replace-with-consumer-secret"); cb.__call( "search_tweets", ...

Saturday, July 23, 2016 | Read More

OAuth and Oracle JET

OAuth is an open protocol to allow secure authorization in a simple and standard method from web, mobile, and desktop applications. Oracle JET includes a helper library for working with OAuth, though not OAuth itself, i.e., Oracle JET does not ship with OAuth. Instead, it provides a helper class that helps you manage OAuth tokens and requests, rather than including the OAuth client libraries that areneeded. Also, there is documentation for the OAuth helper library in the...

Friday, July 22, 2016 | Read More

JBoss Data Virtualization with Oracle JET

I met with Cojan van Ballegooijen who is involved with the Red Hat JBoss Data Virtualization project. Read about that here: http://www.jboss.org/products/datavirt/overview I'm interested in setting up a scenario where Oracle JET could provide a dashboard on top of a VDB (virtual database). Here's the steps we took to get started. We started by downloading the 6.3.0 Beta of JBoss Data Virtualization: http://developers.redhat.com/products/datavirt/download. After running "java...

Thursday, July 21, 2016 | Read More

Company Presentations on Oracle JET with NetBeans IDE

Today I spent some time with Oracle colleagues in presenting Oracle JET to a company in the Netherlands. The company was using a technology stack that included a front-end technology that needs to be modernized for various reasons and Oracle JET was presented to them as the way to bring the front-end of an application into the modern world of HTML5, CSS3, and JavaScript. Of course, many small demos were done to make the key points of the benefits of Oracle JET. And those demos...

Tuesday, July 19, 2016 | Read More

JSX in NetBeans IDE 8.2

JSX is a XML-like syntax extension to ECMAScript without any defined semantics. Many more details about it can be found here: https://facebook.github.io/jsx/ JSX is popular in the React community which "recommend[s] using JSX because it is a concise and familiar syntax for defining tree structures with attributes. It's more familiar for casual developers such as designers." Many more details about that can be found here: https://facebook.github.io/react/docs/jsx-in-depth.html Many...

Thursday, July 14, 2016 | Read More

NetBeans Platform: An Ideal Platform for Scientific Computing

The session catalog for JavaOne 2016 is available here: https://oracle.rainfocus.com/scripts/catalog/oow16.jsp?event=javaone&search.event=javaone One of the entries you'll find there is this one:  Interesting. A NetBeans Platform application that I had never heard of before. It looks like this: And here's more info about it: The above comes from here: https://www.janelia.org/confocal-imagery-management-and-analysis-tools I'm looking forward to attending this session at JavaOne...

Wednesday, July 13, 2016 | Read More

Gallery Demos for JavaScript: Galleria.io

Following on from part 2, in this part we add Galleria.io to our set of dependencies in 'bower.json': "dependencies": { "oraclejet": "2.0.2", "galleria": "1.4.2"} Here's the source code: https://github.com/GeertjanWielenga/GalleriaDemos/tree/master/Galleria3-Galleria.io/app The project structure is as follows: Since Galleria.io is not an AMD module, we need to shim in the 'require.config': shim: { 'jquery': { exports: ['jQuery', '$'] }, 'galleriaio':...

Tuesday, July 12, 2016 | Read More

Gallery Demos for JavaScript: JQuery UI Accordion

Continuing from the first part, let's now move towards modularity via Require and data bindings via Knockout.  Here is the application: https://github.com/GeertjanWielenga/GalleriaDemos/tree/master/Galleria2-Knockout/app The project structure is like this, which looks a lot like the structure of an Oracle JET application, though an Oracle JET template was not the starting point of the below. Instead, I started with a plain ordinary HTML/JavaScript application and built up the...

Monday, July 11, 2016 | Read More

Gallery Demos for JavaScript: PrimeUI Galleria

I'm looking at different image gallery components as examples of how to work with them in the context of Oracle JET. Also, these scenarios are example of how to migrate from non-Oracle JET applications to Oracle JET applications. Here's the first, making use of the PrimeUI Galleria component: https://github.com/GeertjanWielenga/GalleriaDemos/tree/master/Galleria1-Default/app The structure of the application is like this:  Here's how the component looks: In the "bower.json" file,...

Sunday, July 10, 2016 | Read More

Timeline in Oracle JET

Let's take the "ojTimeline" component from the Oracle JET component library, as described here in the Oracle JET Cookbook, while taking note of the format of the related JSON file here. Then, downloading that file into our Oracle JET application and changing the details in the JSON file, let's recreate the NetBeans Roadmap in Oracle JET, with this result: Here's the business logic in JavaScript, i.e., the "define" block, including a selection listener: define(['text!../../seri...

Friday, July 8, 2016 | Read More

Tag Cloud in Oracle JET

Here in the Oracle JET Cookbook the Oracle JET Tag Cloud is described. Here's the JSON file that is used there, which I have put in the "public_html" folder of my project. What we'll create is the same as in the Cookbook, except we'll parse the JSON file with "JSON.parse" and we'll use a "define" block. Here's a 'define' block for working with the "ojtagcloud" component: define(['text!../../socialNetworks.json', 'ojs/ojtagcloud'], function (file) { function...

Thursday, July 7, 2016 | Read More

JQuery UI Datepicker Widget and Oracle JET

The jQuery UI Datepicker is a popular component. Let's integrate it into an Oracle JET application. Oracle JET is an open application architecture, together with a set of components, based on open source libraries, providing a logical framework within which components such as the jQuery UI Datepicker can be organized: For background on this topic, see this YouTube clip by JB Brock: https://www.youtube.com/watch?v=XcPcaSbaHFg Take the following steps: Get the 'datepicker.js', from...

Wednesday, July 6, 2016 | Read More

Plotting Data on World Maps with Oracle JET

Our requirement is to use Oracle JET to show data on a world map, e.g., the number of employees in our organization working in various countries around the world. Below you see an example—three different ranges represented by colors on the map: To get to the above point, let's start with the simplest imaginable world map scenario with Oracle JET's built-in maps for ojThematicMap. Here's the view: <div id='thematicMap-container'> <div id='thematicMap1'...

Tuesday, July 5, 2016 | Read More

YouTube: Oracle JET, Maps, Java EE, and NetBeans IDE

During JavaOne Latin America, last week, Yolande from OTN did a NightHacking interview with me about Oracle JET. Here it is, in 10 minutes, covering Oracle JET, Java EE, maps, the ojThematicMap component in Oracle JET, and NetBeans IDE: Related reading: GeoJSON and Oracle JET Maps Integrating Brazil into Oracle JET

Monday, July 4, 2016 | Presentations | Read More

Key Promoter Plugin for NetBeans IDE 8.1

I've reworked the Key Promoter plugin a bit. http://plugins.netbeans.org/plugin/55751/key-promoter The status bar (assuming you're using NetBeans IDE 8.1 and have installed the plugin for NetBeans IDE 8.1) now displays the keyboard shortcut of the most recently used action. In the screenshot below, notice the green display area in the status bar, i.e., at the bottom of the screenshot below, which is provided by the plugin, displaying info about the most recently used action: Howe...

Saturday, July 2, 2016 | Read More

Integrating iTunes into Oracle JET

Here's a search string for iTunes: https://itunes.apple.com/us/rss/toppaidapplications/limit=10/genre=6014/json Let's integrate that into an Oracle JET application, with this result: After a bit of fiddling with the parsing of the JSON, this is how I built up the table above. Here's the view: <table data-bind="ojComponent: {component: 'ojTable', data: dataSource, columns: [ {headerText: 'Name', field: 'name'}, {headerText: 'Price', field: 'price'} ] ...

Friday, July 1, 2016 | Read More

Integrating Brazil into Oracle JET

Using the info from yesterday, it's easy to integrate Brazil into Oracle JET: To get started, get the brazil-states.geojson file and put it in your project as described yesterday. Below, the file has been renamed to "brazil.json". Then here's your viewModel: define(['text!../brazil.json', 'ojs/ojcore', 'knockout', 'ojs/ojthematicmap'], function (geo, oj, ko) { function mainContentViewModel() { var self = this; ...

Wednesday, June 29, 2016 | Read More

Integrated Cloud Applications & Platform Services