emGee Software Solutions Custom Database Applications

Share this

Web Design

Best Unique Bootstrap JavaScript Plugins

Tuts+ Code - Web Development - Tue, 10/24/2017 - 06:00

Though Bootstrap contains a great selection of useful plugins, there’ll always be those times when you need some extra functionality. Luckily, Bootstrap is pretty extendible and there are loads of JavaScript plugins available that will instantly add a desired behaviour and save you a whole lot of time and effort. Here are ten of the best unique Bootstrap JavaScript plugins to be found at CodeCanyon.

1. Dropdown Sidebar Menu Responsive Bootstrap Navigation

If you’re looking for a sidebar menu with a healthy dose of sophistication, the Dropdown Sidebar Menu Responsive Bootstrap Navigation plugin could be just the thing you need. The plugin supports multiple navigation styles, and users can set the default or change any navigation affecting window load and sidebar toggle features.

Main features:

  • designed and developed for any device
  • customisable menu trigger on each menu level 
  • dropdown menu with toggle effect
  • multiple submenu levels
  • and more

User Masino_Sinaga says of Dropdown Sidebar Menu Responsive Bootstrap Navigation:

“Easy to implement, and many options available to customize the look and feel that suits my needs.”2. TinyMCE Bootstrap Plugin

The TinyMCE Bootstrap Plugin is a Bootstrap toolbar for TinyMCE that allows you to extend TinyMCE functionality using any Bootstrap element, like buttons, icons, labels, pagination, etc.

Main features:

  • 13 plugins in one
  • 13 visual editors
  • easy to install
  • multi-language
  • and more

User Enigmatic says of TinyMCE Bootstrap Plugin:

 “I immediately translated it to German and will most probably purchase additional licenses for some of my customers' projects. I think it will be a great help for content editors who aren't tech-savvy.”3. Responsive Bootstrap Modal and Popup

Looking for a plugin to display your images beautifully? If so the Responsive Bootstrap Modal and Popup plugin will probably do the trick. The plugin features modals and popups with a pleasing variety of elements like an image gallery, sign-in, and subscribe and contact forms, as well as 20 stunning ready-to-use examples of various modals.

Main features:

  • built with Bootstrap 3.x
  • five colour schemes
  • 26 animation effects
  • YouTube, Vimeo and self-hosted video support
  • and more

User WaddoBrian says of Responsive Bootstrap Modal And Popup:

“Great product and well written. Fantastic, quick and detailed support. Just what you need.”4. Flat - Responsive Bootstrap Menu

Flexible and highly customisable, the Flat - Responsive Bootstrap Menu plugin is a great choice for building your custom Bootstrap responsive menus. The plugin offers horizontal and sticky menu versions and five different colour schemes.

Main features:

  • 100% responsive layout
  • 12 column bootstrap grid system
  • dropdown with three style types
  • flat and gradient colour effects
  • and more

Flat - Responsive Bootstrap Menu is highly versatile and suitable for any type of website, template, or landing page.

5. Paradise Slider

The Paradise Slider plugin features a selection of beautiful sliders in a variety of styles like sliders with thumbnail navigation, multiple image sliders, full-screen slider, carousel video background and parallax slider, etc.

Main features:

  • 130 ready-to-use examples of different sliders
  • touch swipe enabled
  • controlled slide timing and duration functions
  • different types of sliding transition effects
  • and more

User Ravi Rajcoomar says of the Paradise Slider plugin:

“The last slider pack you will ever need. Easy to use, well documented and very high quality. Support is by far the best, very quick response.”6. Flip Box

The Flip Box plugin is a super cool plugin that will surely add a little pizazz to your web pages. The plugin offers a simple and easy-to-customise flip animation for all sorts of content like features, blogs, profiles, images, question and answer, etc., without the need to customise any JavaScript code.

Main features:

  • unlimited flip boxes
  • 12 flip box layouts
  • vertical and horizontal flip
  • uses Font Awesome icons
  • and much more!

With 12 layouts and effects and tons of customisable options, Flip Box is easy to integrate into any website.

7. Zlogin - Simple Login System with Bootstrap

The Zlogin - Simple Login System with Bootstrap plugin provides users with a simple, secured and easy-to-customise login and user management system that will integrate with your own website beautifully.

Main features:

  • advanced admin panel
  • high security script with advanced login system with tokens
  • Captcha integration from reCAPTCHA
  • welcome email and activation email
  • and more

Zlogin - Simple Login System with Bootstrap can also be used as a start point to build your own CMS with a private user area where visitors to your website have to be logged in to view page content.

8. Responsive Bootstrap Sidebar Navigation

Responsive Bootstrap Sidebar Navigation is ideal for those looking to add a bit more functionality to their sidebar. The plugin adds both horizontal and vertical navigation menus with four levels of submenus to your sidebar.

Main features:

  • Bootstrap 3+ based
  • sticky sidebar
  • modern application style navigation
  • drop down, push, shrink, and overlay menu effects
  • Font Awesome version 4.3
  • and more

User Reactiveflorence says of Responsive Bootstrap Sidebar Navigation:

“Great job, works perfect, clear code, ultra speedy support.”9. DMSS - Bootstrap jQuery Style Switcher

