APEX Alpe Adria - was it worth it?
This blog post was supposed to be a brief report about the past APEX Alpe Adria conference which I was lucky enough to attend. But when I composed its plan, I realised that it is not going to be that brief. I warned you.
Short version
For those who are not brave enough to read the full version, I can only say - it was totally worth it. There was not a moment when I thought it was waste of anything. The only thing which was dissapointing me during the event, was the fact it was only a one-day conference and I would have to come back home in a very short while. Answering the question if I would like to attend this conference again the next year, I am definitely saying 'Absolutely!'. Intriguing? If so, read further to find out why.
Ask An Ace Session
It all began with an informal meeting of all who wanted to ask their questions to the Aces. But before that we met each other. I must say I didn't expect such a warm welcome of myself. Quite a list of people approached me and asked - 'Yay, are you that guy from Siberia, Russia, who finally came here? I want to shake your hand!'. One of those who did so was Joel Kallman himself and I was really happy to meet him in person as well. He turned out to be a very smart and nice person, I must say, though he seems quite serious on the profile photo on Twitter. Hope I made a good impression of myself too.
Then with the accompaniment of some beverages, the official part of Ask An Ace session started. I don't remember all the questions, but can tell about some of them:
- At the beginning people were sort of shy to start the conversation (we are all nerds after all) and the first question was one of those I previously left on Twitter. It was about the fastest report region available in APEX when we talk of frequent refreshing of the report data and rerendering it. It was quite a discussion on the topic and I think I did only worse with my 'clarification' of what I meant. Generally, the answer was 'use the interactive grid, it is fast'. And I definitely will, especially when its JavaScript API is better documented (frankly speaking, I was sure the answer would be something like this, but wanted to convince myself even more).
- Then one of my favourite questions was by Niall Mc Phillips - he asked about managing APEX applications versions and collaborative work using version control systems. Actually, this question emerges every time when it comes to APEX development, and the topic is a bit undertold. The word was taken by Patrick Wolf, one of the APEX core developer, who shared some quite interesting information about the matter - he told us that they think in Oracle what they could do here, but they are not sure whether it should be the traditional way of storing source files under a version control system. He then clarified - this 'version management' feature can be implemented on different levels - and the source file level is only one of the options. And not the best one if we talk about a low-code platform like APEX. Another way mentioned is to add something on the application level, but what exactly is not decided yet. And since they didn't want to add this feature 'just for a tick', but to implement a truly useful 'version management' way in APEX, we need to wait a bit more. And this is quite exciting, isn't it?
- One of the last questions was about future telling - a guy from Serbia (as far as I remember) asked if APEX is reliable enough to dedicate yourself to it from different perspectives. Is it worth adopting it for a developer? Is and will it be in demand by customers? And of course there wasn't an absolute answer on all this - because nobody was a true oracle despite the fact we all work with the Oracle software. However, the Aces were quite confident with the technology future - indeed, APEX has turned 18 recently (come on, in most countries this is the legal age), and it is still being actively developed. Low-code approach and platforms are trending nowadays and this is not surprising - it was always a dream of any customer - to do more in less time. And we should not forget about the fact that APEX is a totally free addition for all current Oracle Database users. It means if you have the database, then you already have APEX (maybe not the latest version, but this is fixable) - just start using it (if you don't know how, ask me about it). So, keeping all these in mind, I personally think APEX has some potential.
What I also found fantastic about this preliminary session, was its athmosphere and closeness of the platform developers to the community. I mean, everyone who came had a chance to ask their question and get some juicy information from the APEX platform owner or its developers (besides the actual Aces). I never saw such wonderful attitude of official faces to community before. This really matters.
The actual conference
How it was organized
I must start by saying that this conference was organized for developers by developers. I mean, it wasn't one of the conferences which are organized by professional teams in order to make them truly profitable. The main idea of the meetup was to spread the word and share knowledge - the real things. Actually, the whole idea of the conference was of three guys from Austria, Slovenia and Croatia. Nevertheless, it never felt like a mess - everything was smooth and even some reconstruction work in the building didn't spoil the fun.
A nice fact - the conference was powered totally by an APEX application. Using it, Peter Raganitsch shared some statistics about the conference and its attendees with us before the actual talks. I wish more people would deside to join the afterparty next time.
I have only one thing to add here - I still don't understand why the organizers didn't use the application for the attendees registration and did it an old way, using a printed list of people and ticking them there on paper! With the app, it could be a couple of laptops with the application opened (and fuzzy search feature). Just a thought out loud.
The stuff
Free stuff - who doesn't love it? As you can see in the picture above, there was some. And I don't know about you, but for me this stuff means a lot - by looking at it I can have an idea about the sponsors - not just random companies, but ones, which care about the event and the community in general. Nothing is done just in case - and purpose of this stuff is to attract people's attention to some particular companies. And knowing them, I can update my list of potential employers slash partners slash customers.
'Why so serious?' you would say, and you are right! The bravest and luckiest ones also got their cool APEX stickers, thanks to Juergen Schuster who brought them from Bavaria. I even think about a new laptop for these awesome little devils.
Finally, the conference
The presentations started with the keynote by Joel Kallman. He was telling about himself, Oracle APEX development team and how the platform helps customers everywhere be more effective. A great session for those who only think about using APEX and want to know more about its backgrounds. Joel shared one very interesting thought during his performance - that data and only data is the core of any business application. This is why database centric applications are and will always be in high demand.
It was also very interesting to see programmatic language distribution in APEX and ORDS sources, not surprisingly SQL, PL/SQL and JavaScript have the leading positions there.
And of course, it was priceless to find out where Ohio was.
Next session I attended was the one by Peter Raganitsch and Stefan Dobre. They introduced their story of migrating from Python/PostgreSQL Q&A platform (OSQA) to their own developers Q&A platform engine written using only pure APEX. There was quite a list of points why they decided to switch - performance issues, loads of spam sign-ups, absence of new versions and support of OSQA, difficulty to integrate it to other systems and lack of Python developers willing to work on the old platform. Interesting fact here that this forum engine was kind of Stefan's learning project, it means the guy started to work with APEX from scratch and single-handedly succeeded in implementing a fully functional and good-looking Q&A platform (though I envy him that he has good mentors there in FOEX). One more juicy thing about the application - soon they want to open-source and share it with the community. I wish there were more porjects like this, for example an APEX-based blogging platform would be nice. Jari Lane, who already has his blog powered by APEX, mentioned once that he was going to fulfil my dream in some future.
Then I was expanding my wisdom with the help of Alex Nuijten and his presentation on some structuring APEX applications best practises. I must say this was one of the sessions which I was there for. I mean, on the one hand, it's really easy to pick up APEX and start doing stuff, but on the other hand, it's even easier to create one more crapplication (exactly as Alex called them, and I totally agree). Alex highlighted three common problems with developing business applications using APEX:
- The fact that it's dynamic SQL everywhere under the capot, and we all know about its dangers. Indeed, there's a common issue when we need to know what pages are affected when the schema changes. And Alex suggested a way - to implement an additional abstraction level of views and packages for each and every page (exclusive set of views and packages for every page). Then, one must never access tables and business logic packages directly. Instead of this, they need to access them through this new application layer - this strategy would help you determine which pages are to be fixed. I personally could add that instead of views you could use just packages, but with a set of pipelined functions to access data from your tables, but this is a matter of choice.
- Concatenation chaos. Indeed, it was a really wise piece of advice to make your APEX app as thin as possible in general. It means it shouldn't contain any complex SQL queries with string transformations of something else. The application must contain only calls to prepared in advance views and packages and queries should be as simple as possible.
- The Lost Update issue. Summarizing, it was just advised not to forget about it. Alex demonstrated an example of how to cope with such a problem using hash values as fingerprints of states of the data to be changed.
Two more presentations I decided to visit were similar in one aspect - they both were something I really wanted to try, but was sort of scared to start. First - the outstanding masterclass on testing automation and CI/CD by John Scott and second - a really good guide on how to implement your own APEX plugin by Christian Rokitta. They both were so packed and filled with new information that there even was no time for questions (though I had many at the moment). What I like the most about such masterclasses is that they show that things are not impossible and prompt you to start.
Patrick Wolf was closing the official part of the conference with his talk about the new features in 18.1. Although I knew about most of them from the official documentation, I really liked the demonstration of that new spotlight search feature. I'm sure both sides of newcomers and experienced developers will benefit from it. I'm looking forward to getting this new APEX version on-prem along with the Oracle Database XE 18.1.
The community
As I already mentioned in my expectations post I heard many good things about the APEX community. Were them true? Absolutely! Awesomeness was in the air - everybody was extremely positive and ready to share their thoughts when it came to a discussion of any sort of a problem. I met a lot of interesting people from different countries, improved my professional contacts list dramatically and also had a chance to speak to really important people.
For example, I shared my thoughts about Applications and Plugins Marketplace right inside APEX with Joel Kallman and he found this idea promising and wrote it down. Truly, just imagine how wonderful it would be, if developers could share their applications and plugins as easy as at the moment you can install a packaged application using nothing, but only your APEX administration console. And the bigger this library of useful applications and plugins is, the more appealing will be the development for APEX and the less time it will take to implement a real business application.
Still not convinced it was a great event? This is because I haven't told you about the party yet! It was right after the conference in Rox Musicbar, and it was awesome! Seriously, how else it could be with free beer and food, and all the people around.
The bottomline
This was my first conference dedicated to a particular technology, and I found it very useful for myself. The only thing I regret is my inability to have attended both sections of the conference at once.
It also was absolutely new experience for me to attend a conference in a foreign country, especially this far from my home town. And I must say it was worth the effort. For me it was more like a vacation trip than just a business travel, I saw wonderful places, met a lot of fantastic people and widened my knowledge.
Could it be better? Maybe. But I doubt it would be the same event then. I guess, for it to be even greater, it had to be at least a two-day conference with more time for a presentation.
The only thing, which, in my opinion, could be improved, was the sponsors activity on their panels. I mean, it's in their interests after all to tell visitors about themselves and attract people in some creative manner.
In the end of it all, I can say I'm proud of myself I decided to come. If you asked me, I would definitely recommend to come the next year in case you didn't manage to do so this time.
I don't know about you, but I'm already patiently waiting for the APEX Alpe Adria 2019. So see you there!
P.S. If you are interested in the slides from this year talks, they are right there for you on the official conference website. Just click on a presentation card to see a download link.
P.P.S. In case you found some poor usage of the language (I'm sorry for this in advance, I'm not a native speaker and could choose inappropriate register of phrase somewhere in the writing), just tell what to fix, and it'll be done. The same about any other inaccuracies you notice - you just need to let me know. Thanks for understanding!