Tuesday, January 29, 2019

What is headless CMS-Why is so popular?


What is headless CMS- Why is so popular?
Traditional cms v/s headless cms

The “head” in “headless CMS” refers to the frontend. A headless content management system consists primarily of an API as well as the backend technology required to store and deliver content. The headless approach allows developers to provide content as a service, abbreviated as CaaS, which simply means that content storage and delivery are handled by separate software. A headless CMS can make the following tasks less of a headache:

  • Modelling, creating and authoring content
  • Organizing content repositories
  • Improving workflow and collaboration

The “head” of a traditional content management system (CMS) refers to its front-end components, such as the front-end framework and templating system. These tools deliver and display the content on the desired platform. So, just as chopping off Ned Stark’s head opened up a possibility of storylines on “Game of Thrones,” chopping of the head of a CMS opens up the possibilities for content delivery.

A headless CMS removes those front-end components. This leaves raw and unpublished content at a development team’s disposal. Since they are not tied down by one default front-end system to deliver that content, developers can build as many heads as they’d like to display content. With a little magic from an API, this content is delivered to a variety of platforms, from websites, to apps, to smart watches and more. A traditional CMS already has a front-end delivery layer built in. That means content is only displayed onto one platform.

Common features of a headless CMS
  • API functionality
  • Content model creation
  • Asset management
  • Multi-language publishing
  • Benefits of a headless CMS


As discussed the biggest benefit of a headless CMS — the fact that developers can build multiple heads to which content is delivered. It’s the main component that sets this type of content management solution apart from a traditional CMS. But that’s not the only feature that makes this software worth looking into.

Simple implementation

With a traditional CMS, you would need to reimplement the tool each time you wanted to upload content to a different platform. As a headless CMS does not include a frontend delivery system, there is no need to reimplement.

User-friendly

A traditional CMS is built upon a website and there is a lot of code and content required to make that happen. You only need a little code to get a headless CMS up and running, which makes it far easier to use than a traditional CMS.

​According to Forbes, “It’s also a lot quicker for business teams to create new functionality. For example, if a marketing department wishes to create a new series of product mini-sites, it can go straight into the CMS and start creating the content immediately.”

Quicker deployment

As previously mentioned, a beneficial feature of a headless CMS is the fact that it allows you to streamline various tasks. One of which is the fact that content creators and developers can work in tandem with a headless CMS. With this ability, you can get your content up and running quicker than you could with a traditional CMS, since a traditional CMS requires the system to be fully developed before content is created.

Reasons why headless CMS is popular

A headless CMS isn’t always the best choice, so you have to consider your circumstances carefully. We recommend using a headless CMS in the following cases:

  • Websites/web apps that use JavaScript frameworks such as React, Angular or VueJs
  • Native mobile apps
  • Any environment in which you need to publish content across multiple platforms all at once
  • When using a static site generator.


I hope these thoughts will help your team match the appropriate type of CMS to each project.



Wednesday, January 16, 2019

HTML5 Features You Should Try -2019


HTML 5 is the latest specification of the HTML language and represents a major break with previous markup practices. The purpose of the many profound compared to the language was to standardize the new ways in which developers were using it, as well as to encourage a single set of best practices with regarding to web development. The core feature of HTML 5 is semantic (meaningful) markup, which makes it more suitable for a web developer.
HTML5 is special because it makes the Internet better. It seeks to improve the way the web works and performs, making it easier for developers to create terrific sites and making it more efficient for users to experience those sites regardless of the browser or platform they are using. HTML5 promises to make the Internet more functional and interactive. It seeks to transform a World Wide Web of relatively flat, static pages into one filled with web applications — as compelling as desktop versions — running in browsers.
Put another way, HTML5 represents the progression of the core language that underlies the Internet. It is the common link that web browsers and web servers share as they work together to render pages and applications across platforms like desktop, laptop, tablet, or smartphone. For any web developer or designer, HTML5 tools prove to be a great help when it comes to step up their workflow and perform repetitive tasks. These tools are blessed with all the richness and power that help webmasters to augment the value of their work and improve the usability of their web designs.
HTML5 has been around for a while now, it introduces lots of new and exciting new JavaScript and HTML APIs for both mobile and desktop, so in this post you will discover some HTML5 features that will enhance your web apps and will save you a lot of time.
DNS Prefetching
DNS hostname resolution is one of the issues that can make any website slow. Modern browsers start to be very smart when it comes to DNS resolution, they try to resolve domain names then cache them before the user tries to follow any link on the webpage.
With the dns-prefetch feature you are allowed to manually control this operation by telling the browser which domain names to resolve :
  1. <link rel="dns-prefetch" href="//fonts.googleapis.com">

  2. <link rel="dns-prefetch" href="//google-analytics.com">

  3. <link rel="dns-prefetch" href="//www.google-analytics.com">

  4. <link rel="dns-prefetch" href="//platform.twitter.com">
