Wednesday, 24 June 2015

KScope Day 2

I struggled a little bit this morning, for the first time in a few days the alarm woke be up with a start. I'm not sure my brain was ready. Kudos to those that tackled the 5k, I had the energy a few days ago...

Printing with node.js

Dimitri provided a great intro to help us all understand what node.js is all about and how to learn more, covering
- Installing node
- Nodeschool
- Node package manager
Then he showed a simple text-to-speech demo using the npm.

The demo that generated a word and ppt document really showed the potential, and there were plenty of good questions about how to take this further.

Apparently an earlier session when into detail regarding an oracledb driver to help negotiate with information direct from the database.

It was certainly code heavy, and it was great to see Dimitri jump straight into the concept of using Word to create a template to be used instead - of course solved with a plugin. Though when googling "APEX Office Print plugin", I couldn't find until I removed "plugin" - apexofficeprint.com. It does come at a cost.

FOEX Vendor Presentation

Matt Nolan reckons he struggled but it's just nerves, I think he did a great job of demonstrating the capabilities of the FOEX feature set. It was good to finally see first hand, and hear another Aussie.

When comparing value for money on the product's value against development time, it seems worth further investigation.

Once again I found myself conflicted with the other option in the same slot with the Insum team talking about what makes the profile of the best APEX developer.

Creating Hybrid APEX applications

I've seen a similar presentation online, but the great value in attending the conference in person is to see and hear everything Roel (pronouced "rule" ;p) has to say about the topic. We've been using Cordova to create hybrid applications at a client site with success, giving us the benefits of talking more directly to hardware features, but through a black box.

Roel had some great coding examples showing how to synchronise contacts to/from the database/phone, utilising RESTful web services to do some heavy lifting.

He mentioned this as a resource for finding other plugins suitable for your hybrid app: plugreg.com/plugins

Lunch & Learn

What a great idea to add some excitement to an otherwise awkward lunch. After following murphy's law (as described by Don McMillan yesterday) I picked two bad lunch lines to grab a box of food, but made it in time before the start.

There were some great questions asked by the audience to a panel of experts, plus a few comments from audience gurus.

One more generic question was regarding some wish list items for future APEX versions:

  • Better IR printing
  • Two instances of APEX on the same DB to help upgrading
  • Version control
  • Easier local documentation/help (there is some recent history in this regarding supplying a zip)
  • Pivot tables with drag drop (a plug-in to come available soon)

Another interesting outcome was the news that AnyChart has a finite future within APEX and will not be upgraded. A related add-on will be available at oraOpenSource soon.

I managed to get a couple of questions in, the crowd seemed a little shy and David Peake was accomodating. I first asked a somewhat open question about debugging steps if an app seems ok from an SQL perspective yet bottlenecks appear when the user set grows. Tracing seemed to be a common response to ensure it's a problem, but do check middle tier settings in regard to connection pool management. Some sort of new quality assurance setting was suggested (I think my swyped note on the phone gave me a red herring)

I also asked for suggestions when dynamic actions start to get "complex", partially since conditional (re)actions are not yet available. General consensus was to head into jQuery land after all.

I had another more technically esoteric question which I managed to ask Anthony Rayner afterwards regarding the async parameter. This relates to the "wait for result" option in JavaScript actions, where calls can effectively be made synchronous. Browsers will at some point stop supporting this, and APEX will make changes at some point.

APEX, node.js, HTML5 (websockets)

I was particularly interested in this session from Alex and Alan and it certainly delivered. The paired up well and gave the perfect lead up to help people understand the potential of websocket solutions, even with mundain examples of echoing output and chat, which ended up being a simple yet effective example.

In short Alex described websockets allow push notificaitons in lieu of continuous polling from the client. Alan highlighted node.js as having an "event driven, non-blocking" capability.

Alex said node.js could live on either the database or middle tier, but the wow factor came with their demo. With the connection I have I'll limit it to this tiny video, or you can check the picture in this tweet.
video
They combined a lego mindstorm with a brick hacked it accept websockets, with a rasberry pi (I still don't get it) to allow APEX to control which coloured bricks would be accepted or rejected.

Touché boys, touché. Most creative demo ever.

Interview

I took a session off before an interview during the final session (all the best spots were gone) with Martin D'Souza. I've never been interviewed before and it was an interesting experience. Martin said I did well, and I can't wait to see the final product. We'll have to keep on eye on the ODTUG youtube channel at some point in the future.

During my time-out I took Zara to the pool and saw none other than Steven Feuerstein already doting on some other kids who'se dads are also in the nerd-pool upstairs. He's bumped into her a few times already as I've taken her up to the exhibition hall a few times, his grandkids must love him.

Conclusion

We've gotta be halfway through already, right?

3 comments:

JaredPreb said...

So what are plans for Charts? google Charts?

Alex Nuijten said...

Thanks for your nice comments about our session :)

The only reason that we use a Raspberry Pi was to work as a router - so we coulld have our own WiFi network where the Lego Mindstorms can connect to as welll as the APEX applicationi. This way we're not depending on the conference-wifi,.. which is not always ideal :)

Scott Wesley said...

@Jared: I think they said there are a few built-in plugins for some charts in 5, I can't remember what technology they used, or if they stated it

@Alex: I understand why you used the pi in your particular case, but what I still don't really get is why everyone loves these things. Maybe it's a Java thing...