Posts

Showing posts from 2010

Visualising AI Embeddings in APEX

Image
" To deal with hyper-planes in a 14-dimensional space, visualize a 3-D space and say 'fourteen' to yourself very loudly. Everyone does it."     - Geoffrey Hinton , 2018 Turing Award winner. Within the wonderful world of  Generative AI , one concept that is all the rage is RAG, or  Retrieval Augmented Generation , which is an  AI framework that combines the strengths of traditional information retrieval systems (such as databases) with the capabilities of generative large language models (LLM s) . RAG's goal is to improve the accuracy, relevance, and timeliness of information  generation  - such as  documents, text and images -  by optimizing LLM output.  When creating a RAG system, it’s essential to store information in a format that a LLM can retrieve. This is where  data is converted into embeddings through a pro...

APEX 4.0: SQL in Plugins and seeing Stars.....

Image
This is my first post in a few weeks as I've been a little busy with work recently, which is just criminal as I really just want to play with APEX 4 EA2.  Oh well, bills have to be paid and children fed I suppose. Anyway, let's cut to the chase.  There is a nice feature of APEX 4 plugins (which I'm pretty sure wasn't working correctly in EA1) where you can create a custom attribute of type 'SQL Query'.  I've added this to the Range Slider plugin I use on my Online Store demo for the min and max default range values, as you can see below: Anyone using the plugin can write SQL statements for these attributes, and the good part is that they will be parsed when the changes are saved.  You can see in the screenshot below that I have set the Default Range Min Value to the mimimum selling price and the Default Range Max Value to maximum selling price.  I should, of course, set the Minimum Value and Maximum Value to also be 'SQL Query' attribute types a...

APEX EA2 update

To see the new style Plugins use this link to the Plugins Application provided by Patrick Wolf: Plugins Application I've managed to copy the syntax used in some of these plugins to update those on my Online Store demo. I've still need to upload some images and it looks like there are a few issue with my schema, but generally the app appears to be working.  So, in general it looks like EA1 apps can be imported into EA2 with little need to change anything.

APEX EA2 is now available

The good news is that it appears that applications exported from Early Adopter Phase 1 import ok in the new EA2. The bad news is that plugins have had a bit of an overhaul. It looks like the PL/SQL code used to construct a plugin now uses functions rather than procedures. So back to the drawing board for some of my online store demo plugins! Can anyone from the team shed some light on what I do with 'apex_plugin.t_page_item_render_result' or 'apex_plugin.t_page_item_validation_result', please?

Static Region Id's and Ajax Fun

More Online Store demo shenanigans for you. A bit dry this one I'm afraid. A couple of days back I decided to export/import my Online Store demo, and whilst viewing the new imported version of the application found it to be completely kaput.  It didn't take long to realise that I had made the mistake of hard coding region id's in some of the Javascript.  Well, I thought this will be easy to fix as I can just utilise Static id's instead in my regions and in place of #REGION_ID# in templates.  So far, so good, but then I realised that the Ajax refreshing of the Products and Shopping Basket regions is done using calls to html_PPR_Report_Page and $a_report, and both these require the internal numeric region id as a parameter.  As far as I know neither recognises the Static id (please correct me if I am wrong).  Doh! I get around this by creating hidden items (i.e. P1_PRODUCT_REGION_ID) based on a SQL query that uses the Static id to get the 'real' internal num...

jQuery Zooming

Many online stores offer potential buyers the choice to view large version of images of products, but increasingly there is a tendancy to allow 'zooming' in on products to see more detail.  Amazon allows this with many of its products, for instance. There is a plugin for jQuery which does something similar (ish) which I've add to my store demo .  Click on the product name for one of the products, I suggest the iPad or iPod Nano, to view this in action.  In the overlay window, hover over the image and you will see how this works.  Well this nifty little plugin is called jqZoom , but I also found a non-open source alternative that doesn't use jQuery called Magiczoom, which is used on a number of commercial sites. You will notice that a few of the images are missing from the demo.  With jqZoom, you need to store small and large versions of each product image, although the large image only gets loaded when you hover over the small image.  Each image is s...

Well Fancy that!

