New Apps

Articles

Tips

Events

Improve Soft Skills

HTML



These tips are based upon common knowledge and experimentation.
An optimized web page not only provides for a more responsive site for your visitors, but also reduces the load on your web servers and Internet connection. This can be crucial for high volume sites or sites which have a spike in traffic due to unusual circumstances such as breaking news stories.
Optimizing page load performance is not just for content which will be viewed by narrow band dial-up or mobile device visitors. It is just as important for broadband content and can lead to dramatic improvements even for your visitors with the fastest connections.

EDIT

Reduce page weight

Page weight is by far the most important factor in page-load performance.
Reducing page weight through the elimination of unnecessary whitespace and comments, commonly known as minimization, and by moving inline script and CSS into external files, can improve download performance with minimal need for other changes in the page structure.
Tools such as HTML Tidy can automatically strip leading whitespace and extra blank lines from valid HTML source. Other tools can "compress" JavaScript by reformatting the source or by obfuscating the source and replacing long identifiers with shorter versions.

Minimize the number of files

Reducing the number of files referenced in a web page lowers the number of HTTP connections required to download a page.
Depending on a browser's cache settings, it may send an If-Modified-Since request to the web server for each CSS, JavaScript or image file, asking whether the file has been modified since the last time it was downloaded.
By reducing the number of files that are referenced within a web page, you reduce the time required for these requests to be sent, and for their responses to be received.
If you use background images a lot in your CSS, you can reduce the amount of HTTP lookups needed by combining the images into one, known as an image sprite. Then you just apply the same image each time you need it for a background, and adjust the x/y coordinates appropriately. This technique works best with elements that will have limited dimensions, and will not work for every use of a background image. However, the fewer HTTP requests and single image caching can help reduce pageload time.
Too much time spent querying the last modified time of referenced files can delay the initial display of a web page, since the browser must check the modification time for each CSS or JavaScript file, before rendering the page.

Reduce domain lookups

Since each separate domain costs time in a DNS lookup, the page load time will grow along with the number of separate domains appearing in CSS link(s) and JavaScript and image src(es).
This may not always be practical; however, you should always take care to use only the minimum necessary number of different domains in your pages.

Cache reused content

Make sure that any content that can be cached, is cached, and with appropriate expiration times.
In particular, pay attention to the Last-Modified header. It allows for efficient page caching; by means of this header, information is conveyed to the user agent about the file it wants to load, such as when it was last modified. Most web servers automatically append the Last-Modified header to static pages (e.g. .html, .css), based on the last-modified date stored in the file system. With dynamic pages (e.g. .php, .aspx), this, of course, can't be done, and the header is not sent.
So, in particular for pages which are generated dynamically, a little research on this subject is beneficial. It can be somewhat involved, but it will save a lot in page requests on pages which would normally not be cacheable.
More information:
  1. HTTP Conditional Get for RSS Hackers
  2. HTTP 304: Not Modified
  3. HTTP ETag on Wikipedia
  4. Caching in HTTP
  5. Learn HTML

Optimally order the components of the page

Download page content first, along with any CSS or JavaScript that may be required for its initial display, so that the user gets the quickest apparent response during the page loading. This content is typically text, and can therefore benefit from text compression in transit, thus providing an even quicker response to the user.
Any dynamic features that require the page to complete loading before being used, should be initially disabled, and then only enabled after the page has loaded. This will cause the JavaScript to be loaded after the page contents, which will improve the overall appearance of the page load.

Reduce the number of inline scripts

Inline scripts can be expensive for page loading, since the parser must assume that an inline script could modify the page structure while parsing is in progress. Reducing the use of inline scripts in general, and reducing the use of document.write() to output content in particular, can improve overall page loading. Use modern AJAX methods to manipulate page content for modern browsers, rather than the older approaches based ondocument.write().

Use modern CSS and valid markup

Use of modern CSS reduces the amount of markup, can reduce the need for (spacer) images, in terms of layout, and can very often replace images of stylized text -- that "cost" much more than the equivalent text-and-CSS.
Using valid markup has other advantages. First, browsers will have no need to perform error-correction when parsing the HTML (this is aside from the philosophical issue of whether to allow format variation in user input, and then programmatically "correct" or normalize it; or whether, instead, to enforce a strict, no-tolerance input format).
Moreover, valid markup allows for the free use of other tools which can pre-process your web pages. For example, HTML Tidy can remove whitespace and optional ending tags; however, it will refuse to run on a page with serious markup errors.

Chunk your content

Tables for layouts are a legacy method that should not be used any more. Layouts utilizing <div> blocks, and in the near future, CSS3 Multi-column Layout or CSS3 Flexible Box Layout, should be used instead.
Tables are still considered valid markup, but should be used for displaying tabular data. To help the browser render your page quicker, you should avoid nesting your tables.
Rather than deeply nesting tables as in:
<TABLE>
  <TABLE>
    <TABLE>
          ...
    </TABLE>
  </TABLE>
