<?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>node.js | Acorn IT</title>
	<atom:link href="https://acorn.ro/category/node/feed/" rel="self" type="application/rss+xml" />
	<link>https://acorn.ro</link>
	<description>Progress Development</description>
	<lastBuildDate>Wed, 25 Apr 2018 06:25:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.1</generator>

<image>
	<url>https://acorn.ro/wp-content/uploads/2017/11/cropped-zamolxis-logo-32x32.png</url>
	<title>node.js | Acorn IT</title>
	<link>https://acorn.ro</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>chatbots and openedge</title>
		<link>https://acorn.ro/chatbots-and-openedge/</link>
		
		<dc:creator><![CDATA[Marian Edu]]></dc:creator>
		<pubDate>Wed, 25 Apr 2018 06:25:11 +0000</pubDate>
				<category><![CDATA[akera.io]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Progress]]></category>
		<guid isPermaLink="false">http://acorn.ro/?p=734</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="cs-content" class="cs-content"></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Getting started with akera.io &#8211; Part two</title>
		<link>https://acorn.ro/getting-started-with-akera-io-part-two/</link>
		
		<dc:creator><![CDATA[Marian Edu]]></dc:creator>
		<pubDate>Mon, 28 Mar 2016 07:25:45 +0000</pubDate>
				<category><![CDATA[akera.io]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Progress]]></category>
		<category><![CDATA[application server]]></category>
		<category><![CDATA[business logic]]></category>
		<category><![CDATA[openedge]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[rest]]></category>
		<guid isPermaLink="false">http://acorn.ro/?p=471</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="x-section-1" class="x-section" style="margin: 0px 0px 0px 0px; padding: 25px 0px 25px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-4" style="padding: 35px 0px 0px 0px; " ><a  class="x-img x-img-link x-img-none"  href="http://akera.io"  target="_blank" rel="" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;popover&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;top&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;Visit akera.io to find out more...&quot;}"  data-options="thumbnail: 'https://acorn.ro/wp-content/uploads/2015/09/akera.io_.jpg'"><img decoding="async" src="https://acorn.ro/wp-content/uploads/2015/09/akera.io_.jpg" ></a></div><div  class="x-column x-sm x-3-4" style="padding: 0px 0px 0px 0px; " ><h2  class="h-custom-headline left-text  h3 accent" ><span>application server</span></h2></div></div><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><div id="" class="x-text justify-text" style="" ><p><a href="http://akera.io" target="_blank">akera.io</a>  server is a full blown application server for Progress OpenEdge specifically designed for web/mobile applications. </p>
