<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FOEX Blog</title>
	<atom:link href="https://blog.foex.at/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.foex.at</link>
	<description>Extending Oracle APEX - Single Page Applications, Drag and Drop, Master Detail, Rich functionality</description>
	<lastBuildDate>Wed, 11 Nov 2020 12:45:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.8.15</generator>
	<item>
		<title>Low-Low-Low-Low-Low-Low-Code</title>
		<link>https://blog.foex.at/low-low-low-low-low-code/</link>
		<comments>https://blog.foex.at/low-low-low-low-low-code/#respond</comments>
		<pubDate>Tue, 10 Nov 2020 15:11:59 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[APEX]]></category>
		<category><![CDATA[APEX Plug-in Support]]></category>
		<category><![CDATA[APEX Plug-ins]]></category>
		<category><![CDATA[apex plugin]]></category>
		<category><![CDATA[apex plugin support]]></category>
		<category><![CDATA[apex support]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5242</guid>
		<description><![CDATA[Firstly, this is somewhat of an emotional post, even though it&#8217;s under the company banner. I used to love blogging but I rarely have the time to do so. I...]]></description>
				<content:encoded><![CDATA[<p>Firstly, this is somewhat of an emotional post, even though it&#8217;s under the company banner. I used to love blogging but I rarely have the time to do so. I miss it, but once in a while I get inspired. Today is one of those days.</p>
<p>I just gave a talk at the Australian User Group (AUSOUG) about using open source plug-ins in APEX. Ok, my presentation probably sounds a bit like a snooze fest, and I&#8217;m not one who enjoys presenting, but with all that said: how did it go? Better than I could have expected. Why? because I felt inspired by the work we have been doing of late.</p>
<h3>Some Background First</h3>
<p>You have to love the redesign of <a href="https://apex.oracle.com" target="_blank" rel="noopener">apex.oracle.com</a>. It looks really nice, they paid a lot of attention to detail, but the most striking thing about the landing page is this statement:</p>
<p><a href="https://blog.foex.at/wp-content/uploads/2020/11/apex-fake-news-debunked.png" rel="lightbox[5242]"><img class="aligncenter size-full wp-image-5243" src="https://blog.foex.at/wp-content/uploads/2020/11/apex-fake-news-debunked.png" alt="" width="2576" height="1190" srcset="https://blog.foex.at/wp-content/uploads/2020/11/apex-fake-news-debunked.png 2576w, https://blog.foex.at/wp-content/uploads/2020/11/apex-fake-news-debunked-150x69.png 150w, https://blog.foex.at/wp-content/uploads/2020/11/apex-fake-news-debunked-300x139.png 300w, https://blog.foex.at/wp-content/uploads/2020/11/apex-fake-news-debunked-768x355.png 768w" sizes="(max-width: 2576px) 100vw, 2576px" /></a></p>
<p>&nbsp;</p>
<h3>But, Can APEX go even faster?</h3>
<p>Yes it can!</p>
<p>How you might ask?</p>
<p>One word: Plug-ins</p>
<p>Of course there are those that might object:</p>
<ul>
<li>plug-ins aren&#8217;t safe</li>
<li>we don&#8217;t know what they do</li>
<li>they might stop our app from being upgraded in the future</li>
<li>we&#8217;re not allowed to use them</li>
</ul>
<p>Those are all fearful statements. What&#8217;s the simple answer to them in one word?</p>
<h3>Support</h3>
<p>You just need someone to support them/you. Someone you can rely on to be there, not just tomorrow but in 1 year, 5 years, 10 years.</p>
<p>It could be one or a handful of rockstar developers in your company. It could be an existing company that you already have a relationship with. But if you don&#8217;t have either of those, then we can be that company!</p>
<h3>It&#8217;s what we do!</h3>
<p>We have been building plug-ins since their inception, in business since 2012 and having a team dedicated to their support and the continual building of more. We will be here in 5 years, and we can tackle the most complex problems and love every minute of it. How many companies have their leaders &#8220;all in&#8221; on APEX and &#8220;all in&#8221; on APEX plug-ins? I don&#8217;t think there&#8217;s many&#8230;.</p>
<p>When we first started our business we started by selling commercial plug-ins. Why? Well, to survive longer than a couple of weeks you need to make money. That&#8217;s not an easy game, but we did it, and we have some faithful customers that have been with us from the start and others that have joined along the way. This also made us the black sheep of the community. We were trying to sell you something.</p>
<p>Fast forward to 2020 and we&#8217;ve been able to keep building plug-ins this whole time. As a company our entire team is &#8220;all in&#8221; on APEX. We have to tell our team to not work too much, as it has become one their hobbies too as they really love what they do. We&#8217;ve found some real diamonds!</p>
<p>As a team, we&#8217;re passionate about filling the gaps in APEX. We do this for the people who fall into these gaps and want to get out. This is why we have released open source APEX plug-ins that are free to use. We want to help as many as possible, and since the work is already done, it&#8217;s better that they get used by a lot of people than just a few.</p>
<p>Check out our <a href="https://fos.world" target="_blank" rel="noopener">free APEX plug-ins</a> and <a href="https://www.foex.at/apex-builder-extension/" target="_blank" rel="noopener">free APEX Builder Extension</a> to manage your application and workspace, theme, and plugin files.</p>
<h3>Community</h3>
<p>There are now 275 plug-ins on <a href="https://apex.world" target="_blank" rel="noopener">apex.world</a> and we&#8217;re now contributing 15 of those, with another bunch to come shortly. We also support another 15 or so from other plug-in developers with more to be included in the future. We feel like part of the community again, as we&#8217;re not solely trying to sell you something. We want to help you and if you need it? give you our support. We want you to do even more with APEX. It&#8217;s the same development tool we love, just like you. We&#8217;re on the same team. Let&#8217;s build more plug-ins. Let&#8217;s build applications faster, let&#8217;s do it with APEX, and let&#8217;s continue to show the other Oracle developer communities why APEX rules!</p>
<h3>In Summary</h3>
<p>2020 is winding down, it&#8217;s been one for the record books and not for all the right reasons. We&#8217;re looking forward to 2021 and we will be bringing out a bunch of new plug-ins in the coming months to make APEX even greater, and we hope there&#8217;s a bunch of you doing the same. Tune into <a href="https://apex.world" target="_blank" rel="noopener">apex.world</a> to keep an eye on what&#8217;s coming.</p>
<p>See you online or hopefully in person at a conference in 2021!</p>
<p>P.S. If you&#8217;re wondering about my choice of blog title, it comes from this &#8220;Tropic Thunder&#8221; <a href="https://www.youtube.com/watch?v=sr9_GfeoCjk" target="_blank" rel="noopener">clip</a> (background music). I&#8217;m pretty sure I heard &#8220;low low low low low low code&#8221; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/low-low-low-low-low-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Split Regions, Zip &#038; Download Files, and a Redirect Dynamic Action</title>
		<link>https://blog.foex.at/split-regions-zip-download-files-and-a-redirect-dynamic-action/</link>
		<comments>https://blog.foex.at/split-regions-zip-download-files-and-a-redirect-dynamic-action/#respond</comments>
		<pubDate>Thu, 01 Oct 2020 10:22:58 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[APEX Plug-ins]]></category>
		<category><![CDATA[FOS]]></category>
		<category><![CDATA[Open Source Plug-ins]]></category>
		<category><![CDATA[apex download files]]></category>
		<category><![CDATA[apex plugins]]></category>
		<category><![CDATA[apex redirect url]]></category>
		<category><![CDATA[apex splitter]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5203</guid>
		<description><![CDATA[We&#8217;ve just added 4 new open source Oracle APEX plug-ins to the FOS suite that we&#8217;re pretty confident you&#8217;re going to find some good use cases for. The new 20.1.1...]]></description>
				<content:encoded><![CDATA[<p>We&#8217;ve just added 4 new open source Oracle APEX plug-ins to the FOS suite that we&#8217;re pretty confident you&#8217;re going to find some good use cases for. The new 20.1.1 release of FOS plug-ins introduces these little gems:</p>
<ol>
<li>Region Splitter</li>
<li>Download File(s) Dynamic Action</li>
<li>Download File(s) Process</li>
<li>Redirect Dynamic Action</li>
</ol>
<p>Lets have a look each of them in a little more detail:</p>
<h3>Region Splitter</h3>
<p>Have you ever been tasked with designing a page with many regions that require a specific layout that needs to be responsive? It can be a time consuming and frustrating task especially when you get conflicting feedback on which region should be wider or thinner during user acceptance testing. You might end up writing a bunch of CSS and in the worst cases some Javascript to achieve something everyone is happy with.</p>
<p>If you find yourself in this position then consider using our new splitter plug-in to make things much easier for you. You can even nest splitters within splitters to create some pretty complex responsive layouts.</p>
<p class="fv-flowplayer-feed"><a href="https://blog.foex.at/split-regions-zip-download-files-and-a-redirect-dynamic-action/" title="Click to watch the video">[This post contains video, click to play]<br /><img src="https://blog.foex.at/wp-content/uploads/2020/10/fos-splitter-demo.png" width="400" /></a></p>
<h3>Zip &amp; Download File(s)</h3>
<p>How many times have you found yourself adding some PL/SQL to your application to download a file? What about zipping and downloading multiple files? Or how about a subset of files that the user chooses? If you&#8217;re like us, this requirement can popup many times. So we thought we&#8217;d make things a little easier for ourselves (and everyone else) by writing 2 plug-ins to do all the work for us. You might find yourself asking why did we create 2 plug-ins instead of just 1? Let us explain&#8230;</p>
<p><strong>Process plug-in</strong></p>
<p>Using a process plug-in is very similar to the way we&#8217;ve all been downloading files using some PL/SQL that we&#8217;ve found in how-to&#8217;s etc. on how to do this. In most cases you simply create a blank page and add your process in a &#8220;Before Header&#8221; point. By following the same approach with the plug-in it makes it easy for replacing existing functionality if you wanted to offload some of your code maintenance.  e.g.</p>
<div id="attachment_5227" style="width: 410px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/10/fos-download-files-process-point.png" rel="lightbox[5203]"><img class="wp-image-5227" src="https://blog.foex.at/wp-content/uploads/2020/10/fos-download-files-process-point.png" alt="" width="400" height="338" srcset="https://blog.foex.at/wp-content/uploads/2020/10/fos-download-files-process-point.png 796w, https://blog.foex.at/wp-content/uploads/2020/10/fos-download-files-process-point-150x127.png 150w, https://blog.foex.at/wp-content/uploads/2020/10/fos-download-files-process-point-300x253.png 300w, https://blog.foex.at/wp-content/uploads/2020/10/fos-download-files-process-point-768x648.png 768w" sizes="(max-width: 400px) 100vw, 400px" /></a><p class="wp-caption-text">Downloading a File using a Process</p></div>
<p><strong>Dynamic Action Plug-in</strong></p>
<p>This plug-in allows you to download files in a dynamic action, meaning you can run some actions before and/or after the downloading of file(s). It gives us much more flexibility than a process plug-in and allows us to gracefully handle errors without being redirected to the application error page when a PL/SQL exception is raised. We&#8217;ve also included file preview support for images, pdf&#8217;s, and text/html files in either a dialog or a new browser window/tab so you can give your end users the option of looking at the file prior to downloading it to their local file system.</p>
<p class="fv-flowplayer-feed"><a href="https://blog.foex.at/split-regions-zip-download-files-and-a-redirect-dynamic-action/" title="Click to watch the video">[This post contains video, click to play]<br /><img src="https://blog.foex.at/wp-content/uploads/2020/10/fos-download-files-demo.png" width="400" /></a></p>
<h3>Redirect Dynamic Action</h3>
<p>How many times have you found yourself wanting to redirect to another page after performing several actions first, and have found yourself having to use &#8220;Submit Page&#8221; with some branching logic before or after processing. Sometimes submitting a page can cause some unwanted side effects like client side validations firing, or needing to run some PLSQL prior to branching resulting in adding extra conditions to all our validations/computations/processes/branches which can result in a fair amount of work.</p>
<p>We&#8217;re introducing a new plug-in to avoid this issue. Inspired by the <a href="https://github.com/mennooo/orclapex-redirect" target="_blank" rel="noopener">original Redirect plug-in from Menno</a> (who&#8217;s now an official member of the APEX team) we decided to add our own version which has the added bonus of letting you execute some PL/SQL prior to redirecting and allowing you to change the URL at the time of execution.</p>
<p class="fv-flowplayer-feed"><a href="https://blog.foex.at/split-regions-zip-download-files-and-a-redirect-dynamic-action/" title="Click to watch the video">[This post contains video, click to play]<br /><img src="https://blog.foex.at/wp-content/uploads/2020/10/fos-redirect-url-demo.png" width="400" /></a></p>
<h3>In Summary</h3>
<p>You can see a live demo of all of our <a href="https://fos.world" target="_blank" rel="noopener">FOS plug-ins here in a single application</a> which you can easily download and install in your own environment. Alternatively you can go directly to <a href="https://apex.world" target="_blank" rel="noopener">apex.world</a> or <a href="https://github.com/foex-open-source" target="_blank" rel="noopener">GitHub</a> to download individual plug-ins.</p>
<p>Hopefully you find a use for one of these in your apps at some point in the future, and remember these are <a href="https://www.foex.at/fos/#support" target="_blank" rel="noopener">supported free plug-ins</a>, so there shouldn&#8217;t be an argument why you shouldn&#8217;t use them <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/split-regions-zip-download-files-and-a-redirect-dynamic-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing our new APEX plug-in support service</title>
		<link>https://blog.foex.at/announcing-our-new-apex-plug-in-support-service/</link>
		<comments>https://blog.foex.at/announcing-our-new-apex-plug-in-support-service/#respond</comments>
		<pubDate>Mon, 31 Aug 2020 12:05:58 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[APEX Plug-in Support]]></category>
		<category><![CDATA[FOS]]></category>
		<category><![CDATA[Open Source Plug-ins]]></category>
		<category><![CDATA[apex plugin]]></category>
		<category><![CDATA[apex plugin support]]></category>
		<category><![CDATA[apex.world plugins]]></category>
		<category><![CDATA[custom apex plugins]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5145</guid>
		<description><![CDATA[Our new APEX Plug-in support service We recently announced our new company initiative called FOS which is dedicated to everything open source. Part of this initiative is to offer an...]]></description>
				<content:encoded><![CDATA[<h3>Our new APEX Plug-in support service</h3>
<p>We recently announced our new company initiative called FOS which is dedicated to everything open source. Part of this initiative is to offer an affordable low-cost <a href="https://www.foex.at/plugin-support/">commercial support service</a> for plug-ins <strong>developed by anyone</strong>. We want to encourage the use of plug-ins and we want you to feel safe in the knowledge that you have someone to call on when you need help.</p>
<p>&nbsp;</p>
<div id="erdyt-5fb08b4b89c6d" data-id="5fb08b4b89c6d" class="erd-youtube-responsive erd-ytlazyload"   style="width:100%;max-width:100%;margin:0 auto;display:block;clear:both;position:relative;"><div style="padding-bottom:56.25%;"><div class="erd-ytplay" id="erdytp-5fb08b4b89c6d" data-vid="S8VRfd-OBqU" data-src="https://www.youtube.com/embed/S8VRfd-OBqU?rel=0&&autoplay=1"><img src="https://i.ytimg.com/vi/S8VRfd-OBqU/hqdefault.jpg" alt="YouTube video" /></div></div></div>
<p>&nbsp;</p>
<p>Our team has been building plug-ins since the plug-in architecture was introduced in APEX 4.0. We have built hundreds of plug-ins of all types and sizes. We have a team of APEX plug-in specialists with Javascript expertise. You can count on us to keep them working for the lifetime of your application. We have the skills to support any plug-in of any size written by any author.</p>
<p>In the beginning, we are offering a list of specific <a href="https://apex.world/" target="_blank" rel="noopener">apex.world</a> plug-ins that we support. We will work with the existing developer of the plug-in to resolve issues and help with improvements, whilst compensating them for their time &amp; effort. In situations where this is not possible, or it&#8217;s a plug-in built by a 3rd party or in-house, we will make the necessary changes &amp; fixes. For open-source plug-ins we can fork the plug-in to provide and issue GitHub pull requests to keep the main plug-in up to date for everyone&#8217;s benefit. You can find the initial list of plug-ins we support <a href="https://www.foex.at/plugin-support/" target="_blank" rel="noopener">here</a>.</p>
<p>If you are using other plug-ins that you want support for, <a href="https://www.foex.at/contact/I%20am%20interested%20in%20your%20plugin%20support%20development%20service" target="_blank" rel="noopener">contact us</a>, and we can come to a custom support agreement for your situation.</p>
<h3>Why offer Open Source Plug-in Support?</h3>
<p>APEX open-source plug-ins are great for the reason that they provide missing functionality from APEX which you can install and use just like you would a regular APEX feature without writing the code. They&#8217;re free to use and you can get them from <a href="https://apex.world/" target="_blank" rel="noopener">apex.world</a>, or in the past from apex-plugin.com, or even Oracle&#8217;s website. They are a boon for productivity and in many cases provide the functionality we wouldn&#8217;t be able or have the time to create ourselves. However, they are not used in many business applications for a number of reasons.</p>
<h3>APEX Plug-in Challenges</h3>
<p>There are several drawbacks to using open source plug-ins, the No.1 being who&#8217;s going to help me when it breaks after upgrading to a new version of APEX? and who can help me quickly? delays cost money, not being able to upgrade costs even more down the line. It&#8217;s a bit of a stretch to believe the plug-in author is going to fix it for you immediately and do so without being paid for it. Some plug-in authors do, but there is no guarantee even from those ones when it comes to the time that &#8220;you&#8221; need help.</p>
<p>Sadly this issue means that a lot of companies do not use plug-ins or have a very short list of allowed plug-ins. Therefore developers miss out on functionality and productivity benefits. You end up having to write the code yourself, meaning you need the expertise and must also make a time investment into the creation and maintenance of your solution. If you don&#8217;t have these skills or the time to invest then you end up forgoing that functionality and the users of your application are the ones that suffer.</p>
<p>As plug-in advocates, this is something we would like to address by offering a <a href="https://www.foex.at/plugin-support/" target="_blank" rel="noopener">support service</a> for open source plug-ins, or plug-ins your company may have developed but no longer have anyone to support it.</p>
<h3>What about other plug-ins?</h3>
<p>If you would like to have an <a href="https://apex.world/" target="_blank" rel="noopener">apex.world</a> specific plug-in added that&#8217;s not on the list, simply <a href="https://www.foex.at/contact/I%20am%20interested%20in%20your%20plugin%20support%20development%20service" target="_blank" rel="noopener">let us know</a>. We will review the plug-in and reach out to the developer to add it to our list of supported plug-ins. For plug-ins you have built in-house and would like to remain private we can come to an agreement on support costs. For older plug-ins from apex-plugin.com we can also come to an agreement on how to support them for you too.</p>
<h3>Are you a plug-in developer?</h3>
<p>If you are a plug-in developer and would like to have your plug-in included in our support package please <a href="https://www.foex.at/contact/" target="_blank" rel="noopener">contact us</a>. We will review your plug-in(s) and let you know if we can provide support for them i.e. there are certain criteria your plug-in must meet to be included e.g. security, code quality, type of plug-in, potential usage, etc. We can be the first line of support that enables your plug-in to be used in more applications than it otherwise would be. We will also be able to compensate you for your time when you provide any fixes for a support customer.</p>
<h3>In Summary</h3>
<p>If you find yourself arguing with your team or management to use a plug-in, or you are using a plug-in and it breaks when upgrading, now you have a stronger case as you can answer &#8220;who&#8217;s going to support it?&#8221; answer: &#8220;the FOS team will&#8221;. You can find out more <a href="https://www.foex.at/plugin-support/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/announcing-our-new-apex-plug-in-support-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FOS Plug-in Support, how does it work?</title>
		<link>https://blog.foex.at/fos-plug-in-support-how-does-it-work/</link>
		<comments>https://blog.foex.at/fos-plug-in-support-how-does-it-work/#respond</comments>
		<pubDate>Wed, 26 Aug 2020 07:26:52 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[APEX]]></category>
		<category><![CDATA[Open Source Plug-ins]]></category>
		<category><![CDATA[apex dynamic actions]]></category>
		<category><![CDATA[apex plugin support]]></category>
		<category><![CDATA[apex plugins]]></category>
		<category><![CDATA[apex support]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5153</guid>
		<description><![CDATA[We recently released 10 free open source plug-ins for Oracle APEX. We provide both free and paid support for these plug-ins, but how does it all work? Release Schedule We...]]></description>
				<content:encoded><![CDATA[<p>We recently released <a href="https://fos.world">10 free open source plug-ins</a> for <a href="https://apex.oracle.com" target="_blank" rel="noopener">Oracle APEX</a>. We provide both <a href="https://www.foex.at/fos/#support">free and paid support</a> for these plug-ins, but how does it all work?</p>
<h3><div id="erdyt-5fb08b4b8ada6" data-id="5fb08b4b8ada6" class="erd-youtube-responsive erd-ytlazyload"   style="width:100%;max-width:100%;margin:0 auto;display:block;clear:both;position:relative;"><div style="padding-bottom:56.25%;"><div class="erd-ytplay" id="erdytp-5fb08b4b8ada6" data-vid="UVg6euw8TRc" data-src="https://www.youtube.com/embed/UVg6euw8TRc?rel=0&&autoplay=1"><img src="https://i.ytimg.com/vi/UVg6euw8TRc/hqdefault.jpg" alt="YouTube video" /></div></div></div></h3>
<h3>Release Schedule</h3>
<p>We plan to release a version of FOS plug-ins after every APEX release. The minimum APEX version requirement will be APEX 19.2. The first version of FOS that we released was 20.1, which supports both APEX 19.2 and 20.1. The next scheduled release of APEX is 20.2, therefore we will release version 20.2 of FOS, which we guarantee compatibility for 19.2, 20.1, and 20.2. We will continue to release a version of FOS for every version of APEX.</p>
<p>&nbsp;</p>
<h3>Free Support</h3>
<p>All free support will be done through GitHub. If you encounter a bug or have a problem we kindly ask that you raise a GitHub issue and we will provide a prompt response. For serious issues that affect the ability to use the plug-in, we will address and resolve these immediately. For small issues and minor improvement requests these will most likely wait until the next major release of both APEX &amp; FOS. <a href="https://github.com/foex-open-source" target="_blank" rel="noopener">Free support</a> entitles you to:</p>
<ol>
<li><a href="https://docs.github.com/en/github/managing-your-work-on-github/creating-an-issue" target="_blank" rel="noopener">Create GitHub Issues</a></li>
<li>You can fork the plug-in and provide your own fix and issue a &#8220;<a href="https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests" target="_blank" rel="noopener">Pull Request</a>&#8220;</li>
</ol>
<p>&nbsp;</p>
<h3>Paid Support</h3>
<p>For companies that would like a support guarantee and the ability to have direct contact with our FOS team, you can sign up for our annual support subscription for a meagre 1000 EUR/Year. <a href="https://www.foex.at/fos/#support">Paid support</a> entitles you to:</p>
<ol>
<li>You will have access to our support portal and access to all patches/hot fixes</li>
<li>You can raise a support ticket through our support portal</li>
<li>We guarantee a fast response and expedited bug fixes</li>
<li>We will prioritise your enhancement and new plug-in requests</li>
<li>Your financial contribution will help us grow the number of plug-ins we provide</li>
</ol>
<p>&nbsp;</p>
<h3>In Summary</h3>
<p>There&#8217;s shouldn&#8217;t be anything stopping you from using these plug-ins in your application. Whether your application is commercial, closed or open source. They will remain free and you will have support for them for the lifetime of your application. Whilst there&#8217;s the old saying &#8220;there&#8217;s no free lunch&#8221;, well there are &#8220;free plug-ins&#8221; instead <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/fos-plug-in-support-how-does-it-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Open Source APEX Plug-ins with Support</title>
		<link>https://blog.foex.at/free-open-source-apex-plug-ins-with-support/</link>
		<comments>https://blog.foex.at/free-open-source-apex-plug-ins-with-support/#respond</comments>
		<pubDate>Fri, 14 Aug 2020 12:38:00 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[APEX]]></category>
		<category><![CDATA[FOS]]></category>
		<category><![CDATA[apex plug-in]]></category>
		<category><![CDATA[apex plugin]]></category>
		<category><![CDATA[free apex plugin]]></category>
		<category><![CDATA[open source apex plugins]]></category>
		<category><![CDATA[supported apex plugins]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5123</guid>
		<description><![CDATA[We&#8217;re proud to announce the initial release of FOS Plug-ins v20.1, a set of documented and supported Open Source APEX plug-ins. You can use them in any project, commercial, closed or...]]></description>
				<content:encoded><![CDATA[<p>We&#8217;re proud to announce the initial release of FOS Plug-ins v20.1, a set of documented and supported Open Source APEX plug-ins. You can use them in any project, commercial, closed or open source.</p>
<h3>Overview</h3>
<p><iframe src="https://www.youtube.com/embed/z8iwsfNYANU" width="750" height="422" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h3>About</h3>
<p>FOS plug-ins are a professional set of commercially supported open source plug-ins for the benefit of the Oracle APEX community. These plug-ins have been built for regular APEX applications and work standalone with no dependencies. You can use one, a handful, or all of them. It&#8217;s your choice. The plug-ins have been created to provide missing declarative APEX features or improvements to existing functionality. The plug-ins have been designed to help you improve your development productivity and solution capabilities.</p>
<p>You can head over to <a href="https://fos.world" target="_blank" rel="noopener">fos.world</a> to see them in action, and download.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/free-open-source-apex-plug-ins-with-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edit and Minify APEX Static Javascript and CSS files directly in APEX</title>
		<link>https://blog.foex.at/apex-builder-extension-by-fos-release/</link>
		<comments>https://blog.foex.at/apex-builder-extension-by-fos-release/#respond</comments>
		<pubDate>Sun, 12 Apr 2020 23:12:28 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[APEX]]></category>
		<category><![CDATA[FOS]]></category>
		<category><![CDATA[FOS Browser Extension]]></category>
		<category><![CDATA[apex compile less]]></category>
		<category><![CDATA[apex edit files]]></category>
		<category><![CDATA[apex minify javascript]]></category>
		<category><![CDATA[apex nitro]]></category>
		<category><![CDATA[apex visual studio code]]></category>
		<category><![CDATA[apex vs code]]></category>
		<category><![CDATA[apex vscode]]></category>
		<category><![CDATA[Oracle APEX]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5042</guid>
		<description><![CDATA[The Problem The APEX builder has improved so much since the release of APEX 5.0. As developers our productivity has increased by orders of magnitude, but for one area  i.e....]]></description>
				<content:encoded><![CDATA[<h2>The Problem</h2>
<p>The APEX builder has improved so much since the release of APEX 5.0. As developers our productivity has increased by orders of magnitude, but for one area  i.e. editing Javascript &amp; CSS files stored under static application files or within the definition of plugins, we have had to rely on external tools, like Sublime or Visual Studio Code. To workaround the pain of deleting and re-uploading of files and minifying them, you might be using APEX Nitro (and Node JS).</p>
<p>These tools combined offer a good workflow, but also depend on having these tools installed on your laptop. Sometimes you might not be on your laptop and need to make a change to a file, or sometimes you company might not allow Node JS to be installed on your laptop, or installing/using APEX Nitro might just be one step too far for you. When this is the case, making changes to these files is quite an arduous task.</p>
<h2>The Solution</h2>
<p>Since we&#8217;re a company that focuses on improving end user productivity through good design, we decided to solve this issue. How you might ask, since this is the APEX builder and we have no control? Well, you actually have more control than you think, thanks to modern browser extensions! We&#8217;re introducing a new one for the APEX community that its sole purpose is for APEX Builder improvements for regular APEX applications. It&#8217;s called the &#8220;APEX Builder Extension by FOS&#8221;. If you&#8217;re wondering who/what FOS is, well it&#8217;s simply an acronym for &#8220;FOEX Open Source&#8221;.</p>
<p>The extension combines the Visual Studio Code Editor with Javascript and CSS minification, Less compilation with the ability to edit and create new static application or workspace files and plugin files using the existing APEX Builder screens. It has zero dependencies on external resources, apart from the extension itself of course!</p>
<h2>Overview</h2>
<p><iframe src="https://www.youtube.com/embed/k5O1mjbH0Zg" width="696" height="392" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2>Installation</h2>
<p>It&#8217;s free to use and open-source, no strings attached! Simply click on the button below to add to your browser. You can also find the project on <a href="https://github.com/foex-open-source/apex-builder-extension-by-fos" target="_blank" rel="noopener">Github</a> if you want to take a look behind the scenes.</p>
<p><a class="btn btn-lg btn-success center-block" style="width: 160px; color: #fff;" role="button" href="https://bit.ly/fos-extension-chrome" target="_blank" rel="noopener">Add to Chrome</a><br />
<a class="btn btn-lg btn-success center-block" style="width: 160px; color: #fff;" role="button" href="https://bit.ly/fos-extension-firefox" target="_blank" rel="noopener">Add to Firefox</a></p>
<div id="attachment_5087" style="width: 640px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-dark.png" rel="lightbox[5042]"><img class="wp-image-5087" src="https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-dark.png" alt="" width="630" height="371" srcset="https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-dark.png 2784w, https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-dark-150x88.png 150w, https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-dark-300x177.png 300w, https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-dark-768x452.png 768w" sizes="(max-width: 630px) 100vw, 630px" /></a><p class="wp-caption-text">Dark Mode</p></div>
<div id="attachment_5086" style="width: 640px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-light.png" rel="lightbox[5042]"><img class="wp-image-5086" src="https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-light.png" alt="" width="630" height="371" srcset="https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-light.png 2784w, https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-light-150x88.png 150w, https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-light-300x177.png 300w, https://blog.foex.at/wp-content/uploads/2020/04/fos-apex-builder-extension-light-768x452.png 768w" sizes="(max-width: 630px) 100vw, 630px" /></a><p class="wp-caption-text">Light Mode</p></div>
<p>&nbsp;</p>
<h2 style="text-align: left;">Features</h2>
<p><strong>Create and edit static application, workspace and plug-in files</strong></p>
<p>Once you&#8217;ve installed the extension, on each of these 3 pages you will find a new region, called &#8220;Edit Files.&#8221; Either choose a file from the dropdown list to open it, or click the &#8220;Add File&#8221; button to create a new one. You can then edit your file, and click the save icon to save it. No page submit required.</p>
<p><strong>Enjoying editing one file? Try editing 2 files. Although&#8230; why stop there?</strong></p>
<p>You can open as many files as you want. What&#8217;s more, you can drag and drop a tab to enter split screen mode. Although the most common use case will probably be having a JavaScript file on one side and a CSS file on the other, you can arrange the panels any way you want. Also note that the gutters between panels are actually splitters. So you can resize them as well. Check out this demo for an idea of the behaviour&#8230;.</p>
<p><strong>Fullscreen mode and keyboard shortcuts</strong></p>
<p>The extension attempts to provide as good of a programming experience as possible, so in order to feel more like editing in a conventional editor, you can enter fullscreen mode. You now have a better, more focused view, and can&#8217;t accidentally scroll beyond the editor. Want to exit fullscreen mode? Hit Escape. Another handy shortcut is <strong>crtl-s</strong> on Windows, or <strong>cmd-s</strong> on Mac. While having the focus in an editor, hit this shortcut just like you would on a desktop editor, and your changes will be saved.</p>
<p><strong>The editor</strong></p>
<p>As you might have noticed, this extension doesn&#8217;t use the Code Mirror editor, like the rest of the APEX Builder. It instead uses <a href="https://microsoft.github.io/monaco-editor/" target="_blank" rel="noopener">Monaco</a>, the same editor as the one behind <a href="https://code.visualstudio.com/" target="_blank" rel="noopener">Visual Studio Code</a> (<a href="https://twitter.com/code" target="_blank" rel="noopener">VS Code</a>). Were you aware that <a href="https://code.visualstudio.com/" target="_blank" rel="noopener">VS Code</a> was written in Javascript and HTML5? Amazing huh, and since it is, we can also use it within APEX! By using Monaco, it means that it comes packed with many of the same great features that VS Code has to offer, such as descriptive error and warning messages, autocomplete, intelli-sense, and much much more.</p>
<p><strong>JavaScript file minification and Less file compilation</strong></p>
<p>The extension also introduces the ability to minify JavaScript files. Just click the &#8220;Minify&#8221; icon, and your file will be saved and minified. You should then see a .min.js version of your file appear in the select list and in the files report.</p>
<p>There&#8217;s also functionality for compiling Less files. This is already possible via the Theme Roller, but we&#8217;re bringing this functionality to the static files as well. Just click the &#8220;Run&#8221; icon and your file will be compiled. You should then see a .css version of your file appear in the select list. In the future we&#8217;re looking to include SASS compilation too.</p>
<h2 style="text-align: left;">How did we get this to work?</h2>
<p>In short, we fetch the file contents by leveraging the already present file download links on the page, and behind the scenes open and submit the Upload File(s) page to save the newly updated content. There&#8217;s nothing additional that we do code wise to save the files on the backend, it&#8217;s all handled by the APEX engine. It&#8217;s really fast too, so you probably won&#8217;t even notice it, since we&#8217;re doing this without submitting/reloading the page i.e. Single Page Design style, which is how we&#8217;ve been designing and building the majority of our APEX applications for years. We know APEX inside and out!</p>
<h2 style="text-align: left;">Roadmap, technical details, and more</h2>
<p>There&#8217;s a number of things we&#8217;re looking at doing, you can see the <a href="https://github.com/foex-open-source/apex-builder-extension-by-fos" target="_blank" rel="noopener">Github page</a> for more details. You can log your own feature requests and report any bugs/issues there too. Stefan Dobre is the lead developer on this project and really passionate about APEX &amp; super talented! You can follow him on <a href="https://twitter.com/stefan__dobre" target="_blank" rel="noopener">twitter</a> and read his APEX ramblings on his <a href="https://stefandobre.com/" target="_blank" rel="noopener">blog.</a> We&#8217;ve got him working on quite a few interesting things that you might find very helpful in the near future, so keep an eye out for his tweets and posts.</p>
<p>We hope you find this extension useful and are looking forward to your feedback.<br />
<a href="https://twitter.com/search?q=%23LetsWreckThisTogether" target="_blank" rel="noopener">#LetsWreckThisTogether</a></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/apex-builder-extension-by-fos-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new APEX Plugin to edit and annotate images has arrived!</title>
		<link>https://blog.foex.at/a-new-apex-plugin-to-edit-and-annotate-images-has-arrived/</link>
		<comments>https://blog.foex.at/a-new-apex-plugin-to-edit-and-annotate-images-has-arrived/#respond</comments>
		<pubDate>Wed, 08 Apr 2020 16:43:42 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[File Upload & Image Editor]]></category>
		<category><![CDATA[Release 20.1.0]]></category>
		<category><![CDATA[apex file upload]]></category>
		<category><![CDATA[apex image annotate]]></category>
		<category><![CDATA[apex images]]></category>
		<category><![CDATA[apex upload multiple files]]></category>
		<category><![CDATA[edit images apex]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5022</guid>
		<description><![CDATA[We are pleased to announce the release of a beautiful and intuitive file upload &#38; image editor plugin for Oracle APEX that works everywhere! Whether you are using your Desktop,...]]></description>
				<content:encoded><![CDATA[<p>We are pleased to announce the release of a beautiful and intuitive file upload &amp; image editor plugin for Oracle APEX that works everywhere! Whether you are using your Desktop, Tablet, or Phone you can upload and annotate images directly in your APEX app with zero dependencies!<br />
<a class="btn btn-lg btn-success center-block" style="width: 150px; color: #fff;" role="button" href="https://www.foex.at/ords/f?p=FUE" target="_blank" rel="noopener">Live Demo</a></p>
<h2>Overview</h2>
<p><iframe src="https://www.youtube.com/embed/cJtrC1J3lQo" width="696" height="392" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Perform all your image editing/transformation requirements in the browser on your phone, tablet or desktop. With no additional dependencies, simply make your desired image changes and upload the finished result by simply clicking &#8220;Done&#8221;! Super quick to install and use, simply &#8220;Import -&gt; Add Region -&gt; and Run&#8221; in literally minutes with zero coding!</p>
<p>Speed up your development and speed up your users workflow by enabling them to do everything they need with images without resorting to external programs. It’s a win-win and great time saver! Features include:</p>
<h3>File Uploading</h3>
<div>
<p>A user-friendly and visually attractive file uploader with options like:</p>
<ul>
<li>Drag &amp; Drop files</li>
<li>Select files from your local File System</li>
<li>Copy &amp; Paste an Image from your clipboard</li>
<li>Stream file uploading for quicker upload time</li>
</ul>
</div>
<h3>Image Editing</h3>
<div>
<p>Change images on the fly using a beautiful and easy to use image editor</p>
<ul>
<li>Enforce an aspect ratio</li>
<li>Rotate resize &amp; flip your image</li>
<li>Photo filter effects including back/white</li>
<li>Change contrast, brightness, saturation</li>
</ul>
</div>
<h3>Image Annotation</h3>
<div>
<p>Need to highlight something important in the image or add some context to it?</p>
<ul>
<li>Add text and control the color, font, and sizing</li>
<li>Add arrows and change size and orientation</li>
<li>Draw squares &amp; circles and resize them accordingly</li>
</ul>
</div>
<h3>File Transformation</h3>
<div>
<p>You have the ability to perform a number of automatic &#8220;in browser” transformations just prior to file upload</p>
<ul>
<li>Add a watermark e.g. company logo</li>
<li>Image resizing i.e. enforce a standard size</li>
<li>Image cropping</li>
<li>Applying Filtering e.g. Black &amp; White</li>
<li>File format conversion e.g. jpeg -&gt; png</li>
</ul>
</div>
<h3>Edit Existing Files</h3>
<div>
<p>Your files have been uploaded already? No problem you can edit them at any time, not just when they are uploaded the first time:</p>
<ul>
<li>Edit any existing image stored in the database</li>
<li>Restrict the ability to upload new files</li>
<li>Open the image editor to perform any desired changes</li>
<li>You can perform the same transformations as you can with new files</li>
</ul>
</div>
<h3>Actions</h3>
<div>
<p>We additionally include a dynamic action so you can change the following on the fly:</p>
<ul>
<li>Set file size limit</li>
<li>Set number of files limit</li>
<li>Toggle Theme, Toggle Modal</li>
<li>Restrict Editing options e.g. Crop Only</li>
<li>Plus more&#8230;.</li>
</ul>
</div>
<p><a class="btn btn-lg btn-success center-block" style="width: 150px; color: #fff;" role="button" href="https://www.foex.at/ords/f?p=FUE" target="_blank" rel="noopener">Live Demo</a></p>
<h3>License</h3>
<p>This plugin requires a commercial license to use. You can find out more information <a href="https://www.foex.at/file-upload-image-editor" target="_blank" rel="noopener">here</a></p>
<h3>Footnote</h3>
<p>As we have focused purely on in browser functionality you may have a requirement to batch process your images or process them server side, similar to Oracle Multimedia. Given that Oracle Multimedia is deprecated / being removed from the database you should consider <a href="https://www.apexmediaextension.com/index.html" target="_blank" rel="noopener">APEX Media Extension by APEX R&amp;D</a>. If you&#8217;re wondering why we are releasing somewhat similar functionality to them is basically, &#8220;we didn&#8217;t know&#8221;. We started work on this project back in June 2019, and development at the end of November.</p>
<p>We can say we were surprised in December when they initially announced &#8220;APEX Media Extension&#8221;. At the same time we were focusing on browser only functionality without any server dependencies Vs their serverside implementation. We have spoken with APEX R&amp;D and we both see the competition as a good thing, it will benefit the community. We will continue to do our best to serve our customers with the best possible tools to make their job easier, and their application users happier.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/a-new-apex-plugin-to-edit-and-annotate-images-has-arrived/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free 1/2 Day APEX Event with Shakeeb Rahman and Dan McGhan</title>
		<link>https://blog.foex.at/free-12-day-apex-event-with-shakeeb-rahman-and-dan-mcghan/</link>
		<comments>https://blog.foex.at/free-12-day-apex-event-with-shakeeb-rahman-and-dan-mcghan/#respond</comments>
		<pubDate>Tue, 25 Feb 2020 08:28:03 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[APEX Events]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=5007</guid>
		<description><![CDATA[Do you want to find out some interesting insights into the APEX Universal theme, learn more about Javascript and how you can leverage it in APEX? Then make sure you&#8217;re in...]]></description>
				<content:encoded><![CDATA[<p>Do you want to find out some interesting insights into the APEX Universal theme, learn more about Javascript and how you can leverage it in APEX?</p>
<p>Then make sure you&#8217;re in Vienna, Austria on the 21st of April. Located at the Oracle office in central Vienna, with a view like this, how could you miss it?</p>
<div id="attachment_5015" style="width: 681px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/oracle-office-vienna-cropped.png" rel="lightbox[5007]"><img class="wp-image-5015 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/oracle-office-vienna-cropped.png" alt="" width="671" height="341" srcset="https://blog.foex.at/wp-content/uploads/2020/02/oracle-office-vienna-cropped.png 671w, https://blog.foex.at/wp-content/uploads/2020/02/oracle-office-vienna-cropped-150x76.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/oracle-office-vienna-cropped-300x152.png 300w" sizes="(max-width: 671px) 100vw, 671px" /></a><p class="wp-caption-text">Oracle Office in Vienna</p></div>
<p>&nbsp;</p>
<p>With the <a href="https://www.aaapeks.info/home/">AAApeks conference</a> in close proximity in Maribor, we have been fortunate enough to additionally organize both Shakeeb Rahman from the APEX team and an Dan McGhan the Oracle Javascript evangelist, to present at this <a href="https://www.meetup.com/en-AU/orclapex-Vienna/events/268912294/">free half day event</a>. Expect some serious Javascript, CSS, and Design explanations from these experts.</p>
<p>&nbsp;</p>
<h3>Agenda</h3>
<p><a href="https://www.meetup.com/en-AU/orclapex-Vienna/events/268912294/"><img class="alignright wp-image-5010" src="https://blog.foex.at/wp-content/uploads/2020/02/apex-vienna-half-day-event-2020-232x300.png" alt="" width="350" height="452" srcset="https://blog.foex.at/wp-content/uploads/2020/02/apex-vienna-half-day-event-2020-232x300.png 232w, https://blog.foex.at/wp-content/uploads/2020/02/apex-vienna-half-day-event-2020-116x150.png 116w, https://blog.foex.at/wp-content/uploads/2020/02/apex-vienna-half-day-event-2020.png 656w" sizes="(max-width: 350px) 100vw, 350px" /></a></p>
<p>13:00 &#8211; Start and Intro &#8211; Peter Raganitsch (FOEX)</p>
<p>13:15 &#8211; Getting Started With JavaScript For APEX Developers &#8211; Dan McGhan (Oracle)</p>
<p>14:00 &#8211; Break</p>
<p>14:10 &#8211; Getting Started With JavaScript For APEX Developers &#8211; Dan McGhan (Oracle)</p>
<p>14:55 &#8211; Break</p>
<p>15:15 &#8211; Universal Theme deep dive &#8211; Shakeeb Rahman (Oracle)</p>
<p>16:00 &#8211; Break</p>
<p>16:10 &#8211; Applying your corporate look and feel to Universal Theme &#8211; Shakeeb Rahman (Oracle)</p>
<p>16:55 &#8211; Break</p>
<p>17:00 &#8211; Q&amp;A</p>
<p>17:30 &#8211; End</p>
<p>&nbsp;</p>
<p>That&#8217;s right folks, we will say it again, it&#8217;s free, you just have to <a href="https://www.meetup.com/en-AU/orclapex-Vienna/events/268912294/">register</a> &amp; show up! That should be pretty easy to convince the boss? or have a day off work? shouldn&#8217;t it? <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>P.S.</strong> why not make it a week off work and also attend <a href="https://www.aaapeks.info/home/">APEX Alpe Adria</a> in Maribor on the 24th of April. A couple of days in Vienna and a couple in Maribor, combine some work &amp; sightseeing &amp; fun at the same time!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/free-12-day-apex-event-with-shakeeb-rahman-and-dan-mcghan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We just released FOEX 4.2 with realtime editing using Websockets</title>
		<link>https://blog.foex.at/we-just-released-foex-4-2-heres-a-sneak-peek-on-whats-new/</link>
		<comments>https://blog.foex.at/we-just-released-foex-4-2-heres-a-sneak-peek-on-whats-new/#respond</comments>
		<pubDate>Mon, 10 Feb 2020 15:51:12 +0000</pubDate>
		<dc:creator><![CDATA[Matt Nolan]]></dc:creator>
				<category><![CDATA[Software releases]]></category>
		<category><![CDATA[apex debounce]]></category>
		<category><![CDATA[apex inactivity timer]]></category>
		<category><![CDATA[apex throttle]]></category>
		<category><![CDATA[apex websockets]]></category>

		<guid isPermaLink="false">https://blog.foex.at/?p=4932</guid>
		<description><![CDATA[FOEX Live Editing with Websockets In this release we are introducing a new addon to introduce live editing capability of the grid, tree grid, and editable list views using websockets....]]></description>
				<content:encoded><![CDATA[<h2>FOEX Live Editing with Websockets</h2>
<p>In this release we are introducing a new addon to introduce live editing capability of the grid, tree grid, and editable list views using websockets. You will be able to see realtime changes and a realtime visualization of other users modifying data in the same view of data you are viewing. Just like you can with Google spreadsheets.</p>
<h3>Grid Demo</h3>
<h3><p class="fv-flowplayer-feed"><a href="https://blog.foex.at/we-just-released-foex-4-2-heres-a-sneak-peek-on-whats-new/" title="Click to watch the video">[This post contains video, click to play]<br /><img src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.demo_.png" width="400" /></a></p></h3>
<h3>Tree Grid Demo</h3>
<h3><p class="fv-flowplayer-feed"><a href="https://blog.foex.at/we-just-released-foex-4-2-heres-a-sneak-peek-on-whats-new/" title="Click to watch the video">[This post contains video, click to play]<br /><img src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.treegrid.demo_.png" width="400" /></a></p></h3>
<h3>List View Demo</h3>
<h3><p class="fv-flowplayer-feed"><a href="https://blog.foex.at/we-just-released-foex-4-2-heres-a-sneak-peek-on-whats-new/" title="Click to watch the video">[This post contains video, click to play]<br /><img src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.kanban.demo_.png" width="400" /></a></p></h3>
<h3>Notify Other Regions Demo</h3>
<h3><p class="fv-flowplayer-feed"><a href="https://blog.foex.at/we-just-released-foex-4-2-heres-a-sneak-peek-on-whats-new/" title="Click to watch the video">[This post contains video, click to play]<br /><img src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.notify-others.demo_.png" width="400" /></a></p></h3>
<p>This is achieved using websockets and Node.js. Setup is simple as checking a checkbox under the options within your region attributes. You can configure an unlimited amount of regions within your application as well as broadcast between regions that share similar data.</p>
<div id="attachment_4947" style="width: 375px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/enable-foex-live-region.png" rel="lightbox[4932]"><img class="wp-image-4947 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/enable-foex-live-region.png" alt="" width="365" height="211" srcset="https://blog.foex.at/wp-content/uploads/2020/02/enable-foex-live-region.png 365w, https://blog.foex.at/wp-content/uploads/2020/02/enable-foex-live-region-150x87.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/enable-foex-live-region-300x173.png 300w" sizes="(max-width: 365px) 100vw, 365px" /></a><p class="wp-caption-text">Simply check the option to enable!</p></div>
<p>&nbsp;</p>
<p>You have several states the live editing can be in i.e. Online, Paused, and Offline</p>
<p>&nbsp;</p>
<div id="attachment_4954" style="width: 640px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.status.states.png" rel="lightbox[4932]"><img class="wp-image-4954" src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.status.states-300x75.png" alt="" width="630" height="158" srcset="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.status.states-300x75.png 300w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.status.states-150x38.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.status.states-768x193.png 768w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.status.states.png 958w" sizes="(max-width: 630px) 100vw, 630px" /></a><p class="wp-caption-text">Online, Paused, and Offline states</p></div>
<p>&nbsp;</p>
<p>There are a number of predefined defaults which can be customized as per the following settings:</p>
<p>&nbsp;</p>
<div id="attachment_4956" style="width: 530px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.config.component.png" rel="lightbox[4932]"><img class="wp-image-4956 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.config.component.png" alt="" width="520" height="704" srcset="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.config.component.png 520w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.config.component-111x150.png 111w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.config.component-222x300.png 222w" sizes="(max-width: 520px) 100vw, 520px" /></a><p class="wp-caption-text">Websocket Region Settings</p></div>
<p>&nbsp;</p>
<p>You can enable row or cell level locking when users are editing grid records e.g.</p>
<p>&nbsp;</p>
<div id="attachment_4959" style="width: 555px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.row-lock.png" rel="lightbox[4932]"><img class="wp-image-4959 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.row-lock.png" alt="" width="545" height="247" srcset="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.row-lock.png 545w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.row-lock-150x68.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.row-lock-300x136.png 300w" sizes="(max-width: 545px) 100vw, 545px" /></a><p class="wp-caption-text">Row Level Locking</p></div>
<div id="attachment_4957" style="width: 555px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.cell-lock.png" rel="lightbox[4932]"><img class="wp-image-4957 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.cell-lock.png" alt="" width="545" height="247" srcset="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.cell-lock.png 545w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.cell-lock-150x68.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.grid_.cell-lock-300x136.png 300w" sizes="(max-width: 545px) 100vw, 545px" /></a><p class="wp-caption-text">Cell Level Locking</p></div>
<p>&nbsp;</p>
<p>You can even (optionally) see who also editing the grid and even see their recent change history and what they actually changed e.g.</p>
<p>&nbsp;</p>
<div id="attachment_4963" style="width: 318px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.indicator.menu_.png" rel="lightbox[4932]"><img class="wp-image-4963 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.indicator.menu_.png" alt="" width="308" height="214" srcset="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.indicator.menu_.png 308w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.indicator.menu_-150x104.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.indicator.menu_-300x208.png 300w" sizes="(max-width: 308px) 100vw, 308px" /></a><p class="wp-caption-text">Active Users</p></div>
<div id="attachment_4964" style="width: 644px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.user_.history-window.png" rel="lightbox[4932]"><img class="wp-image-4964 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.user_.history-window.png" alt="" width="634" height="436" srcset="https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.user_.history-window.png 634w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.user_.history-window-150x103.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/foex.live_.user_.history-window-300x206.png 300w" sizes="(max-width: 634px) 100vw, 634px" /></a><p class="wp-caption-text">User Change History</p></div>
<p>&nbsp;</p>
<h3>PLSQL API</h3>
<p>Additionally we provide a PLSQL API to allow you to send messages directly from the database via a REST call. You would want to do this in situations where the data is being changed in some batch processing code, or &#8220;Execute PLSQL Code&#8221; dynamic actions separate from the region&#8217;s CRUD requests &amp; refresh row actions. Simply provide a cursor of the changed records you want to broadcast and they will be sent to the websocket server which will message all users registered on the channel(s) you specify. Remember to make sure that your query columns match the same column aliases as your grid/tree/list SQL query columns. Here&#8217;s a basic example:</p>
<pre>DECLARE

  l_cursor SYS_REFCURSOR;
  l_oid    FX_T_DEMO_COMPANY.OID%TYPE;

BEGIN

  l_oid := v(&#039;P1_OID&#039;);

  OPEN l_cursor FOR
    SELECT OID
	 , COMPANY_NAME
	 , STREET_ADDRESS
	 , POSTAL_CODE
	 , CTY_OID
	 , PHONE_NO
	 , EMAIL
      FROM FX_T_DEMO_COMPANY
      WHERE OID = l_oid;

  fx_p_websocket_notify.data_notification
    ( p_static_ids =&gt; &#039;CELL_EDIT_GRID,ROW_EDIT_GRID&#039; -- you can update multiple regions
    , p_cursor	   =&gt; l_cursor
    , p_operation  =&gt; &#039;update&#039; -- create, update, delete
    );

END;
/
</pre>
<h3>Performance</h3>
<p>FOEX Live Editing has been designed with performance in mind. There is no additional overhead on the database by enabling this functionality. All data relayed over the websocket is done securely by the browsers after the data has returned from the server. For example: when an update is performed on a Grid, the changes are made in the database, the rows are re-queried and sent back to the browser, and then the browser sends this data to the websocket server to be broadcast to all other users listening on the region&#8217;s private channel. There are no AJAX calls back to the database to grab any data, even for checksums etc. as this is all provided in the response from the grid update. This applies to all CRUD operations on all region types, forms, grids, tree grids, and editable list views.</p>
<p>For the PLSQL API we use a REST call that allows the database to directly broadcast from one record up to thousands of records in a single call using a SYS_REFCURSOR type.</p>
<p>For the visualization of the changes within the regions, we only apply highlighting to the records the user is currently viewing. We do not apply any highlighting to records that are not in view and must be scrolled to. This maintains optimal browser performance since there&#8217;s no point showing any highlighting or animation of changes the user can&#8217;t see.</p>
<p>For the websocket server itself we went for a high performance lean implementation using the <a href="https://www.npmjs.com/package/ws" target="_blank" rel="noopener">npm ws package.</a> as opposed to using something heavier like <a href="https://socket.io/" target="_blank" rel="noopener">Socket.io</a>. This gives us greater control and flexibility for how we designed the registration &amp; communication system.</p>
<h3>Security</h3>
<p>You can use SSL mode for both the Websocket and REST endpoint or HTTP during development. We use token based encryption to secure connection to the web sockets and regions register what columns users are allowed to see to ensure that data or parts of data are not broadcast to users who should not see it. Note: the column list is encrypted to avoid any client side tampering.</p>
<p>The encrypted data uses the AES 256-bit algorithm with Cipher Block Chaining and PKCS #5 padding.</p>
<h3>In Summary</h3>
<p>For some businesses the difference between knowing something now vs in 1 minute from now can have a huge impact. It can save lives, it can give you a competitive advantage, it can make you more money. This is what you get with FOEX Live, seeing your data changes in realtime and being able to immediately respond and make decisions based on these changes.</p>
<hr />
<h2>Debounce &amp; Throttle Dynamic Actions</h2>
<p>In this release we are adding additional dynamic actions to provide some missing functionality in APEX, which is the ability to deal with actions that fire too frequently e.g. you probably don&#8217;t want your TRUE actions to fire until a keyup event (when the user is typing) until they have stopped typing for say 1 second. These new actions we are adding are Debounce &amp; Throttle.</p>
<h4><strong>What&#8217;s the difference between Debounce and Throttle?</strong></h4>
<p>Debouncing enforces that a function not be called again until a certain amount of time has passed without it being called. As in &#8220;execute this action only if 500 milliseconds have passed without it being called.&#8221;</p>
<p>Throttling enforces a maximum number of times a function can be called over time. As in &#8220;execute this action at most once every 500 milliseconds.&#8221;</p>
<p>The interesting thing about these actions is that they only apply to proceeding actions, so you can define actions before them that will fire every time the event fires, thus giving you much more flexibility. <strong>Note:</strong> the only requirement when using these actions is, you must set &#8220;Wait For Result&#8221; to &#8220;Yes&#8221;</p>
<div id="attachment_4971" style="width: 468px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/dynamic_action.debounce.actions.png" rel="lightbox[4932]"><img class="wp-image-4971 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/dynamic_action.debounce.actions.png" alt="" width="458" height="753" srcset="https://blog.foex.at/wp-content/uploads/2020/02/dynamic_action.debounce.actions.png 458w, https://blog.foex.at/wp-content/uploads/2020/02/dynamic_action.debounce.actions-91x150.png 91w, https://blog.foex.at/wp-content/uploads/2020/02/dynamic_action.debounce.actions-182x300.png 182w" sizes="(max-width: 458px) 100vw, 458px" /></a><p class="wp-caption-text">Debounce proceeding actions</p></div>
<hr />
<h2 class="subtitle">Inactivity Timeout</h2>
<p>We have introduced an improvement to both the Timer and Message Box plugins to allow developers to easily include an inactivity timeout warning. The Timer plugin has a new inactivity timer option which will be triggered when the user has not moved their mouse or pressed a key for X many seconds. Here&#8217;s a simple example where we will reload the page after detecting inactivity.</p>
<p><a href="https://blog.foex.at/wp-content/uploads/2020/02/foex.inactivity-demo-message.png" rel="lightbox[4932]"><img class="aligncenter wp-image-4949 size-full" src="https://blog.foex.at/wp-content/uploads/2020/02/foex.inactivity-demo-message.png" alt="" width="500" height="429" /></a></p>
<p>As you can see in the image we provide a progress indicator with a timeout message. The OK button is included to allow the user to prevent the default action from occurring e.g. page reload, session timeout etc. Since the &#8220;Message Box&#8221; allows you to define PLSQL you can use this setting in conjunction with the application Idle timeout to prevent the APEX session from timing out as well. Or you could use the &#8220;No/Cancel/Timeout&#8221; PLSQL to log the user out e.g.</p>
<pre>apex_authentication.logout(:SESSION, :APP_ID);

</pre>
<hr />
<h2 class="subtitle">APEX 19.2 Support</h2>
<div style="float: right;">
<div id="attachment_4974" style="width: 410px" class="wp-caption aligncenter"><a href="https://blog.foex.at/wp-content/uploads/2020/02/apex.192.png" rel="lightbox[4932]"><img class="wp-image-4974" src="https://blog.foex.at/wp-content/uploads/2020/02/apex.192-300x150.png" alt="" width="400" height="200" srcset="https://blog.foex.at/wp-content/uploads/2020/02/apex.192-300x150.png 300w, https://blog.foex.at/wp-content/uploads/2020/02/apex.192-150x75.png 150w, https://blog.foex.at/wp-content/uploads/2020/02/apex.192-768x384.png 768w, https://blog.foex.at/wp-content/uploads/2020/02/apex.192.png 1024w" sizes="(max-width: 400px) 100vw, 400px" /></a><p class="wp-caption-text">APEX 19.2 Support</p></div>
</div>
<p>With this release of FOEX we now support APEX 19.2. You will be able to take advantage of all the new features APEX provides e.g.</p>
<ul>
<li>Faceted Search</li>
<li>New Popup List of Values</li>
<li>REST Enabled Interactive Grid</li>
<li>New Dark Mode Theme Style</li>
<li>Team Development Improvements</li>
<li>Plus many other improvements</li>
</ul>
<hr />
<h2 class="subtitle">Other Improvements</h2>
<p>Thanks to the continued use of FOEX from a growing customer base we receive requests for enhancements and improvements. Whilst we can&#8217;t implement every request we receive (for different reasons) the following improvements have been introduced in this release:</p>
<ul>
<li>New expand/collapse rows functionality for tree/tree grids</li>
<li>Deselect capability in Single Grid Row Selection</li>
<li>Allow typing in the grid combo input</li>
<li>A new declarative option to &#8220;Save all Records&#8221; in the grid</li>
<li>New actions to suspend/resume auto save on grids, trees, and lists</li>
<li>Include changes made to grid rows in the POST Processing Procedure hook</li>
<li>Define namespaces for caching e.g. for multiple views of the same page</li>
<li>Auto Size content height in the grid row expander</li>
<li>Add list support to grid column search menu via the additional config setting:
<pre>&quot;filter&quot;:{&quot;type&quot;:&quot;list&quot;,&quot;single&quot;:false}</pre>
</li>
<li>Triggering Event option to locate rows by e.g. Refresh Rows Action</li>
<li>Tooltips added to Form navigation buttons without labels</li>
<li>Plus a number of other minor improvements and bug fixes</li>
</ul>
<p>You can find more details about the above enhancements in the release notes <a class="fdocs-navigation" href="https://trial.foex.at/i/foex/docs/FOEX%20Release%20Notes.pdf" target="_blank" rel="noopener">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/we-just-released-foex-4-2-heres-a-sneak-peek-on-whats-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AOP Introduction Training in Vienna</title>
		<link>https://blog.foex.at/aop-introduction-training-in-vienna/</link>
		<comments>https://blog.foex.at/aop-introduction-training-in-vienna/#respond</comments>
		<pubDate>Tue, 10 Sep 2019 07:46:49 +0000</pubDate>
		<dc:creator><![CDATA[Peter Raganitsch]]></dc:creator>
				<category><![CDATA[AOP]]></category>
		<category><![CDATA[APEX]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Printing]]></category>

		<guid isPermaLink="false">http://blog.tryfoexnow.com/?p=4917</guid>
		<description><![CDATA[FOEX invites you to a 4 hour APEX Office Print Introduction Training in Vienna / Austria. Please reserve your seat at the event page: https://www.foex.at/aop-training-20191108/ The training will take place...]]></description>
				<content:encoded><![CDATA[<p>FOEX invites you to a 4 hour APEX Office Print Introduction Training in Vienna / Austria.</p>
<p>Please reserve your seat at the event page: <a href="https://www.foex.at/aop-training-20191108/">https://www.foex.at/aop-training-20191108/</a></p>
<p>The training will take place on November 8th 2019 and seats are limited !</p>
<p>Join us on this day and learn how easy printing and reporting can be done with APEX and APEX Office Print.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.foex.at/aop-introduction-training-in-vienna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