</TABLE>
use non-nested tables or divs as in
<TABLE>...</TABLE>
<TABLE>...</TABLE>
<TABLE>...</TABLE>

Minify and compress SVG assets

SVG produced by most drawing applications often contains unnecessary metadata which can be removed. Configure your servers apply gzip compression for SVG assets.

Specify sizes for images and tables

If the browser can immediately determine the height and/or width of your images and tables, it will be able to display a web page without having to reflow the content. This not only speeds the display of the page but prevents annoying changes in a page's layout when the page completes loading. For this reason, height and width should be specified for images, whenever possible.
Tables should use the CSS selector:property combination:
table-layout: fixed;
and should specify widths of columns using the COL and COLGROUP HTML tags.

Choose your user-agent requirements wisely

To achieve the greatest improvements in page design, make sure that reasonable user-agent requirements are specified for projects. Do not require your content to appear pixel-perfect in all browsers, especially not in down-version browsers.
Ideally, your basic minimum requirements should be based on the consideration of modern browsers that support the relevant standards. This can include recent versions of Firefox, Internet Explorer, Google Chrome, Opera, and Safari.
Note, however, that many of the tips listed in this article are common-sense techniques which apply to any user agent, and can be applied to any web page, regardless of browser-support requirements.

References :




If you’ve decided to become a full stack web developer you’ve made a wise choice! Knowing both back-end and front-end technologies can give you a leg up in the tech industry and perhaps even land you land you a six-figure salary.

We often get questions from prospective students about what technologies to focus on. Now, before you make the jump into full stack web development, it’s valuable to have some understanding of the common programming languages and technology stacks, so that you can make an informed decision about how to build your base.

If you’re just beginning your path to a career in web development, here are recommendations for the best programming languages and technologies to learn right out of the gate.


Web Fundamentals: HTML, CSS, JavaScript


HTML and CSS (along with JavaScript) are the universal languages of front-end browsers, so it goes without saying that you should nail web development basics like HTML and CSS before diving into more difficult back-end technologies. A basic understanding of JavaScript should prove very useful as well.

Luckily, there are plenty of free web development resources and intro to code courses out there to help you get your feet wet in web development and general programming techniques.

As they begin writing code in JavaScript, novice programmers should also spend time getting familiar with algorithms and data structures at a basic level, since becoming familiar with these helps you break problems down into pieces that are more easily solved, across all technologies and languages. This is a real passion of mine, so be on the lookout for another blog post soon, dedicated to this topic.



Python


Python is an excellent introductory programming language for full-stack developers.

Although it is most popular as a back-end language, it is generally useful in other scenarios. As a general purpose programming language, you can use it to create almost any type of program or software.

Python code is inherently readable, because of an easy-to-learn syntax and an emphasis on good programming style and naming. As an instructor, I appreciate that it even enforces good indentation, which requires programmers to stay very clear on how they organize their loops, conditions and other program logic.

While it’s design is simple, Python is nonetheless incredibly flexible and powerful, which is why a whopping 80 percent of top computer science programs teach Python as an introductory language.



MEAN


MEAN is emerging as one of the industry’s most popular web technology stacks due to its powerful combination of JavaScript-based technologies:


  • MongoDB for the database
  • Express.js for the web framework
  • AngularJS for the frontend framework
  • Node.js for the server platform
  • A few years ago MEAN was just beginning to gain popularity. Now it’s in full swing usage by major tech companies such as Uber, Google, PayPal and Netflix.

So what makes MEAN so great?


MEAN has the promise of a single language, JavaScript, that all engineers can use, whether front-end or back-end. Node.js uses JavaScript as the server-side languages, rather than other scripting languages, which means  you can use MEAN to write the web application code, the database code and the client code.

Specifically, developers appreciate Node.js —and its mindboggling speed, which when paired with Socket.IO unlocks the possibility of some pretty cool interactive applications.

MongoDB is just one of many NoSQL databases available today that remove the restrictions of more structured databases. This allows you to save more data, and change the types of things that you save, much more flexibly.

Angular is a significant front-end framework that emphasizes real-time UI updates, in an single-page application model.

All told, MEAN has unrivaled support from industry leaders like Amazon, Microsoft and Google. Because it is open source, the savvy developer can tweak it to their preference.  



Ruby on Rails


Ruby on Rails is another full-stack framework, and is the technology stack of choice for Twitter, Basecamp and other notable sites.

Mastering Rails will greatly solidify your understanding of core web concepts, and is an extremely desirable skillset within the web development industry.

Rails is similar to – but more refined than – frameworks such as PHP’s CodeIgniter and MEAN’s Express. Rails has excellent built-in support for MVC and REST — with ActiveRecord — a superb relational database ORM.

Ruby (language) and Rails (framework) are stable and mature, with lots of online support. Plus, more so than with MEAN, the Rails subsystems work together seamlessly.