Need to test different styles on your website? Try DMSS - Bootstrap jQuery Style Switcher for an easy way to see Drupal or WordPress Themes and HTML5 website or Joomla templates in as many styles as you want.

Main features:

  • Bootstrap 3.0
  • custom colour picker
  • custom cookie script
  • make unlimited styles
  • and more

DMSS - Bootstrap jQuery Style Switcher is easy to set up and use and a great way to create unlimited styles.

10. Responsive Bootstrap Portfolio and Lightbox

The Responsive Bootstrap Portfolio and Lightbox plugin allows you to show off your images to their best effect. The package contains different types of lightboxes and portfolios such as image and video galleries, carousels and sliders of different types, etc. and allows users to create two, three, four, five, or six column galleries easily.

Main features:

  • 18 lightboxes
  • 18 simple portfolios
  • 6 sliders and carousels
  • 3 background colour schemes
  • and more

User Mmeneguzzo says of Responsive Bootstrap Portfolio and Lightbox:

“Installing the lightbox was very easy and the documentation very easy to follow. This product is well worth the money and saves a lot of time in having to code something yourself.”Conclusion

These plugins just scratch the surface of products available at Envato Market. So if none of them catch your fancy, there are plenty of other great options there to hold your interest.

And if you want to improve your JavaScript skills, check out the ever so useful free JavaScript tutorials we have on offer.

Categories: Web Design

We’ve Got A Lil’ Announcement To Make: Rachel Andrew Is SmashingMag’s New Editor-In-Chief

Smashing Magazine - Tue, 10/24/2017 - 02:47

   

Sometimes things evolve faster than you think. Something that started as a simple WordPress blog back in September 2006, has evolved into a little Smashing universe — with books, eBooks, conferences, workshops, consultancy, job board and, most recently, 56 fancy cats (upcoming, also known as Smashing Membership).

We have a wonderful team making it all happen, but every project requires attention and focus and every project desperately needs time to evolve and flourish and improve.

The post We’ve Got A Lil’ Announcement To Make: Rachel Andrew Is SmashingMag’s New Editor-In-Chief appeared first on Smashing Magazine.

Categories: Web Design

Google SSL Problems: Chrome Security Warnings For Non-HTTPS

As early as September 2016, Google announced that with the update of the Chrome browser to Chrome version 56, the search giant would require websites that collect personal information...

The post Google SSL Problems: Chrome Security Warnings For Non-HTTPS appeared first on Onextrapixel.

Categories: Web Design

Top 30 SEO Tools for Small Business

Webitect - Mon, 10/23/2017 - 15:18

If you run a website or work at a digital marketing agency, then SEO tools play a critical part in your day to day life. Not only do they save us valuable time but they also allow us to achieve things that wouldn’t be possible manually. Here are the 30 best SEO tools for small business. Google PageSpeed Insights Within the Google Search Console, you have access to their PageSpeed Insight tool. This tool takes your website and analyzes it for possible improvements that you could make to the speed of your page. We already know that Google is using page

The post Top 30 SEO Tools for Small Business appeared first on Webitect.

Categories: Web Design

Stop Designing For Only 85% Of Users: Nailing Accessibility In Design

Smashing Magazine - Mon, 10/23/2017 - 13:35
As designers, we like to think we are solution-based. But whereas we wouldn’t hesitate to call out a museum made inaccessible by a lack of wheelchair ramps, many of us still remain somewhat oblivious to flaws in our user interfaces. Poor visual design, in particular, can be a barrier to a good user experience. Whereas disability advocacy has long focused on ways to help the user adapt to the situation, we have reached a point where users expect products to be optimized for a broad range of needs.
Categories: Web Design

Stop Designing For Only 85% Of Users: Nailing Accessibility In Design

Smashing Magazine - Mon, 10/23/2017 - 05:35

   

As designers, we like to think we are solution-based. But whereas we wouldn’t hesitate to call out a museum made inaccessible by a lack of wheelchair ramps, many of us still remain somewhat oblivious to flaws in our user interfaces.

Poor visual design, in particular, can be a barrier to a good user experience. Whereas disability advocacy has long focused on ways to help the user adapt to the situation, we have reached a point where users expect products to be optimized for a broad range of needs.

The post Stop Designing For Only 85% Of Users: Nailing Accessibility In Design appeared first on Smashing Magazine.

Categories: Web Design

The 10 Best Blogger Apps Every Blogger Should Know

Webitect - Sun, 10/22/2017 - 15:16

Is the admin associated with your blog making you want to throw your hands in the air and abandon your craft forever? Your life seems to be a never-ending reel of editing, linking, relationship building, task management, optimization, and overall overthinking of every little thing. Even experienced bloggers only spend about a third of their blogging time actually writing. The rest is in the details. Don’t sweat the small stuff. Make life easier with these must-have blogger apps so you can focus on what you do best when inspiration strikes. Pre-Publishing Blogger Apps These awesome tools can reduce the hours

The post The 10 Best Blogger Apps Every Blogger Should Know appeared first on Webitect.

Categories: Web Design

5 Low Cost SEO Insights for Small Business Owners

Webitect - Sat, 10/21/2017 - 20:26

