<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/tag/app-development">
  <channel>
    <title>App Development</title>
    <link>https://www.linuxjournal.com/tag/app-development</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>Integrating Web Applications with Apache</title>
  <link>https://www.linuxjournal.com/content/integrating-web-applications-apache</link>
  <description>  &lt;div data-history-node-id="1339469" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/computer-156951_640_1.png" width="501" height="600" alt="""" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/andy-carlson" lang="" about="https://www.linuxjournal.com/users/andy-carlson" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Andy Carlson&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
When you deploy a web application, how do end users access it?
Often web applications are set behind a gateway device through which
end users can access it. One of the popular products to act as
an application gateway on Linux is the Apache Web Server. Although it can
function as a normal web server, it also has the ability to connect through
it to other web servers.
&lt;/p&gt;
&lt;p&gt;
In this article, I discuss what it takes to
integrate a web application into Apache. This includes integrating the
HTTP protocol functionality, customizing content to render properly and
reusing pieces of configuration. Once you understand those basic bits of
functionality,
you'll have the tools you need to maximize your web applications'
usability. So, let's get started!
&lt;/p&gt;


&lt;h3&gt;
Crash Course in RegEx&lt;/h3&gt;

&lt;p&gt;
A mechanism that I use throughout this article that might need a brief
introduction is Regular Expressions (or regex). Regex is used to define
a text pattern to search for within a URL or to find and replace text
within content, such as HTML or JavaScript. The text processing command
&lt;code&gt;sed&lt;/code&gt; uses regex to do searches and substitutions.
&lt;/p&gt;

&lt;p&gt;
For each example
below there will be three parts: input, regex pattern and output.
The pattern will be applied to the input text and determine the value
of the output text.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Example 1:&lt;/em&gt;

&lt;/p&gt;&lt;pre&gt;
&lt;code&gt;
Input:
  Name: Frank Sinatra
  Genre: Jazz
  Name: 2Pac
  Genre: Rap
  Name: Reel Big Fish
  Genre: Ska

Regex pattern: "^Name: "

Output:
  Name: Frank Sinatra
  Name: 2Pac
  Name: Reel Big Fish
&lt;/code&gt;
&lt;/pre&gt;


&lt;p&gt;
This example searches the input text for text that matches
the pattern &lt;code&gt;"^Name: "&lt;/code&gt;. This pattern says, "Look for the text 'Name:
' at the beginning of each line." Since there are two lines that
begin with that text, only those two lines are returned. While
"^"
represents the beginning of a line, "$" represents the end of a line.
So if you were to apply the pattern "a$", two lines would be returned
(Frank Sinatra and Ska). Let's expand on that example and use
the input from Example 1 with a new pattern.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Example 2:&lt;/em&gt;

&lt;/p&gt;&lt;pre&gt;
&lt;code&gt;
Regex pattern: "^Name: [0-9]"

Output:
  Name: 2Pac
&lt;/code&gt;
&lt;/pre&gt;


&lt;p&gt;
As you can see, I've taken the original regex pattern and added
&lt;code&gt;[0-9]&lt;/code&gt;
to the end. This will search for a single character that can be any
number from 0 to 9, which is why "2Pac" was the only line
returned.
You also can specify a range with alphabetic characters
(&lt;code&gt;[a-z]&lt;/code&gt; or &lt;code&gt;[A-Z]&lt;/code&gt;).
&lt;/p&gt;

&lt;p&gt;
Along with pattern selection, you also can do
substitution with regex.
There are two formats for regex substitutions: s|pattern|replace|modifier
or s/pattern/replace/modifier. In Apache, I find it easier to use the
pipe-style substitution. Example 3 uses the same input
with a new pattern.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Example 3:&lt;/em&gt;

&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/integrating-web-applications-apache" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 22 Aug 2017 12:36:27 +0000</pubDate>
    <dc:creator>Andy Carlson</dc:creator>
    <guid isPermaLink="false">1339469 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Buddy Platform Limited's Parse on Buddy Service</title>
  <link>https://www.linuxjournal.com/content/buddy-platform-limiteds-parse-buddy-service</link>
  <description>  &lt;div data-history-node-id="1339267" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/12120f7.jpg" width="500" height="204" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
With Facebook's Parse mobile back end as a service shutting down, developers are in a bind. The vise is squeezing tighter since the
open-source Parse Server product released by Facebook, asserts &lt;a href="http://buddy.com"&gt;Buddy
Platform Limited&lt;/a&gt;, was not designed to support high volume, commercial-grade
apps from organizations seeking the breadth of the original platform. 
&lt;/p&gt;

&lt;p&gt;
To
solve this issue and facilitate an easy migration path to a robust
alternative, Buddy launched an enterprise-grade Parse service offering
called Parse on Buddy. Parse on Buddy's developer says that its solution
is closest to the original Parse service, including many features not part
of the Parse Server codebase released to the Open Source community (for
example,
cloud code, multiple apps per account support, PPNS, file storage and
more). 
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12120f7.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
Parse on Buddy was designed to be as familiar to developers as
possible, right down to using the same pricing model. It also features an
easy three-step migration process for apps still on the original Parse
service that requires only a small change to a mobile app's codebase and no
remapping of APIs or other new code.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/buddy-platform-limiteds-parse-buddy-service" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 27 Jan 2017 17:53:02 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339267 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>VMware's Clarity Design System</title>
  <link>https://www.linuxjournal.com/content/vmwares-clarity-design-system</link>
  <description>  &lt;div data-history-node-id="1339264" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/12120f4.png" width="800" height="313" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
By combining user experience (UX) guidelines and patterns with the front-end
code in one solution, &lt;a href="http://vmware.github.io/clarity"&gt;VMware's Clarity Design System&lt;/a&gt; represents a new
concept in the design systems space. Clarity Design System is VMware's
open-source project—"designed by designers and built by
developers"—that unites UX, HTML/CSS and Angular for creating cohesive
experiences for any application. 
&lt;/p&gt;

&lt;p&gt;
VMware began building Clarity based on
readily apparent needs for an internal design system that unified
VMware's portfolio of products and accelerated product development
through reusable components. Building alongside product teams, the Clarity
team was able to tackle the complexities of enterprise use cases while
striving for simplicity familiar to consumer applications. Now dozens of
VMware product teams have adopted Clarity internally in their work.
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12120f4.png" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/vmwares-clarity-design-system" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Fri, 20 Jan 2017 17:56:05 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339264 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Non-Linux FOSS: Chrome, for One</title>
  <link>https://www.linuxjournal.com/content/non-linux-foss-chrome-one</link>
  <description>  &lt;div data-history-node-id="1339150" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/12015fossf1.jpg" width="600" height="376" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/shawn-powers" lang="" about="https://www.linuxjournal.com/users/shawn-powers" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Shawn Powers&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
When I use OS X, I really like the Fluid app for making standalone Web
applications. The problem is, Fluid isn't free unless you want the basic
version. I don't mind paying for an application (and I did pay for Fluid),
but it seems like something as simple as a single site browser shouldn't
be something that costs money.
&lt;/p&gt;

&lt;p&gt;
Thankfully, the folks at Epichrome feel the same way. They've created an
&lt;a href="https://github.com/dmarmor/epichrome"&gt;open-source project at GitHub&lt;/a&gt; that allows
you to create standalone OS X applications that use Chrome in order to
provide a single site browser.
&lt;/p&gt;
&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12015fossf1.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
You can customize the way the app looks, give it a custom app icon and
even register it as a browser on the system, so you can have it open when
clicking on a specific Web site from inside your Web browser. I personally
use it for my BirdCam, but it's a great way to turn any Web site into an
"app" that you can launch from your dock.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/non-linux-foss-chrome-one" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 07 Sep 2016 15:20:20 +0000</pubDate>
    <dc:creator>Shawn Powers</dc:creator>
    <guid isPermaLink="false">1339150 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Rogue Wave Software's Zend Server</title>
  <link>https://www.linuxjournal.com/content/rogue-wave-softwares-zend-server</link>
  <description>  &lt;div data-history-node-id="1339112" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/12036f4.jpg" width="480" height="264" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12036f4.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
The CTO at Rogue Wave Software, Zeev Suraski, says he's never seen anything
like PHP 7 in the software space—namely the halving of hardware needs after a
mostly painless software upgrade. Organizations salivating to leverage this
massive performance gain would be wise to investigate Zend Server 9, an
application server that builds on the benefits of PHP 7, both on-premises and
in the cloud. 
&lt;/p&gt;

&lt;p&gt;
This new version of Zend Server also offers code tracing and
black box recording, making it an effortless process to perform root-cause
analysis. Another key feature is Z-Ray, a developer toolkit that accelerates
developer productivity by displaying all of the under-the-hood details of a
page request across all the PHP scripts involved in building a page. Finally,
with Zend Server 9, Rogue Wave introduces Zend Server Professional Plus and Zend
Server Enterprise Plus editions that offer customers expert support for the
open-source stack underlying the Zend Server-hosted PHP application.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/rogue-wave-softwares-zend-server" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 14 Jul 2016 18:13:11 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339112 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>LiveCode Ltd.'s LiveCode</title>
  <link>https://www.linuxjournal.com/content/livecode-ltds-livecode</link>
  <description>  &lt;div data-history-node-id="1339106" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/12036f3.jpg" width="400" height="418" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12036f3.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
"Everyone Can Code" is the vision that its maker has for &lt;a href="http://livecode.com"&gt;LiveCode&lt;/a&gt;, a
highly productive coding environment for Linux, Android, iOS, Mac, Windows and
Server platforms. LiveCode Ltd. spent three years and weathered a $750,000
Kickstarter to enable a LiveCode rewrite from the ground up. The result is
LiveCode 8, which adds a new plug-in architecture that allows users to
drag/drop widgets containing sophisticated functionality. Widgets can be built
within the LiveCode platform and used to wrap functionality in external
libraries or each of the operating systems LiveCode supports. 
&lt;/p&gt;

&lt;p&gt;
The new features
in LiveCode 8 are intended to empower a new audience of app makers. Some of
these include nine pre-made widgets, 46 new extensions, the all new LiveCode
Builder language, a 3.5x performance boost, Script Only stacks for better
version control and working in teams, LiveCode for HTML5 and a new Feature
Exchange for community funding of new features, among others.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/livecode-ltds-livecode" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 07 Jul 2016 17:55:00 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339106 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Dynamsoft's Barcode Reader SDK</title>
  <link>https://www.linuxjournal.com/content/dynamsofts-barcode-reader-sdk</link>
  <description>  &lt;div data-history-node-id="1339082" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/12028f3.jpg" width="496" height="103" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/james-gray" lang="" about="https://www.linuxjournal.com/users/james-gray" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;James Gray&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1000009/12028f3.jpg" alt="" title="" class="imagecache-large-550px-centered" /&gt;&lt;p&gt;
What's slick about &lt;a href="http://dynamsoft.com"&gt;&lt;/a&gt;Dynamsoft's Barcode Reader SDK is that just a few
lines of code from scratch are required instead of potentially hundreds of
them, which could save months of development time. The updated Barcode
Reader SDK 4.2, which adds Linux PHP support, allows application developers
to embed functionality for decoding linear and 2D barcodes
into Web or desktop applications almost instantly, significantly reducing
development costs and costs of long-term application support. 
&lt;/p&gt;

&lt;p&gt;
Barcode recognition is
enabled from image files, scanned images and from images captured on
Webcams or smartphones. The new PHP barcode reader toolkit for Linux
supports PHP x64 versions 5.3–5.6. Both Thread Safe and Non Thread Safe
options are provided. The Dynamsoft toolkit works with Debian,
Ubuntu and CentOS. Support for Web applications in ASP.NET, in C# or
VB.NET, and PHP on Windows also is included, just in case.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/dynamsofts-barcode-reader-sdk" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 09 Jun 2016 01:35:14 +0000</pubDate>
    <dc:creator>James Gray</dc:creator>
    <guid isPermaLink="false">1339082 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