Ruby has a thriving third-party ecosystem of add-ins (gems). If Rails doesn’t do what you need, a gem likely fills the gap.

Additionally, Rails is well-known for enabling one to rapidly build web apps. If you are an entrepreneur or want to prototype your ideas quickly, Rails is the choice for you.



BONUS: Swift iOS


Knowing how to extend your product to the mobile interface is a handy and potentially lucrative tool to have as a full-stack developer.

But, as you might imagine, writing mobile applications is different than building web systems. Mobile devices are powerful rich clients, always with you and always connected. Services like audio/video, location, motion and power-management, and the requirement that it seamlessly pair with the same back-end system created for browsers, can make a mobile app more complex than a full-featured web system.

The compiled language, object-oriented OS and mobile device paradigm of Swift and iOS will make it easier for you to subsequently pick up Java/Android or C#/.NET.

The iOS developer ecosystem is controlled end-to-end by Apple, so documentation is generally accurate and mostly complete (although pieces are sometimes in the previous language, Objective-C).

It’s important to note that the Swift language is new and constantly changing. Apple continues to rapidly evolve both Swift and XCode (the accompanying development environment). As a result, the online support you may have experienced learning other technology stacks is largely absent – or worse, incorrect. Unless you are willing to spend time sorting through things on your own, you may find this frustrating.

However, undoubtedly iOS is very cutting-edge, challenging, and for those reasons, quite in-demand. With the Apple App Store and direct distribution, you can sell apps and extend your product to millions of people!



Learn Full-Stack Development


Rest assured, there’s not one single path to becoming a full stack web developer.


By learning one or more of these technologies you’ll have familiarity with each development layer, be up-to-speed on the most in-demand programming languages, and will be on your way to mastering full-stack development.







References :






HTML5 – Everyone has heard about it, more and more people are using it, but very few people actually know what it is. Those who have adopted it consider it nothing more than an extension of HTML4+, or worse, HTML4. However, HTML5 has potential that extends beyond being an upgrade to previous versions of this language.
While it’s certainly something entirely new, experts are of the opinion that HTML5 fulfills the vision of what this language was meant to be, what it was created for. Once you get the hang of it and understand its scope, the way you approach coding and web applications will change forever with HTML5.
Let’s illustrate this with an example. As you may know, HTML, or Hypertext Markup Link, is a standard programming language that is used to create web pages. Everything you see on a website – the content, font, color, graphic, and hyperlink - is decided by HTML.
Now, in the previous versions of HTML, you needed proprietary APIs and plugins to load certain content on the page. Remember how you couldn’t view flash content on your browser because you hadn’t installed a specific plugin? However, HTML5 does away with the annoying need for plugins, and, thanks to its common interface, the elements load easily and run by themselves.
Some of the new features of HTML5 are:
  • Detailed parsing rules
  • Enhanced flexibility
  • Offline editing
  • Messaging enhancements
  • MIME and protocol handler registration
  • Capability to drag and drop from one HTML5 document to another
With all this, it’s no wonder that HTML5 is becoming increasingly popular among coders, especially when you consider the several benefits associated with it.

1. Built-in Audio-Video Playback

Like we mentioned previously, in order to play audio-video files, webmasters had to depend on third-party plugins, like Quicktime, Silverlight, and Adobe Flash Player. The whole process was ridden with errors and users were required to constantly update the latest version of these plugins.
HTML5, on the other hand, simplified things by offering complete support for audio and video files. Take a look at this code, for example.
<video poster="movie.jpg" controls>
<source src=”movie.ogg" type="video/ogg">
<source src="movie.mp4" type="video/mp4">
Your browser does not support the <code>video</code> element.
</video>
As you can see, there are two files in the code – the .ogg format and .mp4 format - allowing browsers to choose a compatible file. No fuss, no error, no complication – just rich interactive experiences delivered uninterrupted and seamlessly.

2. Cleaner Code

Earlier, HTML coding was extremely messy. Making basic changes to a website was a nightmare as coders would have long pages of code to scroll through. HTML5 comes as a breath of fresh air. The code is clean and a lot easier to read. In addition, it’s also optimized for search engines. The easy readability promotes better understanding of the site’s content, which in turn, boosts your chances of getting higher rankings.

3. Organized Content

HTML5 provides new tags that allow you to organize content in a more relevant fashion. Some of the new syntaxes added include <header>, <footer>, <article>, <nav>, <aside>, <section>, <embed>, and <sidebar>. Apart from making the content more meaningful, it provides contextual information to search engines. This makes it a lot easier to index content and helps search engines display results that are more relevant to the user.

4. Cross Browser Compatibility & Offline Caching