Link Prefetching
Link prefetching allows developers to specify pages or assets they want to silently preload once the page load, like loading the first search results :
  1. <link rel="prefetch" href="http://arnasoftech.com/hire-dedicated-developers" />

  2. <link rel="prefetch" href="http://deker.me/assets/images/avatar.png" />
Also you can use the prerendering feature which will make your website even faster, the browser will fetch and render the entire next page on the background and show it only when the user click on the link :
  1. <link rel="prerender" href="http://arnasoftech.com/hire-dedicated-developers" />
Download Attribute
The HTML5 download attribute allows developers to force a file to download rather than go to that specific page, you no longer need to rely on server side code to do that :
  1. <a href="download_pdf.php?id=15" download="myfile.pdf">Download PDF</a>
Regular Expressions
I know you'll fall in love with this feature, no more js or a server side code to check if the user's input is a valid email or url adress, with the pattern attribute you can use regular expressions directly :
  1. <input type="email" pattern="[^ @]*@[^ @]*" value="">
Datalist Element
Datalist element is a litle big addition, no more use of jQuery plugins for autocomplete inputs combined with a server side code that hit the database on each user keystroke :
<form action="form.php" method="post">
<input list="cars" name="cars" >
<datalist id="cars">
   <option value="Volvo">
   <option value="BMW">
   <option value="Bugatti">
   <option value="Cadillac">
   <option value="Chevrolet">
   <option value="Chrysler">
</datalist>
<input type="submit" />
</form>
I hope this will help you save time and enhance you coding skills, let me know your thoughts in the comments below. Arna Softech is a premier web app development solutions company. Our focus always remains on how we can achieve the objectives laid out in the most well-organized and user friendly manner.

Sunday, December 16, 2018

Node.js for Web App Development




Node.js is an open source, cross-platform built on Chrome’s JavaScript runtime for fast and scalable server-side and networking applications. Being an interface to the V8 JavaScript runtime, it enables event-driven programming to the web servers through super-fast JavaScript interpreter that runs in the Chrome browser.

Node.js works on a non-blocking I/O model that makes it clean and usable, ideal for the data-intensive real-time applications that have to perform in varied environments. Beating the conventional pattern, Node.js has bought a revolution in the development circle and has become the sought after option for brands like Yahoo, eBay, Walmart etc.

Node.js empowers the organizations to create quick, robust network applications that can tackle parallel connections with increased throughput. It does not slow the working by any chance, but the developers need to be careful while writing the codes and the applications will get onto the right track.

Go With Data Streaming: This feature can be utilized to its fullest with Node.js to create some of the best attributes like processing files at the time of uploading time as this can reduce the overall processing duration when data comes in the form of streams. The same can also be deployed at the time of real-time video or audio recording.

The event-driven architecture caters to both the client-side and the server-side that are written in JavaScript and thus the synchronization process is fast and orderly. The event loop through web socket protocol which works on TCP handles the multi-user function and prevents the overhead of HTTP for web development.

Node.js has released it's version 10 and it's going under the codename “Dubnium”. It been over seven years since Node.js was released and it's their 7th major release.  Now let's jump into what's new in version 10, what's new features introduced and what they have deprecated in their new release! Releases in the Long Term Support line focus on Performance, security, stability, extended support and providing a reliable platform for applications of any scale.

Node.JS version 10 features and improvements

HTTP/2 is a higher performer than it's the previous version of HTTP. The implementation of HTTP/2 has landed in Node.js  v8.4.0(LTS) as an experimental feature. With Node v10 the HTTP 2 module has become a stable addition to the Node core for web applications and the web platform.

N-API is an API that allows developers to build native Add-ons. When JavaScript performance isn't enough for providing the performance boost to the codebase we used Node.JS Add-ons by providing an interface between JavaScript running in Node.js and C/C++ libraries. We can use that interface to build dynamically-linked shared objects in C++ that we can load into a Node.js application through a require() function.Add-ons is same as Node.js modules but offers a performance boost for computationally demanding applications when needed. 