<p>Because of the efficient non-blocking I/O provided by <a href="http://nodejs.org" target="_blank">node.js</a> together with the myriad of modules available in <a href="http://npmjs.com" target="_blank">npm</a> ecosystem writing an application server to easily expose business services (REST) for web/mobile applications in node.js makes a lot of sense. </p>
<p>The result is a modular and very lightweight solution that is both easy to start with and can also scale as needed.</p>
</div></div></div><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><div  class="x-accordion" ><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e7b38a" class="x-accordion-toggle" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e7b38a" aria-selected="true" aria-expanded="true" aria-controls="panel-66da247e7b38a"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Prerequisites</span></a></div><div id="panel-66da247e7b38a" class="x-accordion-body" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e7b38a" aria-hidden="false" aria-labelledby="tab-66da247e7b38a"><div class="x-accordion-inner">Being an application server for Progress OpenEdge, akera.io does require the <strong>Progress runtime (AVM)</strong> to be available &#8211; either part of the RDBMS product if ran on the same computer as the database server or &#8216;Client Networking&#8217; product if network connection is used.<br />
<hr  class="x-gap" style="margin: 1em 0 0 0;">
4GL Development product is not required as 4GL components are delivered in xcode format, the optional &#8216;Development Studio&#8217; component does require the option to compile code and therefore will have limited functionality without it.<hr  class="x-hr" >
akera.io is built on node.js therefore the first thing that need to be done is to <strong>install node.js</strong> on your system if not available already.<br />
<hr  class="x-gap" style="margin: 1em 0 0 0;">
Head over to the node.js <a href="https://nodejs.org/en/download/" target="_blank">download page</a> and select the installer for your platform.<br />
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">
Because of the Progress runtime dependency any platform supported by Progress can be used, for the rest the only option is to run it in a <a href="https://hub.docker.com/_/node/" target="_blank">Docker</a> environment (Linux). </div></div></div><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e7b42e" class="x-accordion-toggle collapsed" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e7b42e" aria-selected="false" aria-expanded="false" aria-controls="panel-66da247e7b42e"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Installation</span></a></div><div id="panel-66da247e7b42e" class="x-accordion-body x-collapsed" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e7b42e" aria-hidden="true" aria-labelledby="tab-66da247e7b42e"><div class="x-accordion-inner">After all prerequisites were installed we can proceed with the installation.<br />
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">Since the de-facto package manager for node.js is npm all akera.io components are built as packages &#8211; the public ones available directly on <a href="https://www.npmjs.com/search?q=akera" target="_blank">npmjs.com</a> while for the rest we have our own private <a href="http://repository.akera.io" target="_blank">repository</a>.<br />
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">// set the npm registry to our private repository</div>
<div style="background-color: #eeeeee; font-family: monospace;">$ npm set registry http://repository.akera.io</div>
<div style="background-color: #eeeeee; font-family: monospace;">// avoid installing dev dependencies</div>
<div style="background-color: #eeeeee; font-family: monospace;">$ npm config set production</div>
<div style="background-color: #eeeeee; font-family: monospace;">// install using global flag</div>
<div style="background-color: #eeeeee; font-family: monospace;">$ npm install -g akera-server</div>
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">
This would take some time &#8211; about 30 seconds (depending on the internet speed) and make sure the system have enough space left before starting the installation as it does require nothing less than 9 MB to be available (if need be, please be prepared to drop 2-3 of your favourite mp3 songs to make room for it).<br />
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">
Test the installation by running the control script in a terminal.</p>
<div style="background-color: #eeeeee; font-family: monospace;">$ akera-server help</div>
<div style="background-color: #eeeeee; font-family: monospace;">Akera application server version: 1.2.13</div>
<div style="background-color: #eeeeee; font-family: monospace;">Broker control script, usage:</div>
<div style="background-color: #eeeeee; font-family: monospace;">akera-server &lt;start|stop|status|trim|list&gt; [-h ]</div>
<div style="background-color: #eeeeee; font-family: monospace;">start &#8211; start all brokers set-up in home folder</div>
<div style="background-color: #eeeeee; font-family: monospace;">stop &#8211; stop all brokers set-up in home folder</div>
<div style="background-color: #eeeeee; font-family: monospace;">status &#8211; show status for all brokers set-up in home folder</div>
<div style="background-color: #eeeeee; font-family: monospace;">trim &#8211; trim agents of all brokers set-up in home folder</div>
<div style="background-color: #eeeeee; font-family: monospace;">list &#8211; list all brokers set-up in home folder</div>
<div style="background-color: #eeeeee; font-family: monospace;"></div>
<div style="background-color: #eeeeee; font-family: monospace;">akera-server &lt;start|stop|status|trim|new|config|delete&gt; [-h ] [-i]</div>
<div style="background-color: #eeeeee; font-family: monospace;">start &#8211; start the broker</div>
<div style="background-color: #eeeeee; font-family: monospace;">stop &#8211; stop the broker</div>
<div style="background-color: #eeeeee; font-family: monospace;">status &#8211; show status for the broker</div>
<div style="background-color: #eeeeee; font-family: monospace;">trim &#8211; trim agents for the broker</div>
<div style="background-color: #eeeeee; font-family: monospace;">new &#8211; create new configuration for the broker</div>
<div style="background-color: #eeeeee; font-family: monospace;">config &#8211; edit configuration for the broker</div>
<div style="background-color: #eeeeee; font-family: monospace;">delete &#8211; remove configuration for the broker</div>
<div style="background-color: #eeeeee; font-family: monospace;">-i interactive if set the process remains in foreground, only valid for start</div>
</div></div></div><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e7b4e0" class="x-accordion-toggle collapsed" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e7b4e0" aria-selected="false" aria-expanded="false" aria-controls="panel-66da247e7b4e0"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Configuration</span></a></div><div id="panel-66da247e7b4e0" class="x-accordion-body x-collapsed" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e7b4e0" aria-hidden="true" aria-labelledby="tab-66da247e7b4e0"><div class="x-accordion-inner">Now that you have everything installed you can set-up your first application server instance using the configuration option of the control script but first few things about akera.io configuration:</p>
<ul>
<li>there is no single &#8216;unified&#8217; broker configuration file, akera.io uses one configuration file per broker</li>
<li>configuration file uses a simple JSON format</li>
<li>is recommended to use a &#8216;configuration folder&#8217; to group them in one central place</li>
<li>unless specified otherwise the control script will use the user&#8217;s configuration folder as default &#8211; <i>$HOME/.akera</i></li>
</ul>
<hr  class="x-hr" >
The easiest way to create a new application server configuration file &#8211; <i>sports</i> &#8211; is to use the control script with the <i>new</i> command:<br />
<hr  class="x-gap" style="margin: 1em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">
<p>$ akera-server -h /opt/apps/akera new sports<br />
? Progress installation directory /usr/dlc<br />
? Port that the server will listen on 8900<br />
? Initial number of agents 5<br />
? Minimum number of agents 2<br />
? Maximum number of agents 10<br />
? Agent PROPATH (comma separated). /opt/apps/sports<br />
? Agent accessible path (PROPATH relative entries, comma separated) web,rest<br />
? Agent working folder /tmp<br />
? Agent session temporary folder /tmp<br />
? Agent start-up parameter file<br />
? Procedure to run at startup<br />
? Enable development studio (not in production). No<br />
? Expose database content as REST No<br />
? Expose WEBPATH file-system content as REST No<br />
? Keep persistent procedures between requests Yes<br />
? Messages language en<br />
? Log File akera-server.log<br />
? Maximum log file size(kb) 50000<br />
? Maximum log files 3<br />
? Log level info<br />
? Execution timeout 3000<br />
? Require SSL connection from clients No<br />
? Administrator password<br />
? Message packet size 64</p>
</div>
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">
Most of those are pretty much self explanatory and somehow familiar to those experienced with Progress Application Server.<br />
<hr  class="x-gap" style="margin: 0.313em 0 0 0;">The only one thing that might look odd is the &#8216;<i>accessible path</i>&#8216; &#8211; although it&#8217;s possible to run any business logic procedure available on PROPATH we think it&#8217;s safer to just limit client access to only those &#8216;services&#8217; that were meant to be exposed instead of just everything available in PROPATH. In this example we only allow execution of procedures from &#8216;<i>web</i>&#8216; and &#8216;<i>rest</i>&#8216; sub-folders &#8211; in any of the PROPATH entries.<br />
<hr  class="x-hr" >
Database connection(s) can be specified in the start-up parameter file (.pf) if so desired just we like more to have them set in a separate configuration section &#8211; the control script will ask for this at the end, you can add as many database connections as needed (shared memory or network connection).<hr  class="x-gap" style="margin: 0.313em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">? Databases New</div>
<div style="background-color: #eeeeee; font-family: monospace;">? Database logical name sports</div>
<div style="background-color: #eeeeee; font-family: monospace;">? Database physical name/path /opt/db/sports.db</div>
<div style="background-color: #eeeeee; font-family: monospace;">? Network connection No</div>
<div style="background-color: #eeeeee; font-family: monospace;">? Databases (Use arrow keys)</div>
<div style="background-color: #eeeeee; font-family: monospace;">❯ New</div>
<div style="background-color: #eeeeee; font-family: monospace;">Config</div>
<div style="background-color: #eeeeee; font-family: monospace;">Delete</div>
<div style="background-color: #eeeeee; font-family: monospace;">List</div>
<div style="background-color: #eeeeee; font-family: monospace;">Done</div>
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">
When you&#8217;re done adding all database connections select &#8216;Done&#8217; and you&#8217;ll be prompted to save the configuration.<br />
<hr  class="x-gap" style="margin: 0.313em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">? Databases Done</div>
<div style="background-color: #eeeeee; font-family: monospace;">? Save changes Yes</div>
<hr  class="x-gap" style="margin: 0.5em 0 0 0;">
To update the configuration later on you can either do that directly on the JSON file if you are a <i>vi</i> freak or start the control script with the &#8216;<i>config</i>&#8216; option and follow the same flow just with the current configuration values used as presets &#8211; if you don&#8217;t want to update a property just hit enter and previous value will be kept.<br />
<hr  class="x-gap" style="margin: 0.313em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">$ akera-server -h /opt/apps/akera config sports</div>
</div></div></div><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e7b595" class="x-accordion-toggle collapsed" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e7b595" aria-selected="false" aria-expanded="false" aria-controls="panel-66da247e7b595"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Starting</span></a></div><div id="panel-66da247e7b595" class="x-accordion-body x-collapsed" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e7b595" aria-hidden="true" aria-labelledby="tab-66da247e7b595"><div class="x-accordion-inner">Now you&#8217;ve passed the most boring part you can go ahead and start the application server instance you&#8217;ve just configured, again use the control script for that just with the <i>start</i> option (yeah we know, all too original).<br />
<hr  class="x-gap" style="margin: 0.313em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">akera-server -h /opt/apps/akera sports start</div>
<div style="background-color: #eeeeee; font-family: monospace;">info&gt; Starting broker: sports&#8230;</div>
<div style="background-color: #eeeeee; font-family: monospace;">warn&gt; Broker admin password not set.</div>
<div style="background-color: #eeeeee; font-family: monospace;">info&gt; AGT[9134] Agent started(34533) [201]</div>
<div style="background-color: #eeeeee; font-family: monospace;">info&gt; AGT[9135] Agent started(52577) [201]</div>
<div style="background-color: #eeeeee; font-family: monospace;">info&gt; AGT[9136] Agent started(35380) [201]</div>
<div style="background-color: #eeeeee; font-family: monospace;">info&gt; Broker listening on port 8900 [9125].</div>
<hr  class="x-gap" style="margin: 1.313em 0 0 0;">
There is also an &#8216;interactive&#8217; (-i) option for the start command, this will keep the process in the foreground and also display log messages on the console &#8211; can be used if you want to deploy it in a docker environment (more about this later on).<br />
<hr  class="x-gap" style="margin: 0.313em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">$ akera-server -h /opt/apps/akera sports start -i</div>
<div style="background-color: #eeeeee; font-family: monospace;">Starting broker: sports&#8230;</div>
<div style="background-color: #eeeeee; font-family: monospace;">Broker admin password not set.</div>
<div style="background-color: #eeeeee; font-family: monospace;">AGT[9115] Agent started(52355) [201]</div>
<div style="background-color: #eeeeee; font-family: monospace;">AGT[9116] Agent started(44206) [201]</div>
<div style="background-color: #eeeeee; font-family: monospace;">AGT[9117] Agent started(37419) [201]</div>
<div style="background-color: #eeeeee; font-family: monospace;">Broker listening on port 8900 [9106].</div>
<hr  class="x-gap" style="margin: 1.313em 0 0 0;">
This can be used for debug purposes &#8211; setting a different log level for the console can be done right after the &#8216;-i&#8217; switch.</p>
<hr  class="x-gap" style="margin: 0.313em 0 0 0;">
<div style="background-color: #eeeeee; font-family: monospace;">$ akera-server -h /opt/apps/akera sports start -i debug</div>
<div style="background-color: #eeeeee; font-family: monospace;">Starting broker: sports&#8230;</div>
<div style="background-color: #eeeeee; font-family: monospace;">Broker admin password not set.</div>
<div style="background-color: #eeeeee; font-family: monospace;">Create a non-secure server socket.</div>
<div style="background-color: #eeeeee; font-family: monospace;">Create a secure server socket.</div>
<div style="background-color: #eeeeee; font-family: monospace;">Secure server socket using PFX</div>
<div style="background-color: #eeeeee; font-family: monospace;">Admin server listening on port 56647.</div>
<div style="background-color: #eeeeee; font-family: monospace;">Starting agent.</div>
<div style="background-color: #eeeeee; font-family: monospace;">Create a non-secure server socket.</div>
<div style="background-color: #eeeeee; font-family: monospace;">Agent listening for Progress connection on [44560].</div>
<div style="background-color: #eeeeee; font-family: monospace;">AGT[9162] Progress agent running: 9162.</div>
<div style="background-color: #eeeeee; font-family: monospace;">AGT[9162] Progress agent connected.</div>
</div></div></div><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e7b60a" class="x-accordion-toggle collapsed" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e7b60a" aria-selected="false" aria-expanded="false" aria-controls="panel-66da247e7b60a"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Control</span></a></div><div id="panel-66da247e7b60a" class="x-accordion-body x-collapsed" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e7b60a" aria-hidden="true" aria-labelledby="tab-66da247e7b60a"><div class="x-accordion-inner">Once we have our application server instance up and running you might well need to check-out what is doing or bring it back to order if needed.<br />
<hr  class="x-hr" ><strong>status</strong></p>
<div style="background-color:#eeeeee; font-family: monospace;">$ akera-server -h /opt/apps/akera sports status<br />
Running for : 14:01:42<br />
Load        : 0%<br />
Free        : 5<br />
Busy        : 0<br />
Requests    : 8247<br />
Completed   : 8247<br />
Memory      : 78289408</div>
<hr  class="x-hr" ><strong>trim agents</strong></p>
<div style="background-color:#eeeeee; font-family: monospace;">$ akera-server -h /opt/apps/akera sports trim<br />
Trim agents for broker: sports&#8230;<br />
Trim agents successfully.</div>
<hr  class="x-hr" ><strong>shutdown</strong></p>
<div style="background-color:#eeeeee; font-family: monospace;">$ akera-server -h /opt/apps/akera sports stop<br />
Shutting down broker: sports&#8230;<br />
Broker shutdown successfully.</div>
</div></div></div></div></div></div></div><div id="x-section-2" class="x-section" style="margin: 0px 0px 0px 0px; padding: 45px 0px 45px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><div  class="x-entry-share" ><p>Share this Post</p><div class="x-share-options"><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on Facebook" onclick="window.open('http://www.facebook.com/sharer.php?u=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed&amp;t=Blog', 'popupFacebook', 'width=650, height=270, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-facebook-square" data-x-icon-b="&#xf082;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on X" onclick="window.open('https://twitter.com/intent/tweet?text=Blog&amp;url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed', 'popupTwitter', 'width=500, height=370, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-twitter-square" data-x-icon-b="&#xe61a;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on LinkedIn" onclick="window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed&amp;title=Blog&amp;summary=&amp;source=Acorn+IT', 'popupLinkedIn', 'width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-linkedin-square" data-x-icon-b="&#xf08c;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on Reddit" onclick="window.open('http://www.reddit.com/submit?url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed', 'popupReddit', 'width=875, height=450, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-reddit-square" data-x-icon-b="&#xf1a2;"></i></a><a href="mailto:?subject=Blog&amp;body=Hey, thought you might enjoy this! Check it out when you have a chance: https://acorn.ro/getting-started-with-akera-io-part-two/" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share email" title="Share via Email"><span><i class="x-icon-envelope-square" data-x-icon-s="&#xf199;"></i></span></a></div></div></div></div></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Getting started with akera.io &#8211; Part one</title>
		<link>https://acorn.ro/getting-started-akera-io-part-one/</link>
		
		<dc:creator><![CDATA[Marian Edu]]></dc:creator>
		<pubDate>Mon, 21 Mar 2016 08:22:41 +0000</pubDate>
				<category><![CDATA[akera.io]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Progress]]></category>
		<guid isPermaLink="false">http://acorn.ro/?p=449</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="x-section-3" class="x-section" style="margin: 0px 0px 0px 0px; padding: 0px 0px 5px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><div id="" class="x-text justify-text" style="" ><h2>akera.io &#038; docker</h2>