Do you remember how a few years ago you’d have trouble loading a website on one browser while it worked perfectly fine on the other one?  HTML5 has managed to reduce these glitches and now, whether you use Chrome, Internet Explorer, Firefox, Opera, or Safari, the site works just fine.
Also, HTML5 facilitates offline caching. Regardless of whether you have an active internet connection or not, certain pages of the website will load, as long as the user has visited the page sometime in the past. Even if your net connection goes down, offline caching will still allow you to load the most important elements of a site.

5. Optimizes Content for Mobile

Gone are the days when you had trouble accessing websites on mobiles and smartphones. Sites built on HTML5 can be viewed and used intelligently across a wide range of devices. With the advent of responsive design, tablets, phablets, and smartphones are not problem kids anymore. They’ve been elevated to the status of first-class citizens, ever since HTML5 helped interconnect all kinds of devices.



References :


If you’ve worked in the world of the internet at any point in the past few years, there is a good chance you’ve heard of the hot new technology that is HTML5, and there is a similarly good chance that what you’ve heard is largely hype and buzzwords. While HTML5 does offer a great deal of flashy new technologies to the web toolbelt, there are subtle and more significant aspects which often go unnoticed. Before we get into that, though, let’s brush up on some HTML history.

Up until the early 1990s, the web was largely text based. There was little text formatting, no images, and no structure beyond what you could achieve in a plain text document. Then in the ’90s, HTML was adopted as a way to visually format and structure text within the web browser, which lead us into the era of table-based layouts.

For those of you who never had the fortune of building websites in the ’90s, table-based layouts were the equivalent of creating an entire website using an Excel spreadsheet. Tables were never meant for anything beyond displaying tabular data, but at the time they were the only HTML element that allowed us to create horizontal layouts. For example, sidebars and multi-column layouts were made possible thanks to HTML tables. It wasn’t until the early 2000s, when CSS was adopted, that we were able to move away from hacky, table-based layouts, and take on a more semantic approach to development.

The idea behind CSS (cascading style sheets) is that the structure of a web page and its design should be kept separate. This allows us to reuse more code, making our websites faster, and also swap out styles and designs quickly and efficiently. CSS also offered us more control over visual layout and formatting. Thanks to CSS we could create the multi-column layouts (and much, much more) we are used to today, and do it in a semantic way, meaning every HTML element had a role and it should only be used for that role (i.e. tables should be used for tabular data).

This shift to semantic web development allowed us to start defining what our webpages mean through proper use of HTML, which in turn allowed computers to make more sense of our content. This was only the beginning, however, and leads us directly to HTML5.

What is HTML5 ?


I get asked this question a lot, and it’s a hard question to answer. Technically HTML5 is a new language specification for HTML, but many other new technologies have been thrown under the HTML5 umbrella, which has turned HTML5 into a nebulous collection of technologies rather than any one thing in particular. For those of you who remember the Web 2.0 craze, HTML5 could be considered Web 3.0.

Some of the flashier technologies included under the HTML5 umbrella allow us to do things like manipulate the user’s webcam, render creepy 3D eyeballs, and create dynamic, 3D user interfaces. While these are all amazing and groundbreaking for the web, none of them are purely “HTML5”. They are HTML5 used in conjunction with other new technologies.


So what is HTML5 then ? 


The major contribution of HTML5, on its own, is that it allows us to further define the meaning of our content. In fact, HTML5 goes beyond meaning and allows us to define the intent of our content. Let me repeat that again, because this is the true importance of HTML5.


HTML5 allows us to define the INTENT of our content.


Not only can we define what an element on a page means (ie. this piece of content is a paragraph, or a heading, or a link to an external resource), but it allows us to define the purpose of our content. Computers don’t inherently know the difference between an “About Us” page and a blog post, or a blog post and a list of content related to said blog post. But, with HTML5, we can give computers hints.

For example:

1. The <article> element is used to specify content that is independent of the content around it, and is meant to be distributed by itself (think article or blog post).

2. The <aside> element is used to specify content that is tangentially related to the main content (think recent or related blog posts).

3. The <nav> element is used to specify a group of links that are used to navigate a site, as opposed to linking to resources that support the content.

If you’re still not convinced of HTML5’s importance, think of it this way: by defining what our content is, and what purpose it has, we allow search engines and possibly other, future technologies to make more sense of our content, which in turn improves content sharing, curation, and discovery in a huge, yet to be defined way. When combined with its umbrella technologies, HTML5 is the next leap in the evolution of the web and will fundamentally change how we communicate and interact with each other and our content.

Conclusion


So what’s the takeaway from all of this? The technologies associated with HTML5 are making the our content more dynamic and interactive, and are essentially improving the user experience of the web. The new HTML specification, on the other hand, is the scaffold. It provides more robust structure and organization. It is the means by which we classify the flora and the fauna of the web. New HTML elements may seem trivial, but the ability to better define our thoughts, content, and architecture improves our ability to connect and share content.


References :

Showing posts with label HTML. Show all posts
Showing posts with label HTML. Show all posts

Sunday, July 3, 2016

Tips for fast loading of HTML pages