For some small business owners, the idea of SEO sounds absolutely dreadful. That’s why many tend to outsource for this kind of help. But, what about those who are just getting on their feet? Or, perhaps the ones who want to save a little on their budget? Luckily, there are plenty of solutions for low cost SEO small business owners shouldn’t miss out on. Also, they’re easy enough so you don’t have to be some kind of search engine aficionado to understand. For those who lack experience, we’re here to help out. Let’s get your SEO strategy off the ground

The post 5 Low Cost SEO Insights for Small Business Owners appeared first on Webitect.

Categories: Web Design

5 SEO Marketing Tactics to Target Millennials

Webitect - Sat, 10/21/2017 - 10:30

The millennial generation has taken over. They now outnumber baby boomers in the workforce and general size. Marketing to this group is essential to the survival of any business. Do you want to grow your business and develop brand recognition with this tech-savvy crowd? Here are five SEO marketing tactics to target millennials and get them excited about your business. 1. Craft Useful Content If you don’t have a blog on your website, you’re missing out on a great opportunity. Blogs add content to your page, and content is king. It shows search engines that your page is active, making

The post 5 SEO Marketing Tactics to Target Millennials appeared first on Webitect.

Categories: Web Design

Package Management in Laravel

Tuts+ Code - Web Development - Fri, 10/20/2017 - 05:00

In this article, we'll go ahead and explore the package management feature in the Laravel framework. In the course of the article, we’ll go through a real-world example to demonstrate the purpose of the article.

Package management in Laravel is an important feature that allows you to bundle a piece of functionality so that it can be distributed easily. Moreover, you could always publish your package to repositories like Packagist and GitHub that allow other developers to benefit from your package.

To demonstrate the concept, we’ll build an example page in Laravel that uploads an image to the Amazon S3 cloud. Rather than going with the usual flow, we’ll develop it as a bundled package that can be distributed and maintained easily.

Before moving ahead, I assume that you are familiar with the Laravel framework already as I won't go into the details of basic Laravel concepts.

Also, you need to have a valid AWS account and the credentials to access the Amazon API in order to follow along with the example in this article. So, make sure that you set that up first.

With everything on hand, we are ready to dive into the actual development.

Setting Up the Package Files

Let's quickly look at the list of files that we'll implement throughout the course of this tutorial.

  • composer.json: We need to add the class mapping of our package in the existing composer.json file in the root of the package.
  • config/app.php: This is the existing file that we'll use to add an entry of our custom service provider so that we can load views and routes using that file.
  • composer.json: This is the package-specific composer.json file should you wish to distribute the package with others.
  • packages/envato/aws/src/Providers/AwsServiceProvider.php: The usual Laravel service provider file that will be used to load other components of the package.
  • packages/envato/aws/src/routes/web.php: It loads the custom routes of our package.
  • packages/envato/aws/src/Controllers/AwsController.php: This is the controller file that handles the application logic of our package.
  • packages/envato/aws/src/views/upload.blade.php: The view file that handles the rendering logic.

Don't worry if it doesn't make much sense yet as we'll discuss everything in detail as we go through it.

Setting Up the Prerequisites

As we discussed earlier, our package implements the use case of file upload to Amazon S3 cloud. In this section, we'll go through the prerequisites that need to be set up in order to run our package successfully.

As a Laravel developer, you must be familiar with Flysystem, which provides a nice abstraction layer to interact with the filesystem. It provides easy-to-use drivers so that you can interact with it easily no matter the type of filesystem you're dealing with—either it's the local file system or the AWS S3 cloud system.

In order to enable the support of Amazon S3 cloud filesystem with Flysystem, you need to install the corresponding adapter composer package.

Go ahead and run the following composer command from your project root to install the flysystem-aws-s3-v3 package.

$composer require league/flysystem-aws-s3-v3

Upon the successful execution of that command, now you're able to use Laravel Flysystem to interact with Amazon S3 cloud filesystem in the same way you would have used it for the local file system.

Now, let's quickly pull in the config/filesystems.php file to see the settings provided for the Amazon S3 filesystem.

... ... 'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 's3' => [ 'driver' => 's3', 'key' => env('AWS_KEY'), 'secret' => env('AWS_SECRET'), 'region' => env('AWS_REGION'), 'bucket' => env('AWS_BUCKET'), ], ], ... ...

As you can see, the configuration is already in place for the Amazon S3; it's just that we need to set appropriate ENV variables in the .env file.

Go ahead and add the following variables in your .env file.

AWS_KEY={AWS_KEY_VALUE} AWS_SECRET={AWS_SECRET_VALUE} AWS_REGION={AWS_REGION_VALUE} AWS_BUCKET={AWS_BUCKET_VALUE} AWS_CDN_URL={AWS_CDN_URL_VALUE}

Of course, you need to replace placeholders with their actual values. Now, you're ready to use the Flysystem AWS S3 adapter in your Laravel application.

Going Through the Package Files

To create your own Laravel package, the first thing is to create an appropriate directory structure that reflects the conventions of the Laravel system. I assume that you're already running a basic Laravel application; in fact, the default blog application will do as well.

Go ahead and create the packages directory in the root of your application. Considering that you're going to distribute your package with others, the preferred structure of your package should be {vendor_name}/{package_name}.