<p>This is the first part of the getting started series we are preparing for <a href="http://akera.io">akera.io</a> and since we love docker let&#8217;s start with a post on how you can easily have your Progress OpenEdge application nicely packed in containers.</p>
<p>Being very lightweight and modular all akera.io components are a great fit for Docker containers so, although optional, we do recommend running them in a Docker environment.</p>
</div><div  class="x-feature-box left-text top-text cf" style=" max-width: none;" data-x-element="feature_box" data-x-params="{&quot;child&quot;:false,&quot;graphicAnimation&quot;:&quot;pulse&quot;,&quot;graphicAnimationOffset&quot;:&quot;50&quot;,&quot;graphicAnimationDelay&quot;:&quot;0&quot;}"><div class="x-feature-box-graphic square "><div class="x-feature-box-graphic-outer square" style=" margin-right: 20px;"><div class="x-feature-box-graphic-inner square" style="font-size: 60px;"><img decoding="async" class="square" src="https://pbs.twimg.com/profile_images/378800000124779041/fbbb494a7eef5f9278c6967b6072ca3e_400x400.png" style="margin: 0 auto;"></div></div></div><div class="x-feature-box-content "><h4 class="x-feature-box-title">Docker</h4><p class="x-feature-box-text">An open platform for distributed applications for developers and sysadmins <a href="http://docker.com" title="..." target="_blank" rel="">...</a></p></div></div></div></div></div><div id="x-section-4" class="x-section" style="margin: 0px 0px 0px 0px; padding: 15px 0px 5px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><div  class="x-accordion" ><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e82701" class="x-accordion-toggle" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e82701" aria-selected="true" aria-expanded="true" aria-controls="panel-66da247e82701"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Prepare Installer Image</span></a></div><div id="panel-66da247e82701" class="x-accordion-body" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e82701" aria-hidden="false" aria-labelledby="tab-66da247e82701"><div class="x-accordion-inner">
<ul>
<li>Have the OpenEdge linux installation kit at hand.</li>
<li>Create a <em>Dockerfile</em> image description that will be used to build the ‘installer’ image and serve as base image for other OpenEdge images.</li>
<li>Start from a linux distribution of your choice &#8211; make sure it&#8217;s supported by Progress if you plan to use it in production.</li>
<li>Copy the installation kit to the image on build (<em>ADD will automatically unarchive the content for known archive types</em>).</li>
<li>Build the base image</li>
</ul>
<hr>
<h4>Dockerfile</h4>
<p><span style="color: #808080; font-family: monospace;"># Base image with OpenEdge 11.6 installer<br />
</p>
<p>FROM ubuntu:latest<br />
<br />
MAINTAINER Marian Edu &lt;marian.edu@acorn.ro&gt;<br />
LABEL version=&#8221;11.6&#8243;<br />
<br />
LABEL description=&#8221;Progress OpenEdge 11.6 installer image.&#8221;</p>
<p>RUN mkdir /proinst<br />
<br />
WORKDIR /proinst<br />
<br />
ADD PROGRESS_OE_11.6_LNX_64.tar.gz /proinst/</span></p>
<hr>
<h4>Build the image<br />
</h4>
<p><span style="color: #808080; font-family: monospace;">$ docker build &#8211;rm=true -t oe:11.6 .</span></div></div></div><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e82729" class="x-accordion-toggle collapsed" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e82729" aria-selected="false" aria-expanded="false" aria-controls="panel-66da247e82729"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Prepare OpenEdge Image(s)</span></a></div><div id="panel-66da247e82729" class="x-accordion-body x-collapsed" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e82729" aria-hidden="true" aria-labelledby="tab-66da247e82729"><div class="x-accordion-inner">
<p>
The same image description &#8211; <em>Dockerfile</em> &#8211; can be used to build OpenEdge images with different products/components installed. You always start from the installer image builded in the first step and use a unattended install response file appropriate for the environment you need to build.
</p>
<ul>
<li>Have the OpenEdge licenses file at hand.</li>
<li>Create a <em>Dockerfile</em> image description that will be used to build the OpenEdge image.</li>
<li>Start from the installer image.</li>
<li>Prepare a <em>response.ini</em> file for OpenEdge unattended installation &#8211; easiest is to do the installation manually and use the content saved in <em>$DLC/installresponse.ini</em> file.</li>
<li>Copy the <em>response.ini</em> and start the unattended installation.</li>
<li>Clean-up by removing the unnecessary installation files.</li>
<li>Build the image</li>
</ul>
<p>Since the image will have OpenEdge licensed products installed is probably not a good idea to share the image on <a href="https://hub.docker.com">Docker Hub</a>.</p>
<hr>
<h4>Dockerfile<br />
</h4>
<p><span style="color: #808080; font-family: monospace;"><br />
# OpenEdge 11.6 runtime image<br />
<br />
FROM oe:11.6<br />
<br />
MAINTAINER Marian Edu &lt;marian.edu@acorn.ro&gt;<br />
<br />
LABEL version=&#8221;11.6&#8243;<br />
<br />
LABEL description=&#8221;Progress OpenEdge 11.6 runtime image.&#8221;<br />
<br />
#change the working folder for installation<br />
<br />
WORKDIR /tmp<br />
<br />
#copy the unattended installation file<br />
<br />
ADD response.ini /tmp/response.ini<br />
<br />
# set environment variable<br />
<br />
ENV TERM xterm<br />
<br />
# start unattended setup<br />
<br />
RUN /proinst/proinst -b /tmp/response.ini<br />
<br />
# remove installation files<br />
<br />
RUN rm -Rf /proinst<br />
</span></div></div></div><div  class="x-accordion-group" ><div class="x-accordion-heading"><a id="tab-66da247e82742" class="x-accordion-toggle collapsed" role="tab" data-x-toggle="collapse-b" data-x-toggleable="66da247e82742" aria-selected="false" aria-expanded="false" aria-controls="panel-66da247e82742"><i class='x-framework-icon x-shortcode-accordion-icon' data-x-icon-s='&#x2b;' aria-hidden=true></i><span>Prepare OpenEdge Runtime Image</span></a></div><div id="panel-66da247e82742" class="x-accordion-body x-collapsed" role="tabpanel" data-x-toggle-collapse="1" data-x-toggleable="66da247e82742" aria-hidden="true" aria-labelledby="tab-66da247e82742"><div class="x-accordion-inner">This is how a response.ini file looks like, to install the OpenEdge runtime required by akera.io Application Server just replace the license information and adjust installation path and localisation settings to better suits your needs. <br />You can start building the image using the <em>Dockerfile</em> from previous step together with this <em>response.ini</em> file &#8211; easiest have them both in the same folder or use a full path for response.ini file in image description.</p>
<hr>
<h4>response.ini</h4>
<p><span style="color: #808080; font-family: monospace;"><br />
; DESCRIPTION of Configuration Count</p>
[Configuration Count]
<br />
NumberofConfigurations=1</p>
[Product Configuration 1]
<br />name=Your Company Name<br />
<br />serial=123456789<br />
<br />version=11.6<br />
<br />control=XXXXX XXXXX XXXXX<br />
<br />prodname=Client Networking</p>
[Type and Destination]
<br />type=COMPLETE<br />
<br />path=/usr/dlc<br />
<br />workpath=/usr/wrk<br />
<br />oem_path=/usr/oemgmt<br />
oem_workpath=/usr/wrk_oemgmt</p>
[Language Default]
<br />
DefaultLanguage=English &#8211; International</p>
[Language Choice]
<br />lang1=English &#8211; International</p>
[International Settings]
<br />cpinternal=ISO8859-1<br />
<br />cpcollation=Basic<br />
<br />cpcase=Basic<br />
<br />dateformat=mdy<br />
<br />numsep=44<br />
<br />numdec=46<br />
</span></p>
<hr>
<h4>Build the image</h4>
<p><span style="color: #808080; font-family: monospace;">$ docker build &#8211;rm=true -t oe-runtime:11.6 .</span></div></div></div></div></div></div></div><div id="x-section-5" class="x-section" style="margin: 0px 0px 0px 0px; padding: 5px 0px 45px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><div  class="x-entry-share" ><p>Share this Post</p><div class="x-share-options"><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on Facebook" onclick="window.open('http://www.facebook.com/sharer.php?u=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed&amp;t=Blog', 'popupFacebook', 'width=650, height=270, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-facebook-square" data-x-icon-b="&#xf082;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on X" onclick="window.open('https://twitter.com/intent/tweet?text=Blog&amp;url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed', 'popupTwitter', 'width=500, height=370, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-twitter-square" data-x-icon-b="&#xe61a;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on LinkedIn" onclick="window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed&amp;title=Blog&amp;summary=&amp;source=Acorn+IT', 'popupLinkedIn', 'width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-linkedin-square" data-x-icon-b="&#xf08c;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on Pinterest" onclick="window.open('http://pinterest.com/pin/create/button/?url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed&amp;media=&amp;description=Blog', 'popupPinterest', 'width=750, height=265, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-pinterest-square" data-x-icon-b="&#xf0d3;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on Reddit" onclick="window.open('http://www.reddit.com/submit?url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed', 'popupReddit', 'width=875, height=450, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-reddit-square" data-x-icon-b="&#xf1a2;"></i></a><a href="mailto:?subject=Blog&amp;body=Hey, thought you might enjoy this! Check it out when you have a chance: https://acorn.ro/getting-started-akera-io-part-one/" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share email" title="Share via Email"><span><i class="x-icon-envelope-square" data-x-icon-s="&#xf199;"></i></span></a></div></div></div></div></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>akera.io, lightweight application server @ emeapugchallenge</title>
		<link>https://acorn.ro/akera-lightweight-application-server-emeapugchallenge/</link>
		
		<dc:creator><![CDATA[Marian Edu]]></dc:creator>
		<pubDate>Mon, 09 Nov 2015 13:06:45 +0000</pubDate>
				<category><![CDATA[node.js]]></category>
		<category><![CDATA[Progress]]></category>
		<category><![CDATA[PUG]]></category>
		<guid isPermaLink="false">http://acorn.ro/?p=373</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="x-section-6" class="x-section" style="margin: 0px 0px 0px 0px; padding: 5px 0px 5px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: -40px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-4" style="padding: 50px 0px 0px 0px; " ><a  class="x-img x-img-link x-img-none"  href="http://akera.io"  target="_blank" rel=""   data-options="thumbnail: 'https://acorn.ro/wp-content/uploads/2015/09/akera.io_.jpg'"><img decoding="async" src="https://acorn.ro/wp-content/uploads/2015/09/akera.io_.jpg" ></a></div><div  class="x-column x-sm x-3-4" style="padding: 0px 0px 0px 0px; " ><div id="" class="x-text" style="" ><h2><a href="http://akera.io" target="_blank">akera.io</a>, the lightweight application server</h2>