Node.js V8 has been updated to it's version 6.6 in Node.js 10 with guaranteed forward ABI compatibility with V8 6.7. which comes with Chrome 66 and provides the reduction of around 20–40% in both parse and compilation time of JavaScript.Promise and async/await execution has improved significantly, resulting in Hapi v17 realizing a 30% increase in throughput. 

Node.js10 is the first release to include OpenSSL 1.x sets it up for an easy API and ABI stable upgrade after OpenSSL 1.1.1 released. Recent work by OpenSSL and the Core Infrastructure made it possible for Node.js 10 to really take advantage of OpenSSL including the ChaCha20 cipher and Polu1305 authenticator.

The problem is two module systems are not compatible so the Modules Team had to find a proper solution so JavaScript modules could be built on a platform to be used both in Node and in browsers. You could work this around using the module pattern, but it still wasn’t really convenient.

Node.js 10.0.0 has updated its NPM from v5.7 to v6.0. This major version increase in NPM provides an improvement in all areas including the focus on performance, security, and stability offering major performance boost compared to prior versions of NPM. 

New JavaScript language features introduced in node.js v10

1. Function.prototype.toString()

This method returns exact slices of source text which include whitespace and comments.

2. The function trimLeft() and trimRight() becomes aliases for the newly implemented String.prototype.trimStart() and String.prototype.trimEnd() to ensure backward compatibility

3. The catch clause of try statements no longer requires a parameter.

APIs deprecated in Node.js 10

1. Using require() to access several of Node.js own internal dependencies will emit a runtime deprecation.
2. Use of the tls.convertNPNProtocols() method will emit a runtime deprecation warning.
3. Previously deprecated legacy Async_hooks APIs have reached end-of-life and have been removed.4. Previously deprecated internal getters/setters on net.Server has reached end-of-life and has been removed.

Some advantages of using Node JS:
1.      Highly Scalable Server Side Soultion
2.      One language across the development stack.
3.      Best for real time apps like chat and games
4.      NodeJs is an open- source platform, so you can use it for free.
5.      It support multiple scripting language like Ruby, CoffeeScript, and TypeScript.
6.      Perfect for Microservices.

To summarize, Node.js is a cross-platform JavaScript runtime environment for servers and applications. It is built on a single-threaded, non-blocking event loop, the Google Chrome V8 JavaScript engine, and a low-level I/O API.

Thursday, November 29, 2018

Web Design-New Features of HTML5


This industry moves fast—really fast! If you're not careful, you'll be left in its dust. So, if you're feeling a bit overwhelmed with the coming changes/updates in HTML5, use this as a primer of the things you must know.
The variety of new HTML5 tags allows the developers to write their code quicker and make it more dynamic. Some old HTML5 features were renewed into new ones, some were removed at all, and others were freshly made to help people create their websites in an easier manner.

Arnasoftech is Global Software Development Solutions Company that has build expertise in Web & Mobile Solutions. We have expertise in building web applications, desktop applications, custom software development, enterprise portals, mobile applications, and digital solutions. I’ve made a huge list of new HTML5 tags for you to learn and start using.
New features of HTML5
1. Video and Audio
Video and audio are the new tags which allow to embed a video in the website. YouTube also declare video embed by giving the code to embed for their videos. It helps the web to be more involved with multimedia. A new tag is also available in HTML5 and that is audio tag. Which is used to embed any audion in the web?

Example of using Video tag

<video controls preload>
    <source src="cohagenPhoneCall.ogv" type="video/ogg; codecs='vorbis, theora'" />
    <source src="cohagenPhoneCall.mp4" type="video/mp4; 'codecs='avc1.42E01E, mp4a.40.2'" />
    <p> Your browser is old. <a href="cohagenPhoneCall.mp4">Download this video instead.</a> </p>
</video>

Example of using Audio tag

<audio autoplay="autoplay" controls="controls">
 <source src="file.ogg" />
    <source src="file.mp3" />
    <a>Download this file.</a>
</audio> 

2. nav

The nav element is used for the part of a internet site that links to different pages at the website. The hyperlinks can be organized a number of approaches. below, the hyperlinks are displayed inside paragraph factors. An unordered list can also be used.

<nav>
  <a href="/html/">HTML</a>
  <a href="/css/">CSS</a>
  <a href="/js/">JavaScript</a>
  <a href="/jquery/">jQuery</a>
</nav>

3. Header