These tips are based upon common knowledge and experimentation.
An optimized web page not only provides for a more responsive site for your visitors, but also reduces the load on your web servers and Internet connection. This can be crucial for high volume sites or sites which have a spike in traffic due to unusual circumstances such as breaking news stories.
Optimizing page load performance is not just for content which will be viewed by narrow band dial-up or mobile device visitors. It is just as important for broadband content and can lead to dramatic improvements even for your visitors with the fastest connections.

EDIT

Reduce page weight

Page weight is by far the most important factor in page-load performance.
Reducing page weight through the elimination of unnecessary whitespace and comments, commonly known as minimization, and by moving inline script and CSS into external files, can improve download performance with minimal need for other changes in the page structure.
Tools such as HTML Tidy can automatically strip leading whitespace and extra blank lines from valid HTML source. Other tools can "compress" JavaScript by reformatting the source or by obfuscating the source and replacing long identifiers with shorter versions.

Minimize the number of files

Reducing the number of files referenced in a web page lowers the number of HTTP connections required to download a page.
Depending on a browser's cache settings, it may send an If-Modified-Since request to the web server for each CSS, JavaScript or image file, asking whether the file has been modified since the last time it was downloaded.
By reducing the number of files that are referenced within a web page, you reduce the time required for these requests to be sent, and for their responses to be received.
If you use background images a lot in your CSS, you can reduce the amount of HTTP lookups needed by combining the images into one, known as an image sprite. Then you just apply the same image each time you need it for a background, and adjust the x/y coordinates appropriately. This technique works best with elements that will have limited dimensions, and will not work for every use of a background image. However, the fewer HTTP requests and single image caching can help reduce pageload time.
Too much time spent querying the last modified time of referenced files can delay the initial display of a web page, since the browser must check the modification time for each CSS or JavaScript file, before rendering the page.

Reduce domain lookups

Since each separate domain costs time in a DNS lookup, the page load time will grow along with the number of separate domains appearing in CSS link(s) and JavaScript and image src(es).
This may not always be practical; however, you should always take care to use only the minimum necessary number of different domains in your pages.

Cache reused content

Make sure that any content that can be cached, is cached, and with appropriate expiration times.
In particular, pay attention to the Last-Modified header. It allows for efficient page caching; by means of this header, information is conveyed to the user agent about the file it wants to load, such as when it was last modified. Most web servers automatically append the Last-Modified header to static pages (e.g. .html, .css), based on the last-modified date stored in the file system. With dynamic pages (e.g. .php, .aspx), this, of course, can't be done, and the header is not sent.
So, in particular for pages which are generated dynamically, a little research on this subject is beneficial. It can be somewhat involved, but it will save a lot in page requests on pages which would normally not be cacheable.
More information:
  1. HTTP Conditional Get for RSS Hackers
  2. HTTP 304: Not Modified
  3. HTTP ETag on Wikipedia
  4. Caching in HTTP
  5. Learn HTML

Optimally order the components of the page

Download page content first, along with any CSS or JavaScript that may be required for its initial display, so that the user gets the quickest apparent response during the page loading. This content is typically text, and can therefore benefit from text compression in transit, thus providing an even quicker response to the user.
Any dynamic features that require the page to complete loading before being used, should be initially disabled, and then only enabled after the page has loaded. This will cause the JavaScript to be loaded after the page contents, which will improve the overall appearance of the page load.

Reduce the number of inline scripts

Inline scripts can be expensive for page loading, since the parser must assume that an inline script could modify the page structure while parsing is in progress. Reducing the use of inline scripts in general, and reducing the use of document.write() to output content in particular, can improve overall page loading. Use modern AJAX methods to manipulate page content for modern browsers, rather than the older approaches based ondocument.write().

Use modern CSS and valid markup

Use of modern CSS reduces the amount of markup, can reduce the need for (spacer) images, in terms of layout, and can very often replace images of stylized text -- that "cost" much more than the equivalent text-and-CSS.
Using valid markup has other advantages. First, browsers will have no need to perform error-correction when parsing the HTML (this is aside from the philosophical issue of whether to allow format variation in user input, and then programmatically "correct" or normalize it; or whether, instead, to enforce a strict, no-tolerance input format).
Moreover, valid markup allows for the free use of other tools which can pre-process your web pages. For example, HTML Tidy can remove whitespace and optional ending tags; however, it will refuse to run on a page with serious markup errors.

Chunk your content

Tables for layouts are a legacy method that should not be used any more. Layouts utilizing <div> blocks, and in the near future, CSS3 Multi-column Layout or CSS3 Flexible Box Layout, should be used instead.
Tables are still considered valid markup, but should be used for displaying tabular data. To help the browser render your page quicker, you should avoid nesting your tables.
Rather than deeply nesting tables as in:
<TABLE>
  <TABLE>
    <TABLE>
          ...
    </TABLE>
  </TABLE>