</div></div></div></div><div id="x-section-7" class="x-section" style="margin: 0px 0px 0px 0px; padding: 5px 0px 5px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: -40px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 50px 0px 0px 0px; " ><div id="" class="x-text" style="" ><p>for OpenEdge was officially launched at this year <a href="http://www.pugchallenge.eu" target="_blank">EMEA PUG Challenge</a> event in Copenhagen.</p>
<p>We want to thanks everyone that attended our session, was such a pleasant surprise to see the interest received (hope not everyone was there just to see how the &#8216;penthouse&#8217; looks like).</p>
<p>The session was about a much more lighter approach to the OpenEdge application server based on the <a href="http://nodejs.org" target="_blank">node.js</a> platform.</p>
<p>For those that were not attending the event or for whatever reasons missed our presentation the slides are now available for download.</p>
</div></div></div></div><div id="x-section-8" class="x-section" style="margin: 0px 0px 0px 0px; padding: 0px 0px 0 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><a  class="x-creative-cta slide-top" href="http://akera.io/download/akera.io-emeapug-2015.pdf" style="padding: 15px 25px 15px 25px; color: #ffffff; background-color: #ff2a13;" data-x-element="creative_cta" data-x-params="{&quot;animation&quot;:&quot; slide-top&quot;,&quot;bg_color&quot;:&quot;#ff2a13&quot;,&quot;bg_color_hover&quot;:&quot;#d80f0f&quot;}"><span class="text" style="font-size: 30px;">Click Here<br />To Download Slides!</span><span class="graphic"><i style="margin: 0; font-size: 52px;" class="x-icon-download" data-x-icon-s="&#xf019;"></i></span></a></div></div></div><div id="x-section-9" class="x-section" style="margin: 0px 0px 0px 0px; padding: 10px 0px 0px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><div  class="x-entry-share" ><p>Share this Post</p><div class="x-share-options"><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on Facebook" onclick="window.open('http://www.facebook.com/sharer.php?u=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed&amp;t=Blog', 'popupFacebook', 'width=650, height=270, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-facebook-square" data-x-icon-b="&#xf082;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on X" onclick="window.open('https://twitter.com/intent/tweet?text=Blog&amp;url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed', 'popupTwitter', 'width=500, height=370, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-twitter-square" data-x-icon-b="&#xe61a;"></i></a><a href="#share" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share" title="Share on LinkedIn" onclick="window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=https%3A%2F%2Facorn.ro%2Fcategory%2Fnode%2Ffeed&amp;title=Blog&amp;summary=&amp;source=Acorn+IT', 'popupLinkedIn', 'width=610, height=480, resizable=0, toolbar=0, menubar=0, status=0, location=0, scrollbars=0'); return false;"><i class="x-icon-linkedin-square" data-x-icon-b="&#xf08c;"></i></a><a href="mailto:?subject=Blog&amp;body=Hey, thought you might enjoy this! Check it out when you have a chance: https://acorn.ro/akera-lightweight-application-server-emeapugchallenge/" data-x-element="extra" data-x-params="{&quot;type&quot;:&quot;tooltip&quot;,&quot;trigger&quot;:&quot;hover&quot;,&quot;placement&quot;:&quot;bottom&quot;,&quot;title&quot;:&quot;&quot;,&quot;content&quot;:&quot;&quot;}" class="x-share email" title="Share via Email"><span><i class="x-icon-envelope-square" data-x-icon-s="&#xf199;"></i></span></a></div></div></div></div></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>LoopBack Discoverer</title>
		<link>https://acorn.ro/loopback-discoverer/</link>
		
		<dc:creator><![CDATA[Marian Edu]]></dc:creator>
		<pubDate>Sat, 24 Oct 2015 08:56:23 +0000</pubDate>
				<category><![CDATA[node.js]]></category>
		<category><![CDATA[discovery]]></category>
		<category><![CDATA[loopback]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[strongloop]]></category>
		<guid isPermaLink="false">http://acorn.ro/?p=370</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div id="x-section-10" class="x-section" style="margin: 0px 0px 0px 0px; padding: 30px 0px 25px 0px;  background-color: transparent;" ><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-3" style="padding: 0px 0px 0px 0px; opacity: 0; transform: translate(-25px, 0); transition-duration: 750ms;" data-x-element="column" data-x-params="{&quot;fade&quot;:true}" data-fade="true"><img decoding="async"  class="x-img x-img-none"  src="https://strongloop.com/wp-content/uploads/2015/09/Strongloop_logo_13-e1441897041530.png.pagespeed.ce.8MQSQsiZpY.png" ></div><div  class="x-column x-sm x-2-3" style="padding: 0px 0px 0px 0px; " ><div id="" class="x-text" style="" ><p>Since <a href="https://strongloop.com/node-js/arc/" target="_blank">Arc</a>, the StrongLoop&#8217;s nice looking model designer GUI seems to be very picky about the supported connectors had no other choice than to write a small command line discovery tool that can work with our new <a href="https://www.npmjs.com/package/loopback-connector-akera" target="_blank">LoopBack connector</a>. </p>
<p>The module is now available on <a href="https://www.npmjs.com/package/loopback-discovery" target="_blank">npmjs.org</a>.</p>
<p>Enjoy.</p>
</div></div></div><div id="" class="x-container max width" style="margin: 0px auto 0px auto; padding: 0px 0px 0px 0px; " ><div  class="x-column x-sm x-1-1" style="padding: 0px 0px 0px 0px; " ><pre  class="x-code" ><code>&gt;loopback-discovery -d sports</code></pre></div></div></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