I came across a jQuery plugin called FancyBox for creating nice "floating" overlay windows, which I have incorporated into my online store demo .  Just click on the product name and it will display the details in a modal window.  It doesn't currently work in IE 6, although I'm not sure about later versions, so you're best viewing it in FF.

Range Slider Plugin

I've spent a little time updating my online shop demo recently. I've still a long way to go but initially I am trying to get as much core functionality built into the search page, such as trying not to submit the page at all and do as much with Ajax as I can.  From hereonin I think I shall refer to this as 'Ajaxifying' my application.  Ok maybe not. You can go to the demo here.... Online Store Demo Something to note.  You can drag and drop the product images into the shopping basket and the basket inventory will update, but this doesn't work with pagination.  If you use the range slider this will reset pagination and it will work again.  Also note, that this page only works properly with Firefox, which I think maybe down to APEX 4 EA not yet being supported in IE (it doesn't work with Chrome either). You will notice that I have created a new plugin which I have based on Patrick Wolf's slider plugin, but this uses 2 markers on the slider to represent ...

Multi touch and web applications

Image
The award for the "worst kept secret of the last 12 months" will no doubt be awarded to Apple later this week after the unveiling of the iPad this Wednesday (27th).   As I said in an earlier post , this is likely to herald the start of the era of the ubiquitous tablet computer, in part thanks to the success of the iPhone. Love 'em or hate 'em, Apple certainly know thing or two about delivering objects of desire, but I can't help feeling that there will be a lot of disappointment around if this story from The Register is true.  It indicates that the tablet's OS may be the same as that on the iPhone, and not based around Mac OS.  Considering that multi-touch is native to a 'fully blown' OS like Windows 7 and the cost of the Apple tablet is rumoured to be around $600-$800 dollars, then I wonder what impact this may have on its success? Anyway, onto the main reason for this post, which is that I got thinking about multi-touch and web based apps in gene...

Shop 'til ya drop, APEX 4 style.

Bad title I know, but it's late here in the UK, so I hope you'll cut me a little slack? Now I said I would update you on my progress with creating an online shop for my wifes business.  So, this is what I have so far. I've taken the original Online Shop packaged application, then modified and funked it up a little it using APEX 4 early adopter (if you haven't already then get yourself an account at APEX 4 EA ).  Specifically, I have used some of Anthony Rayner's excellent plugins from his recent blogpost , which I highly recommend that you use as a starting point.  The plugins in question are those to create and control a slider and drag and drop. Please visit my demo shop application and have a play around.  It's obviously only a first cut, just to test drive some APEX 4 features, and is obviously a long long way off being useful.  The features you may want to try are: You can drag and drop products (the image) to the shopping basket and the ...

iSlate, iPad, or whatever it will be called

Interesting article on the BBC News site regarding how Apple ' manages ' controlled leaks. It looks like a dead cert that Apple will anounce the iWhatever next week, and in doing so will arguably kick start the next generation of computing, that of the tablet based computer.  This will be the start of the two horse race between Apples new device and other Windows 7 (with its native mutli-touch) based devices. So, I'm thinking this can only be good news for us developers out there, as the low cost tablet (though low-cost may not apply to the Apple device) takes over from the low cost netbook.  Modern web based applications are just crying out for devices like these, particularly the kind of business centric applications we Apex developers specialise in.  I think Apex version 4, with a focus on easier Javascript development, and Ajax functionality, is going to be well positioned for development on these devices. I'm interested to see what new Apex themes and code, p...

Eventually......

Well just 3 years after creating an account on Blogger I am writing my first post. This of course is at a time when, we are told, blogging is dying (or should actually be dead now according to this Wired article from a little while back). So, with this in mind, it means I will likely start some serious twittering in around another 2-3 years, long after the twitter dust has settled. I had come here armed with an arsenal of excuses, but to hell with those, I'm just going to get on with it. You see, I'm coming to the end of a long'ish contract where again my APEX skills were called upon once again and, after it finishes, will probably spend some time building an online shop for my wifes business which supplies jewellery to other businesses, but wants to sell direct to consumers. I say 'probably' as what usually happens when I make plans in this way is that a nice little contract comes along which I start as the other finishes. Assuming for now that this plan...