</TABLE>
use non-nested tables or divs as in
<TABLE>...</TABLE>
<TABLE>...</TABLE>
<TABLE>...</TABLE>

Minify and compress SVG assets

SVG produced by most drawing applications often contains unnecessary metadata which can be removed. Configure your servers apply gzip compression for SVG assets.

Specify sizes for images and tables

If the browser can immediately determine the height and/or width of your images and tables, it will be able to display a web page without having to reflow the content. This not only speeds the display of the page but prevents annoying changes in a page's layout when the page completes loading. For this reason, height and width should be specified for images, whenever possible.
Tables should use the CSS selector:property combination:
table-layout: fixed;
and should specify widths of columns using the COL and COLGROUP HTML tags.

Choose your user-agent requirements wisely

To achieve the greatest improvements in page design, make sure that reasonable user-agent requirements are specified for projects. Do not require your content to appear pixel-perfect in all browsers, especially not in down-version browsers.
Ideally, your basic minimum requirements should be based on the consideration of modern browsers that support the relevant standards. This can include recent versions of Firefox, Internet Explorer, Google Chrome, Opera, and Safari.
Note, however, that many of the tips listed in this article are common-sense techniques which apply to any user agent, and can be applied to any web page, regardless of browser-support requirements.

References :

Sunday, May 1, 2016

Top Programming Languages for the Full Stack Web Developer




If you’ve decided to become a full stack web developer you’ve made a wise choice! Knowing both back-end and front-end technologies can give you a leg up in the tech industry and perhaps even land you land you a six-figure salary.

We often get questions from prospective students about what technologies to focus on. Now, before you make the jump into full stack web development, it’s valuable to have some understanding of the common programming languages and technology stacks, so that you can make an informed decision about how to build your base.

If you’re just beginning your path to a career in web development, here are recommendations for the best programming languages and technologies to learn right out of the gate.


Web Fundamentals: HTML, CSS, JavaScript


HTML and CSS (along with JavaScript) are the universal languages of front-end browsers, so it goes without saying that you should nail web development basics like HTML and CSS before diving into more difficult back-end technologies. A basic understanding of JavaScript should prove very useful as well.

Luckily, there are plenty of free web development resources and intro to code courses out there to help you get your feet wet in web development and general programming techniques.

As they begin writing code in JavaScript, novice programmers should also spend time getting familiar with algorithms and data structures at a basic level, since becoming familiar with these helps you break problems down into pieces that are more easily solved, across all technologies and languages. This is a real passion of mine, so be on the lookout for another blog post soon, dedicated to this topic.



Python


Python is an excellent introductory programming language for full-stack developers.

Although it is most popular as a back-end language, it is generally useful in other scenarios. As a general purpose programming language, you can use it to create almost any type of program or software.

Python code is inherently readable, because of an easy-to-learn syntax and an emphasis on good programming style and naming. As an instructor, I appreciate that it even enforces good indentation, which requires programmers to stay very clear on how they organize their loops, conditions and other program logic.

While it’s design is simple, Python is nonetheless incredibly flexible and powerful, which is why a whopping 80 percent of top computer science programs teach Python as an introductory language.



MEAN


MEAN is emerging as one of the industry’s most popular web technology stacks due to its powerful combination of JavaScript-based technologies:


  • MongoDB for the database
  • Express.js for the web framework
  • AngularJS for the frontend framework
  • Node.js for the server platform
  • A few years ago MEAN was just beginning to gain popularity. Now it’s in full swing usage by major tech companies such as Uber, Google, PayPal and Netflix.

So what makes MEAN so great?


MEAN has the promise of a single language, JavaScript, that all engineers can use, whether front-end or back-end. Node.js uses JavaScript as the server-side languages, rather than other scripting languages, which means  you can use MEAN to write the web application code, the database code and the client code.

Specifically, developers appreciate Node.js —and its mindboggling speed, which when paired with Socket.IO unlocks the possibility of some pretty cool interactive applications.

MongoDB is just one of many NoSQL databases available today that remove the restrictions of more structured databases. This allows you to save more data, and change the types of things that you save, much more flexibly.

Angular is a significant front-end framework that emphasizes real-time UI updates, in an single-page application model.

All told, MEAN has unrivaled support from industry leaders like Amazon, Microsoft and Google. Because it is open source, the savvy developer can tweak it to their preference.  



Ruby on Rails


Ruby on Rails is another full-stack framework, and is the technology stack of choice for Twitter, Basecamp and other notable sites.

Mastering Rails will greatly solidify your understanding of core web concepts, and is an extremely desirable skillset within the web development industry.

Rails is similar to – but more refined than – frameworks such as PHP’s CodeIgniter and MEAN’s Express. Rails has excellent built-in support for MVC and REST — with ActiveRecord — a superb relational database ORM.

Ruby (language) and Rails (framework) are stable and mature, with lots of online support. Plus, more so than with MEAN, the Rails subsystems work together seamlessly.

