Sunday, February 1, 2015

APEX 5 EA 3 - Universal theme

Oracle APEX 5 early adopter 3 just came out.

I've been taking the Universal Theme Sample Application for a quick test drive.

I'm truly impressed by what I've seen so far, and a little sad at the same time..

Oracle APEX developers typically come from a database development background, so have strong database design and PL/SQL skills, with relatively few of them having strong web design skills.

In some respects, this has held back the adoption of Oracle APEX in organisations. Developers have been able to quickly build useful and functional web applications using the provided themes with relative ease.

Functional Lada
Sexy Veyron Super Sport
Trouble is "functional" websites don't evoke the same emotional experience as a "sexy" website, just like a functional car like a Lada doesn't evoke the excitement and desire of a super car like a Veyron (pinched from Joel Kallmans' blog).

Out there in "user-land" functional and practical websites don't engage our customers in the same way a visually appealing and well thought out interface does. The visual appeal of any website plays a vital role in user satisfaction. A visually appealing website give the user a positive first impression, and builds the desire to work with it.

Now thanks to the Universal Theme, having a "sexy" website is within the reach of every APEX developer. It looks fantastic out of the box, chock full of the latest UI components and highly configurable with little or no knowledge of CSS. With Oracle APEX 5.0 everyone can build web applications that are both functional and sexy.

To the APEX development team, I tip my hat to you and say very well done.

So why do I feel a little sad; it's always been a fun putting together a great UI for an application to transform it from functional to appealing. I won't get to do that so much now, it looks great already.

Thursday, February 27, 2014

Oracle APEX Listener is no more..

Just noticed the Oracle APEX Listener is no more.. it's now known as Oracle Rest Data Services

Notable items on the website:
  • Can be used for Application Express or any Oracle web-toolkit application
  • Apache Tomcat support is back
  • Default context path has changed from /apex to /ords, but you can change it back to /apex easily.

Tuesday, September 17, 2013

APEX 4.2.3 is out now.

Just noticed APEX 4.2.3 is available, with patch release notes.

Haven't had much time to look at it yet, but noticed Twitter Bootstrap 3.0 is included.

Friday, June 28, 2013

Why go to conferences

KScope13 has just wrapped up, and it's been a really enjoyable conference. I've learnt a lot, caught up with some friends, and had lots of fun also.

I thought I'd share some of the reasons I go to conferences.

  1. To learn something new
    I always try to find at least one or two things that will justify the time/expense of attending a conference to my employer. If you bring back something that solves an issue you have in your business, or a new approach which improves the way you work, or solves a performance bottleneck, then you've justified the trip to your manager. So hopefully next year, you'll get to go again.
  2. To validate the way you work
    Often due to the specialized nature of your work, even in large organizations, there may only be a few people in your organization doing what you do. So even when your part of a large IT team, there's really very few people you can bounce ideas off, or discuss in depth the approach your taking to solve a business problem.
    It's really nice to be able to talk to like minded people, or hear from the experts that the issues and challenges you face, are the same ones they face. And perhaps more importantly, the approach you've taken to solve those issues is both sensible, and similar to what other people are also doing.
  3. To network with others in person
    These days with online forums we're often communicating with people from all around the world. It's really nice to meet them face to face. I've been fortunate to have met several members of the Oracle team, as well quite a few high profile presenters in person. It constantly amazes me how much personality comes across in emails and forum posts, and when you finally meet them, you feel like you already know them.
    Sharing a meal and a few drinks (sometimes quite a few) at conference events really builds those relationships. That can really help when you hit a roadblock, and need to ask for help; it's also nice when you can pay that forward by helping someone else out also.
  4. To raise your profile
    In these uncertain times you never quite know what the future is going to hold for you. So getting your name known in the Oracle community may have longer term benefits; it may open new opportunities for you.
  5. To give something back
    I've been volunteering and presenting at conferences for over 10 years now; it's my way of giving something back to the Oracle community, sharing my knowledge and helping in a small way to make sure the Oracle community is a strong and vibrant community.
So that's some of the my reasons why I go to conferences, please feel free to comment and add your reasons.

Sunday, January 6, 2013

Never write down your New Year resolutions

It's a brand new year, and I'm back from a short holiday, refreshed, re-invigorated and ready to make  some positive changes in 2013.

Now you should never write your New Year's resolutions down, particularly where somebody else might see it.

After all, 88% of all resolutions end in failure, so do you really want to leave a record to remind yourself at the end of the year of all the things you promised to do, and never managed to achieve?

Despite that, here's my list of personal goals for the year.

1. Start playing pennant squash again  

Late last year I started playing squash socially against one of the young guys at work after not touching a racquet in more than 10 years. While I was left barely able to walk, and redder than a ripe cherry by the end of the first match - I really enjoyed it. We've played several times since, each time the quality of the match has noticeably improved and I'm running around the court with much less effort.

We are getting pretty serious now, both armed with new racquets, and gearing up to play in a competition in March. Between now and the competition start we need to join a club, play a few grading games and get match fit. To that end, I've bought a pedometer and am trying to do 10,000 steps a day - squash is the only sport I know of that specifically covers vomiting in the rules.

2. Rebuild the AUSOUG website

This is something I volunteered to do, and have been working in most evenings over the last year, but not published yet. The aim is to go live in late February.

So far, I've built a content management system in APEX to maintain the website, produce eBulletins, schedule events, process conference paper submissions and the like. All that has been straight forward.

The website itself is built using Oracle Portal 10.1.4 which is much more challenging (read annoying). It's quite amazing that there are so many similarities with APEX, yet it is such a dog of a product.

3. Write an article or two for a User Group magazine

It's a real challenge facing all the Oracle user groups these days to get people to submit articles. So I'm going to do my bit - what about you?

If you're interesting in submitting an article just email me at the address below, I'll pass it on to the AUSOUG editor. We share articles with UKOUG and ODTUG, so you can get published all around the world.

4. Do a series of blogs on integrating Twitter Bootstrap into APEX

I've been using Bootstrap with APEX 4.0 (and also Oracle Portal) for about a year now, and am keen to see how much easier it is to implement in the latest APEX 4.2.1 release, which now supports grid based layouts.

Topics I plan to blog on:
  • Basic integration into page templates
  • Specific templates like standard reports, possibly IRR styling
  • List templates combined with Bootstrap components (Navbar, toggable tabs)
  • Plugin integration (AJAX enabled carousel)
  • whatever else I encounter along the way.
Anyway, that's enough resolutions from me - hope you have a great year.

Tuesday, October 23, 2012

Responsive Design in Oracle APEX - not just APEX 4.2

One of the hottest topics in web design in 2012 has been Responsive Design - the ability for a web page to dynamically re-size to fit on a desktop, tablet or mobile phone.

The reason it is such a hot topic is simple; there is no such thing as a standard screen size any more. You can't even pick a common denominator such as 1000 pixels wide and say "that will cover most computers, from laptops up to the massive dual screen desktop you told your boss you couldn't be without".

Sometime in the near future mobile devices will out-number desktops. According to which source you read it's somewhere between 2014 and 2016. Which means you should start factoring it into your applications today.

I'm really excited that APEX 4.2 supports declarative responsive design, but it may be a while before I get to  use it. In the mean time, there's no reason why you can't build it into your applications in older APEX versions today. It just requires a little more thought and ingenuity.

That's part of what I'm presenting on at the AUSOUG 2020 Foresight Conference in Perth next week.

Here's a couple of screenshots from a very simple responsive application written in APEX 4.0.

And here's the same page on a mobile phone

What's that charming expression about "eating your own dog food".

Wednesday, May 30, 2012

Loading images into Oracle XDB

There are a number of different ways to load images (and other filetypes) into Oracle XDB. You can use FTP, WebDAV or PL/SQL.

For APEX installations using the Embedded PL/SQL Gateway (EPG) images are loaded onto the server, and then loaded into XDB using PL/SQL script apxldimg.sql. With a couple of minor edits to change destination folders, the apxldimg.sql script can be re-purposed for your own applications.

The script creates a database directory, and then reads a XML file (default is imagelist.xml) to identify the directories to create and files to upload.

To generate your own imagelist file, you can use the following Windows batch script from a command window directing the output to a filename.

   imagelist.bat > imagelist.xml

@echo off
@REM *****************************************************************
@REM * File:    imagelist.bat
@REM * Author:  Mark Lancaster May 2012
@REM * Purpose: For APEX applications using the Embedded PL/SQL Gateway.
@REM             Generate XML list of directories and files suitable
@REM             for loading into Oracle XDB.
@REM             Refer APEX file "apxldimg.sql" for example usage.
@REM             Direct output to a file e.g.  imagelist.xml
@REM *****************************************************************

setlocal enabledelayedexpansion

echo ^<upload^>
echo     ^<directories^>

REM list directories with relative path

for /F "tokens=*" %%c in ('dir /ad /b /s') do (
  set abspath=%%~fc
  call set "relpath=%%abspath:%cd%\=%%"
  set relpath=!relpath:\=/!
  echo         ^<directory^>!relpath!^<^/directory^>

echo     ^<^/directories^>
echo     ^<files^>

REM list files with relative path and leading slash

for /F "tokens=*" %%c in ('dir /a-d /ogn /b /s') do (
  set abspath=%%~fc
  call set "relpath=%%abspath:%cd%\=%%"
  set relpath=!relpath:\=/!
  echo         ^<file^>^/!relpath!^<^/file^>

echo     ^<^/files^>
echo ^<^/upload^>