Following that convention, let's go ahead and create an envato/aws directory under the packages directory. As you may have guessed, envato is the vendor name, and aws stands for the package name itself. Finally, let's create a packages/envato/aws/src directory that holds the source files of our package.

Now, we need to inform Laravel about our new package. Go ahead and open the composer.json file in the root of your Laravel application and add the "Envato\\Aws\\": "packages/envato/aws/src" entry in the autoload section as shown below.

... ... "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/", "Envato\\Aws\\": "packages/envato/aws/src" } }, ... ...

As you can see, the Envato\Aws\ namespace is mapped to the packages/envato/aws/src directory. Now, we just need to run the dump-autoload command to regenerate the composer mappings.

$composer dump-autoload

Now, you can use the Envato\Aws\ namespace in your application and it'll pick up the files from the correct location!

Composer File of the Package

Now, let's go ahead and add a package-specific composer.json file so that you can distribute your package to the packagist repository.

Go to the packages/envato/aws directory and run the following command to generate a composer.json file for your package.

$composer init

You'll be prompted with the usual questions, so just go through it and it'll create a composer.json file.

At the very least, it should look something like this.

{ "name": "envato/aws", "description": "Example of File Upload to AWS S3 Cloud", "minimum-stability": "dev", "require": {} } Route

In our package, we'll create a simple page that displays the status of the uploaded file. So we need to create a route associated with that page.

Let's create a route file at packages/envato/aws/src/routes/web.php.

<?php Route::get('aws/s3/upload', 'Envato\Aws\Controllers\AwsController@upload');

Does it require any explanation at all? The obvious next step is to create the associated controller file.

Controller

Let's create a controller file at packages/envato/aws/src/Controllers/AwsController.php with the following contents.