Ruby has a thriving third-party ecosystem of add-ins (gems). If Rails doesn’t do what you need, a gem likely fills the gap.

Additionally, Rails is well-known for enabling one to rapidly build web apps. If you are an entrepreneur or want to prototype your ideas quickly, Rails is the choice for you.



BONUS: Swift iOS


Knowing how to extend your product to the mobile interface is a handy and potentially lucrative tool to have as a full-stack developer.

But, as you might imagine, writing mobile applications is different than building web systems. Mobile devices are powerful rich clients, always with you and always connected. Services like audio/video, location, motion and power-management, and the requirement that it seamlessly pair with the same back-end system created for browsers, can make a mobile app more complex than a full-featured web system.

The compiled language, object-oriented OS and mobile device paradigm of Swift and iOS will make it easier for you to subsequently pick up Java/Android or C#/.NET.

The iOS developer ecosystem is controlled end-to-end by Apple, so documentation is generally accurate and mostly complete (although pieces are sometimes in the previous language, Objective-C).

It’s important to note that the Swift language is new and constantly changing. Apple continues to rapidly evolve both Swift and XCode (the accompanying development environment). As a result, the online support you may have experienced learning other technology stacks is largely absent – or worse, incorrect. Unless you are willing to spend time sorting through things on your own, you may find this frustrating.

However, undoubtedly iOS is very cutting-edge, challenging, and for those reasons, quite in-demand. With the Apple App Store and direct distribution, you can sell apps and extend your product to millions of people!



Learn Full-Stack Development


Rest assured, there’s not one single path to becoming a full stack web developer.


By learning one or more of these technologies you’ll have familiarity with each development layer, be up-to-speed on the most in-demand programming languages, and will be on your way to mastering full-stack development.







References :

Friday, April 22, 2016

5 Reasons Why HTML5 is the Future of Web Design






HTML5 – Everyone has heard about it, more and more people are using it, but very few people actually know what it is. Those who have adopted it consider it nothing more than an extension of HTML4+, or worse, HTML4. However, HTML5 has potential that extends beyond being an upgrade to previous versions of this language.
While it’s certainly something entirely new, experts are of the opinion that HTML5 fulfills the vision of what this language was meant to be, what it was created for. Once you get the hang of it and understand its scope, the way you approach coding and web applications will change forever with HTML5.
Let’s illustrate this with an example. As you may know, HTML, or Hypertext Markup Link, is a standard programming language that is used to create web pages. Everything you see on a website – the content, font, color, graphic, and hyperlink - is decided by HTML.
Now, in the previous versions of HTML, you needed proprietary APIs and plugins to load certain content on the page. Remember how you couldn’t view flash content on your browser because you hadn’t installed a specific plugin? However, HTML5 does away with the annoying need for plugins, and, thanks to its common interface, the elements load easily and run by themselves.
Some of the new features of HTML5 are:
  • Detailed parsing rules
  • Enhanced flexibility
  • Offline editing
  • Messaging enhancements
  • MIME and protocol handler registration
  • Capability to drag and drop from one HTML5 document to another
With all this, it’s no wonder that HTML5 is becoming increasingly popular among coders, especially when you consider the several benefits associated with it.

1. Built-in Audio-Video Playback

Like we mentioned previously, in order to play audio-video files, webmasters had to depend on third-party plugins, like Quicktime, Silverlight, and Adobe Flash Player. The whole process was ridden with errors and users were required to constantly update the latest version of these plugins.
HTML5, on the other hand, simplified things by offering complete support for audio and video files. Take a look at this code, for example.
<video poster="movie.jpg" controls>
<source src=”movie.ogg" type="video/ogg">
<source src="movie.mp4" type="video/mp4">
Your browser does not support the <code>video</code> element.
</video>
As you can see, there are two files in the code – the .ogg format and .mp4 format - allowing browsers to choose a compatible file. No fuss, no error, no complication – just rich interactive experiences delivered uninterrupted and seamlessly.

2. Cleaner Code

Earlier, HTML coding was extremely messy. Making basic changes to a website was a nightmare as coders would have long pages of code to scroll through. HTML5 comes as a breath of fresh air. The code is clean and a lot easier to read. In addition, it’s also optimized for search engines. The easy readability promotes better understanding of the site’s content, which in turn, boosts your chances of getting higher rankings.

3. Organized Content

HTML5 provides new tags that allow you to organize content in a more relevant fashion. Some of the new syntaxes added include <header>, <footer>, <article>, <nav>, <aside>, <section>, <embed>, and <sidebar>. Apart from making the content more meaningful, it provides contextual information to search engines. This makes it a lot easier to index content and helps search engines display results that are more relevant to the user.

4. Cross Browser Compatibility & Offline Caching