The header element can be used to institution collectively introductory factors on a website, such as a business enterprise brand, navigation objects, and occasionally, a search form.
<header>
  <img src="company-logo.png">
  <nav>
    <p><a href="login.html">Log In</a></p>
    <p><a href="signup.html">Sign Up</a></p>
    <p><a href="contact.html">Contact Us</a></p>
  </nav>
</header>

4. Canvas

canvas is a tag of HTML which is newly introduced in HTML5. It is used to draw the images on the fly. It can be used for visual images, rendering graphs, game graphics.

Example of canvas

<canvas id="myCanvas"></canvas>
<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0, 0, 80, 80);
</script>
5. Footer
Footer is a tag, used to define the footer of a document or a section. Usually it contains the information about author and copyright etc. Address tag may be used to mark up the contact information in the footer.
A document or section can have more than one footer.   
<footer>
  <p>Posted by: Hege Refsnes</p>
  <p>Contact information: <a href="mailto:someone@example.com">
  someone@example.com</a>.</p>
</footer>
6. New types for input tags
input is an attribute which is an old attribute but in HTML, it is reintroduced with new values like email, month, number, range, search, tel, color, week, url, time, date, datetime-local etc.These are the new values which can be contain by the input tag.

·         ContentEditable
It is an attribute which is used to permit the user to edit the content. It creates What You See What You Get so easy. Content will be editable by clicking on it.
  
·         Progress
This tag is used to check the progress of a task during execution of that. Progress tag can used with the conjuction of JavaScript. It is like progress bar.

<progress value="22" max="100"></progress>

·         section
Section tag is used to divide a document or in parts or sections. For example: An article can have many sections like header, footer, latest news and section for main content etc.

·         main
main is a tag which is used to contain the main content of the page. More than one main tag is not accepted in the document and this tag can not be inside in article, aside, footer, header tags. It does not include the navigation bar, header and footer.

7. Email Inputs

If we apply a type of "email" to form inputs, we can instruct the browser to only allow strings that conform to a valid email address structure. That's right; built-in form validation will soon be here! We can't 100% rely on this just yet, for obvious reasons. In older browsers that do not understand this "email" type, they'll simply fall back to a regular textbox.
<!DOCTYPE html>
 
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>untitled</title>
</head>
<body>
    <form action="" method="get">
        <label for="email">Email:</label>
        <input id="email" name="email" type="email" />
 
        <button type="submit"> Submit Form </button>
    </form>
</body>
</html>

 8. Regular Expressions

How often have you found yourself writing some quickie regular expression to verify a particular textbox. Thanks to the new pattern attribute, we can insert a regular expression directly into our markup.

<form action="" method="post">
    <label for="username">Create a Username: </label>
    <input type="text"
       name="username"
       id="username"
       placeholder="4 <> 10"
       pattern="[A-Za-z]{4,10}"
       autofocus
       required>
    <button type="submit">Go </button>
</form>
 

If you're moderately familiar with regular expressions, you'll be aware that this pattern: [A-Za-z]{4,10}accepts only upper and lowercase letters. This string must also have a minimum of four characters, and a maximum of ten.

9. The Output Element

As you probably have guessed, the output element is used to display some sort of calculation. For example, if you'd like to display the coordinates of a mouse position, or the sum of a series of numbers, this data should be inserted into the output element.
As a simple example, let's insert the sum of two numbers into an empty output with JavaScript, when a submit button is pressed.
<form action="" method="get">
    <p> 
        10 + 5 = <output name="sum"></output> 
    </p>
    <button type="submit"> Calculate </button>
</form>
 
<script>
(function() {
    var f = document.forms[0];
     
    if ( typeof f['sum'] !== 'undefined' ) {
        f.addEventListener('submit', function(e) {
            f['sum'].value = 15;
            e.preventDefault();
        }, false);
    }
    else { alert('Your browser is not ready yet.'); }
})();
</script>

10. The Data Attribute
We now officially have support for custom attributes within all HTML elements. While, before, we could still get away with things like:
<h1 id=someId customAttribute=value> Thank you, Tony. </h1>

The validations would kick up a fuss! But now, as long as we preface our custom attribute with "data," we can officially use this method. If you've ever found yourself attaching important data to something like a class attribute, probably for JavaScript usage, this will come as a big help!
These are some of the new features which are introduced in the HTML5 version. There are many more features of HTML5 which are newly introduced. Features of HTML5 are supported by the latest versions of browsers. Thanks for reading! We've covered a lot, but have still only scratched the surface of what's possible with HTML5. I hope this served as a helpful primer!