<?php namespace Envato\Aws\Controllers; use App\Http\Controllers\Controller; class AwsController extends Controller { public function upload(\Illuminate\Contracts\Filesystem\Factory $storage) { // load s3 storage $awsS3Storage = $storage->disk('s3'); // load local storage $localStorage = $storage->disk('local'); // default path of local storage "storage/app" $sourceFileContents = $localStorage->get('test.jpg'); // destination filepath in S3 cloud $destFilePath = 'test_new.jpg'; // init vars $imageUrl = ''; $errorMsg = ''; // upload file to AWS S3 if ($awsS3Storage->put($destFilePath, $sourceFileContents, 'public')) { $imageUrl = env('AWS_CDN_URL') . env('AWS_BUCKET') . '/' . $destFilePath; } else { $errorMsg = 'Oops! Something went wrong :('; } // call view return view('aws::upload', ['imageUrl' => $imageUrl, 'errorMsg' => $errorMsg]); } }

Let's go through the file to understand what every piece of code is meant for.

We kick off the things by setting a namespace of our controller to namespace Envato\Aws\Controllers. Recall that we added the mapping of Envato\Aws to packages/envato/aws/src in the root composer.json file so that it could find our package files.

Next, we've defined the upload method that does the needful to sync local files to the Amazon S3 cloud. The important thing to note here is the first argument of the upload method that asks for the \Illuminate\Contracts\Filesystem\Factory dependency. During the execution, the appropriate Laravel contract will be injected.

Now, we could use the filesystem factory instance to create disk instances as needed. The disk instance in Laravel is the driver that allows you easy access to underlying filesystems such as the local disk, Amazon S3 cloud, and the like.

// load s3 storage $awsS3Storage = $storage->disk('s3'); // load local storage $localStorage = $storage->disk('local');

For simplicity, we'll transfer the static image file that's already available under the default local storage of Laravel, and the path is storage/app/test.jpg.

As a first step, let's grab the source file contents.

// default path of local storage "storage/app" $sourceFileContents = $localStorage->get('test.jpg');

With everything set up as mentioned, you should be able to sync a file to Amazon S3 using the put method.

// upload file to AWS S3 if ($awsS3Storage->put($destFilePath, $sourceFileContents, 'public')) { $imageUrl = env('AWS_CDN_URL') . env('AWS_BUCKET') . '/' . $destFilePath; } else { $errorMsg = 'Oops! Something went wrong :('; }

Make sure that you've set the AWS environment variables correctly, just in case something doesn't work as expected.

And the last thing is to call a view file that displays the synced image and an appropriate message.

// call view return view('aws::upload', ['imageUrl' => $imageUrl, 'errorMsg' => $errorMsg]);

Of course, we haven't created a view file yet, and that's exactly what the next section is all about.

View

Let's create a view file at packages/envato/aws/src/views/upload.blade.php with the following contents.

<!DOCTYPE html> <html lang="{{ config('app.locale') }}"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> <!-- Fonts --> <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css"> <!-- Styles --> <style> html, body { background-color: #fff; color: #636b6f; font-family: 'Raleway', sans-serif; font-weight: 100; height: 100vh; margin: 0; } .full-height { height: 100vh; } .flex-center { align-items: center; display: flex; justify-content: center; } .position-ref { position: relative; } .top-right { position: absolute; right: 10px; top: 18px; } .content { text-align: center; } .title { font-size: 84px; } .links > a { color: #636b6f; padding: 0 25px; font-size: 12px; font-weight: 600; letter-spacing: .1rem; text-decoration: none; text-transform: uppercase; } .m-b-md { margin-bottom: 30px; } </style> </head> <body> <div class="flex-center position-ref full-height"> @if (Route::has('login')) <div class="top-right links"> @if (Auth::check()) <a href="{{ url('/home') }}">Home</a> @else <a href="{{ url('/login') }}">Login</a> <a href="{{ url('/register') }}">Register</a> @endif </div> @endif <div class="content"> <div class="title m-b-md"> File upload to S3 Cloud </div> <div> @if ($imageUrl) <img src="{{ $imageUrl }}" width="100"/> @else <span class="error">{{ $errorMsg }}</span> @endif </div> </div> </div> </body> </html>

It's a pretty standard view file that displays the uploaded image upon the successful upload, or otherwise an appropriate error message.

Service Provider

We're almost done with our package as we've created the necessary files. The next step is to create a service provider so that we can register the routes and views of our package.

Let's create a service provider file at packages/envato/aws/src/Providers/AwsServiceProvider.php with the following contents.

<?php namespace Envato\Aws\Providers; use Illuminate\Support\ServiceProvider; class AwsServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // load routes $this->loadRoutesFrom(__DIR__.'/../routes/web.php'); // load view files $this->loadViewsFrom(__DIR__.'/../views', 'aws'); // publish files $this->publishes([ __DIR__.'/../views' => resource_path('views/vendor/aws'), ]); } /** * Register the application services. * * @return void */ public function register() { } }

Obviously, you could have created the service provider file by using the artisan command as well. But it would have required an extra step of moving the file from app/Providers to our package.

Anyway, let's go through the service provider file that was just created.

Firstly, we load the routes and views associated with our package.

// load routes $this->loadRoutesFrom(__DIR__.'/../routes/web.php'); // load view files $this->loadViewsFrom(__DIR__.'/../views', 'aws');

Next, we provide the support of publishing the views of our packages so that the developers who want to override the views can do that. Next time they run the php artisan vendor:publish command, Laravel copies the views from packages/envato/aws/src/views/ to resources/views/vendor/aws.

Now, they can change the views under the resources/views/vendor/aws directory, and it'll be picked up automatically by Laravel instead of the views under packages/envato/aws/src/views/. In fact, it's the proper way to modify third-party package views, instead of directly modifying the package views.

That's it as far as the service provider is concerned. As you would have expected, we need to add the service provider entry in config/app.php. Add the following entry in the providers array.

... ... /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, Envato\Aws\Providers\AwsServiceProvider::class, // Our package service provider ... ...

And there you are—everything's in order now, so that we can go ahead and test our package.

Go ahead and run the http://your-laravel-application/aws/s3/upload URL in your browser. If everything goes fine, you should see the image on your page that's loaded from the Amazon S3 cloud. Please let me know if you face any problems, and I would be more than happy to answer those.

So we are on the closing note of this article, and I hope you've enjoyed it!

Conclusion

Today, we discussed one of the important features of the Laravel framework—package management. In the process of setting up our custom Laravel package, we went through a real-world example that demonstrated how you could upload an image to the Amazon S3 cloud.

It's a really nice feature should you wish to bundle and distribute a set of functionalities all together. In fact, you could look at this as an option to approach your custom module development in Laravel.

For those of you who are either just getting started with Laravel or looking to expand your knowledge, site, or application with extensions, we have a variety of things you can study on Envato Market.

As always, you could leave your valuable comments and feedback in the feed below!

Categories: Web Design

Combining Graphical And Voice Interfaces For A Better User Experience

Smashing Magazine - Thu, 10/19/2017 - 13:27
With the appearance of voice user interfaces, AI and chatbots, what is the future of graphical user interfaces (GUIs)? Don’t worry: Despite some dark predictions, GUIs will stay around for many years to come. Let me share my personal, humble predictions and introduce multi-modal interfaces as a more human way of communication between user and machine. What Are Our Primary Sensors? The old wisdom that a picture is worth a thousand words is still true today.
Categories: Web Design

5 Ways Stock Art Might Be Killing Your Small Business Brand

Entrepreneur: Latest Web Design Articles - Thu, 10/19/2017 - 09:00
You could get sued. Your image could pop up on a competitor's site. It can't be trademarked. So, stop defending stock art because it's "cheap."
Categories: Web Design

Combining Graphical And Voice Interfaces For A Better User Experience

Smashing Magazine - Thu, 10/19/2017 - 05:27

   

With​ ​the​ ​appearance​ ​of​ ​voice​ ​user​ ​interfaces,​ ​AI​ ​and​ ​chatbots,​ ​what is​ ​the​ ​future​ ​of​ ​graphical​ ​user​ ​interfaces (GUIs)?​ ​Don’t​ ​worry: Despite​ ​some dark​ ​predictions​,​ ​GUIs​ ​will​ ​stay​ ​around​ ​for​ ​many​ ​years​ ​to​ ​come. Let​ ​me​ ​share​ ​my​ ​personal, humble predictions​ ​and​ ​introduce​ ​multi-modal​ ​interfaces as​ ​a​ ​more​ ​human​ ​way​ ​of​ ​communication​ ​between​ ​user​ ​and​ machine.

The​ ​old​ ​wisdom​ ​that​ ​a​ ​picture​ ​is​ ​worth​ ​a​ ​thousand​ ​words​ ​​is​ ​still​ ​true​ ​today.​ ​Our​ ​brain​ ​is​ ​an incredible​ ​image​-​processing​ ​machine.​ ​We​ ​can​ ​understand​ ​complex​ ​information​ ​faster​ ​when we​ ​see​ ​it​ ​visually.​ ​According​ ​to​ ​studies,​ ​even​ ​when​ ​we​ ​talk​ ​with​ ​someone​ ​else,​ n​​onverbal communication​​ ​represents​ ​two third​s ​of​ ​the​ ​conversation.​ ​According​ ​to​ ​​other​ ​studies​​, ​we​ absorb most​ ​information​ ​from​ ​our​ ​sight​ ​(83%​ ​sight,​ ​11%​ ​hearing,​ ​3%​ ​smell,​ ​2%​ ​touch​ ​and​ ​1% taste).​ ​In​ ​short,​ ​our​ ​eyes​ ​are​ our ​primary​ ​sensors​.

The post Combining Graphical And Voice Interfaces For A Better User Experience appeared first on Smashing Magazine.

Categories: Web Design

Essential JavaScript Libraries and Frameworks You Should Know About

Tuts+ Code - Web Development - Thu, 10/19/2017 - 05:00

JavaScript has been around for 20+ years, and it's one of those languages that never stop evolving. The language has been experiencing a fast-paced growth recently that makes me wonder whether the modern front-end JavaScript technologies that are well known today will be relevant a couple of years later. 

Nevertheless, it's important to be ahead of the game by working with the latest tools and frameworks for a better development workflow. This article explores various JavaScript libraries, frameworks, and tools that you should consider learning right now.

Introduction

The JavaScript environment has grown huge. It has its own ecosystem of libraries, frameworks, tools, package managers and new languages that compile down to JavaScript. Interestingly, npm, which is the de facto package manager for JavaScript, is also the largest software registry in the world. Here is an excerpt from a post published on Linux.com back in January 2017.

At over 350,000 packages, the npm registry contains more than double the next most populated package registry (which is the Apache Maven repository). In fact, it is currently the largest package registry in the world.

Fast forward eight months, and there are currently about 500,000 packages in the npm registry. That's a massive growth compared to other package repositories. 

Source: ModuleCounts.com

As a front-end JavaScript developer, it's important to keep up with the modern JavaScript tools and libraries. When a technology becomes popular, demand for it is high, which in turn means more coding jobs that pay the highest salary in the industry. So I've assembled a list of the popular JavaScript technologies that I think you should be aware of. 

Libraries

A library is a reusable piece of code that offers certain functionality. It is a collection of functions, objects, and classes that you can use in your application. A library abstracts different layers so that you don't have to be concerned about their implementation details. 

You can call a library function and pass it some parameters, and the library executes it and returns the control back to you. However, it doesn't place any structural constraints that restrict how you use the library. Popular JavaScript libraries include:

React

React is a JavaScript library built by the developers of Facebook and Instagram. React was voted as the most-loved technology among developers, according to the Stack Overflow Survey 2017. React also holds the credit for being the most popular JavaScript project based on GitHub star count. 

So why is React getting all the attention? With React, it is possible to create an interactive UI using a declarative approach where you can control the state of the application by saying "the view should look like this". It uses a component-based model where the components are reusable UI elements and each component has its own state.

React uses a Virtual DOM so that you don't have to be concerned about directly manipulating the DOM. Other notable features of React include one-way data flow, optional JSX syntax, and a command-line tool for creating a React project with zero build configuration. 

If you believe that React is the next best thing and would like to learn React, check out our React Crash Course for Beginners tutorial series.

jQuery

jQuery is a library that made JavaScript more approachable and DOM manipulation easier than before. jQuery's gentle learning curve and easy syntax gave rise to a generation of new client-side developers. A few years back, jQuery was considered a solid solution for building robust websites with cross-browser support. jQuery's core features such as DOM manipulation based on CSS selectors, event handling, and making AJAX calls fueled its popularity. 

However, things have changed, and the JavaScript environment has steadily evolved. Some of jQuery's features have been incorporated into the newer ECMAScript specification. Moreover, the new libraries and frameworks in use today have a native way of binding the DOM, and hence plain DOM manipulation techniques are not required anymore. jQuery's popularity is on the decline, but I don't see it disappearing anytime soon.

D3: Data-Driven Documents

D3 (or D3.js) is a powerful JavaScript library for producing interactive visualizations using web standards such as SVG, HTML, and CSS. Unlike other visualization libraries, D3 offers better control over the final visual result. 

D3 works by binding the data to the DOM and then making the transformation to the document. It also has an ecosystem of its own, which consists of plugins and libraries that extend its basic functionality. The library has been around since 2011, and it has tons of documentation and tutorials that can help you get started. 

If you are looking to create simple visualizations without investing too much time in it, you should check out Chart.js. We have an introductory series on Chart.js that covers most of the visualizations that you can create with Chart.js

Frameworks

A framework has an architecture that dictates the flow of control in your application. The framework describes the skeleton and tells you how everything should be organized. The basic functionality required to get the application up and running is also provided to you. Moreover, you are bound to follow the framework's design principles and patterns. The difference between a framework and library is that you call a library, whereas the framework calls you. 

A framework often comprises of many libraries and has a higher level of abstraction. Functionality such as event handling, making AJAX calls, template and data binding, and testing are built into the framework.  

Angular

AngularJS was once the most popular JavaScript technology among front-end developers. It was backed by Google and a community of individuals and corporations. Despite the popularity, AngularJS had its own share of flaws. The Angular team spent two years working on a newer version of Angular, which was finally released in September 2016. 


The Angular 2 release was a ground-up rewrite of AngularJS. Some of the features of Angular 2 include:

  • TypeScript over JavaScript as the default language
  • component-based architecture
  • improved performance on both mobile and web platforms. 
  • better tooling and scaffolding options

However, upgrading from Angular 1.x to Angular 2 is expensive because Angular 2 is an entirely different beast. That's one of the reasons why Angular 2 hasn't experienced the same adoption rate as that of its predecessor. But Angular and AngularJS continue to be among the most commonly used technologies according to Stack Overflow (2017). The Angular project has about 28,000 stars on GitHub.

Vue.js

Vue.js is a lightweight JavaScript framework that has been trending this year. It is the most popular JavaScript framework on GitHub in terms of the GitHub star count. Vue claims to be a less opinionated framework and thus easy for developers to catch up with. Vue's HTML-based template syntax binds the rendered DOM to the instance data. 


The framework offers a React-like experience with its Virtual DOM and reusable components that you can use to create both widgets and entire web applications. Moreover, you can also use the JSX syntax to write the render functions directly.  When the state changes, Vue.js uses a reactivity system to determine what has changed and rerenders the minimal number of components. Vue.js also supports the integration of other libraries into the framework without much hassle.

Ember.js

Ember.js is a front-end framework based on the  Model-View-ViewModel (MVVM) pattern. It follows the convention over configuration approach which is popular among server-side side frameworks like Ruby on Rails and Laravel. Ember.js incorporates common idioms and best practices into the framework so that you can get an application up and running without much effort. 

The Ember stack usually comprises:

  • Ember CLI: Provides basic scaffolding options and supports hundreds of add-ons.
  • Ember Data: A data persistence library that can be configured to work with any server back end.
  • Ember Inspector: An extension available for Chrome and Firefox.
  • Liquid Fire:  An add-on for transitions and animations.
Tools

A tool is a collection of routines that help you in the development process. Unlike a library, a tool usually executes a task on the client code. It takes your code as input, performs a task on it, and then returns an output. The commonly used tools include transpilers and build tools, asset minifiers, module bundlers, and scaffolding tools. 

Tools: General-Purpose Task Runners

General-purpose task runners are the tools used to automate certain repetitive tasks. The popular general-purpose task runners include:

Gulp 

Gulp is a JavaScript toolkit used as a task runner and as a build system in web development. Compilation, code minification, image optimization, unit testing, linting etc. are repetitive tasks that should be automated. Gulp makes the process of writing tasks easier, even for people who are less familiar with JavaScript. 

Gulp uses pipelines to stream the data from one plugin to another, and the final result is outputted to a destination folder. Gulp performs better compared to Grunt because it doesn't create temporary files for storing intermediate results, which results in fewer I/O calls.

Grunt

Grunt is a task runner and an automation tool for JavaScript. Grunt has a command-line interface that lets you run custom tasks defined in a file called a Gruntfile. Grunt has thousands of plugins to choose from, which should cover most of the common repetitive tasks that you'd encounter. With Grunt, you can run all the tasks under a single command, making your life easier.

npm 

Gulp and Grunt require you to spend time learning and mastering a new tool, which takes time. Introducing additional dependencies into your project can be avoided by choosing an alternative that is already bundled with Node.js. Although npm is better known as a package manager, npm scripts can be used to perform the bulk of the abovementioned tasks. 

Tools: Testing

Testing is the process of validating and verifying that the application meets the expected business and technical requirements. The Test-Driven Development approach also aids in discovering bugs and therefore should be treated as an integral part of the modern front-end development stack.

Jest

Jest is a relatively new testing framework authored by Facebook and is well-received by the React community. There is a common misconception that Jest is specifically designed to work with React; however, according to the Jest Documentation:

Although Jest may be considered React-specific test runner, in fact it is a universal testing platform, with the ability to adapt to any JavaScript library or framework. You can use Jest to test any JavaScript code.

The biggest advantage of using Jest over other test suites is that you require zero or minimal configuration to start writing tests. The framework has a built-in assertion library and supports the use of mock functions or spies.

Jest has a feature called snapshot testing that lets you ensure that the UI of the application doesn't change unexpectedly. The developers at Facebook and other contributors have been pouring a lot of work into this project recently, so it wouldn't be a surprise if Jest turns out to be the most popular testing framework for JavaScript in the years to come.

Mocha 

Mocha is a JavaScript testing framework that features browser support, async support including promises, test coverage reports, and a JavaScript API for running tests. Mocha is often paired with an assertion library such as Chai, should.js, expect.js, or better-assert because it lacks an assertion library of its own. 


Jasmine

Jasmine is a behavior-driven testing framework for JavaScript. Jasmine aims to be a browser, platform, and framework-independent test suite. Jasmine has its own assertion library called matchers that gives it a clean and easy-to-read syntax. Jasmine doesn't have a built-in test runner, and you might have to use a generic test runner like Karma instead. 


Summary

JavaScript, the language of the web, has stayed relevant since the days of its inception back in 1995. It will probably stay that way as long as browsers don't decide to ditch it for another language. Although there are a lot of other languages that compile down to JavaScript, there is no other scripting language that will replace JavaScript in the foreseeable future. Why? Because JavaScript has grown too popular to be replaced.

The language is not without its learning curves, and there are plenty of frameworks and libraries to keep you busy, as well. If you’re looking for additional resources to study or to use in your work, check out what we have available in the Envato Market

The JavaScript environment is definitely evolving, which is evident from the current trends in web development. Older libraries and frameworks have been replaced with new technologies. jQuery, which was once the most favored JavaScript library, is experiencing a decline in terms of appeal, usage, and popularity. The new generation of front-end libraries, frameworks, and tools are gaining ground and getting universal acceptance. 

Adapting to the new trends in technology has benefits too. Coding jobs that require React have some of the highest salaries in the industry, with an average salary of $105,000 in the U.S. according to Stack Overflow (2016). So you need to continue learning and experimenting with the latest tools and frameworks to get the best out of JavaScript. 

If you think I've missed a JavaScript framework, library or tool that is worth mentioning, let me know through the comments. 

Further Reading
Categories: Web Design

Confessions Of An Impostor

Smashing Magazine - Wed, 10/18/2017 - 13:05
Five years ago, when, for the first time ever, I was invited to speak at one of the best front-end conferences in Europe, I had quite a mixture of feelings. Obviously, I was incredibly proud and happy: I had never had a chance to do this before for a diverse audience of people with different skillsets. But the other feelings I had were quite destructive. I sincerely could not understand how I could be interesting to anyone: Even though I had been working in front-end for many years by then, I was very silent in the community.
Categories: Web Design

10 of the Best Websites to Download Free Vector Art

We’re spoiled for choice when it comes to free stock photography these days, but finding good quality free vector art rather than tacky clipart can be a little bit...

The post 10 of the Best Websites to Download Free Vector Art appeared first on Onextrapixel.

Categories: Web Design

Confessions Of An Impostor

Smashing Magazine - Wed, 10/18/2017 - 05:05

   

Five years ago, when, for the first time ever, I was invited to speak at one of the best front-end conferences in Europe, I had quite a mixture of feelings. Obviously, I was incredibly proud and happy: I had never had a chance to do this before for a diverse audience of people with different skillsets. But the other feelings I had were quite destructive.

I sincerely could not understand how I could be interesting to anyone: Even though I had been working in front-end for many years by then, I was very silent in the community. I hadn’t contributed to popular frameworks or libraries. I was just average. So, the feeling of a mistake having been made, that I did not deserve to be at that conference, was very strong, and I could not believe that I would indeed be speaking until I had bought my plane ticket.

The post Confessions Of An Impostor appeared first on Smashing Magazine.

Categories: Web Design

Naming Things In CSS Grid Layout

Smashing Magazine - Tue, 10/17/2017 - 13:28
When first learning how to use Grid Layout, you might begin by addressing positions on the grid by their line number. This requires that you keep track of where various lines are on the grid. Built on top of this system of lines, however, are methods that enable the naming of lines and even grid areas. Using these methods enables easier placement of items by name rather than number, but also brings additional possibilities when creating systems for layout.
Categories: Web Design

Naming Things In CSS Grid Layout

Smashing Magazine - Tue, 10/17/2017 - 05:28

   

When first learning how to use Grid Layout, you might begin by addressing positions on the grid by their line number. This requires that you keep track of where various lines are on the grid, and also be aware of the fact the line numbers reverse if your site is displayed for a right-to-left language.

Built on top of this system of lines, however, are methods that enable the naming of lines and even grid areas. Using these methods enables easier placement of items by name rather than number, but also brings additional possibilities when creating systems for layout. In this article, I’ll take an in-depth look at the various ways to name lines and areas in CSS Grid Layout, and some of the interesting possibilities this creates.

The post Naming Things In CSS Grid Layout appeared first on Smashing Magazine.

Categories: Web Design

10 SEO Hacks New Websites Must Implement to Succeed

Webitect - Mon, 10/16/2017 - 21:24

Without SEO, businesses have no chance of being found in search results. When this happens, potential customers can’t find any of your content. It doesn’t matter if you’ve taken out ads because over 70% of users ignore them anyway. So, if you’re on the third or fourth page, traffic will be abysmal. You need to get ahead of the game. How is that achieved? With SEO hacks that are easy even for beginners. SEO doesn’t have to be complicated. It’s there to help you stay on top of search results. It should be incorporated into your everyday routine from now

The post 10 SEO Hacks New Websites Must Implement to Succeed appeared first on Webitect.

Categories: Web Design

Pages