Do you remember how a few years ago you’d have trouble loading a website on one browser while it worked perfectly fine on the other one?  HTML5 has managed to reduce these glitches and now, whether you use Chrome, Internet Explorer, Firefox, Opera, or Safari, the site works just fine.
Also, HTML5 facilitates offline caching. Regardless of whether you have an active internet connection or not, certain pages of the website will load, as long as the user has visited the page sometime in the past. Even if your net connection goes down, offline caching will still allow you to load the most important elements of a site.

5. Optimizes Content for Mobile

Gone are the days when you had trouble accessing websites on mobiles and smartphones. Sites built on HTML5 can be viewed and used intelligently across a wide range of devices. With the advent of responsive design, tablets, phablets, and smartphones are not problem kids anymore. They’ve been elevated to the status of first-class citizens, ever since HTML5 helped interconnect all kinds of devices.



References :

Why HTML5 is really important ?


If you’ve worked in the world of the internet at any point in the past few years, there is a good chance you’ve heard of the hot new technology that is HTML5, and there is a similarly good chance that what you’ve heard is largely hype and buzzwords. While HTML5 does offer a great deal of flashy new technologies to the web toolbelt, there are subtle and more significant aspects which often go unnoticed. Before we get into that, though, let’s brush up on some HTML history.

Up until the early 1990s, the web was largely text based. There was little text formatting, no images, and no structure beyond what you could achieve in a plain text document. Then in the ’90s, HTML was adopted as a way to visually format and structure text within the web browser, which lead us into the era of table-based layouts.

For those of you who never had the fortune of building websites in the ’90s, table-based layouts were the equivalent of creating an entire website using an Excel spreadsheet. Tables were never meant for anything beyond displaying tabular data, but at the time they were the only HTML element that allowed us to create horizontal layouts. For example, sidebars and multi-column layouts were made possible thanks to HTML tables. It wasn’t until the early 2000s, when CSS was adopted, that we were able to move away from hacky, table-based layouts, and take on a more semantic approach to development.

The idea behind CSS (cascading style sheets) is that the structure of a web page and its design should be kept separate. This allows us to reuse more code, making our websites faster, and also swap out styles and designs quickly and efficiently. CSS also offered us more control over visual layout and formatting. Thanks to CSS we could create the multi-column layouts (and much, much more) we are used to today, and do it in a semantic way, meaning every HTML element had a role and it should only be used for that role (i.e. tables should be used for tabular data).

This shift to semantic web development allowed us to start defining what our webpages mean through proper use of HTML, which in turn allowed computers to make more sense of our content. This was only the beginning, however, and leads us directly to HTML5.

What is HTML5 ?


I get asked this question a lot, and it’s a hard question to answer. Technically HTML5 is a new language specification for HTML, but many other new technologies have been thrown under the HTML5 umbrella, which has turned HTML5 into a nebulous collection of technologies rather than any one thing in particular. For those of you who remember the Web 2.0 craze, HTML5 could be considered Web 3.0.

Some of the flashier technologies included under the HTML5 umbrella allow us to do things like manipulate the user’s webcam, render creepy 3D eyeballs, and create dynamic, 3D user interfaces. While these are all amazing and groundbreaking for the web, none of them are purely “HTML5”. They are HTML5 used in conjunction with other new technologies.


So what is HTML5 then ? 


The major contribution of HTML5, on its own, is that it allows us to further define the meaning of our content. In fact, HTML5 goes beyond meaning and allows us to define the intent of our content. Let me repeat that again, because this is the true importance of HTML5.


HTML5 allows us to define the INTENT of our content.


Not only can we define what an element on a page means (ie. this piece of content is a paragraph, or a heading, or a link to an external resource), but it allows us to define the purpose of our content. Computers don’t inherently know the difference between an “About Us” page and a blog post, or a blog post and a list of content related to said blog post. But, with HTML5, we can give computers hints.

For example:

1. The <article> element is used to specify content that is independent of the content around it, and is meant to be distributed by itself (think article or blog post).

2. The <aside> element is used to specify content that is tangentially related to the main content (think recent or related blog posts).

3. The <nav> element is used to specify a group of links that are used to navigate a site, as opposed to linking to resources that support the content.

If you’re still not convinced of HTML5’s importance, think of it this way: by defining what our content is, and what purpose it has, we allow search engines and possibly other, future technologies to make more sense of our content, which in turn improves content sharing, curation, and discovery in a huge, yet to be defined way. When combined with its umbrella technologies, HTML5 is the next leap in the evolution of the web and will fundamentally change how we communicate and interact with each other and our content.

Conclusion


So what’s the takeaway from all of this? The technologies associated with HTML5 are making the our content more dynamic and interactive, and are essentially improving the user experience of the web. The new HTML specification, on the other hand, is the scaffold. It provides more robust structure and organization. It is the means by which we classify the flora and the fauna of the web. New HTML elements may seem trivial, but the ability to better define our thoughts, content, and architecture improves our ability to connect and share content.


References :

Social Impact