Desktop Wallpaper Calendars: July 2016

To help you start into July freshly inspired, artists and designers from across the globe challenged their artistic abilities and created desktop wallpapers for you to indulge in. This monthly creativity mission has been going on for eight years now, and each month the enthusiastic work of the community brings forth interesting, beautiful, and unique results. Wallpapers that are a little more distinctive than the usual crowd.
This post features their designs for July 2016.

More:  

Desktop Wallpaper Calendars: July 2016

Infographic: How to get Your First 1,000 Followers on Instagram

Just getting those first 100 followers on Instagram can seem like a challenge. But let’s reach for the stars and learn how to get 1,000! Below are some incredibly useful tips for both personal and business Instagram accounts. Would you like to display this infographic on your site? You can copy and paste the HTML code below into your website to display this infographic: ++ Click Image to Enlarge ++Source: Infographic: How to get Your First 1000-Followers on Instagram Sources Instagram Help Center The Science of Instagram: How to Get More Followers and Likes Statistics That Reveal Instagram’s Mind-Blowing Success…

The post Infographic: How to get Your First 1,000 Followers on Instagram appeared first on The Daily Egg.

Link:  

Infographic: How to get Your First 1,000 Followers on Instagram

Lessons Learned From WordPress Plugin Support

A year and a half ago I released my first premium WordPress plugin, Advanced Ads. It’s true that once the plugin was out, my most important task was support. Support is a crucial element that determines not only the success of the project, but also how happy everyone will be, me included.
With this in mind, I constantly optimized my approach to providing support. Let me share with you what I learned.

Link:

Lessons Learned From WordPress Plugin Support

The Right Tool For The Job: Picking The Best Prototyping Software For Your Project

Prototyping tools have become an important resource for us designers — allowing us to document multiple states of a single screen, including animations, transitions and microinteractions that are hard to represent in static documentation.
Companies that pay attention to this trend have started to build prototyping tools to address this need; and today we’re seeing a plethora of tools emerge on a regular basis. But which should you pick? More importantly, what questions should you ask yourself and your team to make sure you choose the right one?

More:  

The Right Tool For The Job: Picking The Best Prototyping Software For Your Project

Turn Your Business Blog into a Conversion Machine with These 8 Methods

After hearing everyone say, “Content is King!” you decide your website needs a new blog, or at the very least, you decide to revive an inactive one. But you shouldn’t have a blog just for the sake of having one, not when it’s for business. There has to be some kind of goal, and for most, if not all enterprises, it has to be conversions. You’ve been blogging for 6 months now, and you have an audience who is liking and sharing your content. The problem is, no one’s buying. If this is the case for you, then you have…

The post Turn Your Business Blog into a Conversion Machine with These 8 Methods appeared first on The Daily Egg.

Link – 

Turn Your Business Blog into a Conversion Machine with These 8 Methods

Create a Data-Driven Content Strategy in 1 Day [INFOGRAPHIC]

If you’re a content writer, you might think that data analytics isn’t relevant to you (I know I did). But you’d be wrong. Data and content are actually a match made in heaven. If you collect the right data, you can find out what type of content resonates with your audience  — isn’t that a writer’s ultimate goal?

By developing a data-driven content strategy, you are ensuring the content you’re producing is relevant to your current readers as well as your prospects (who may not know who the heck you are). Plus, the chances are high your competitors already have a data-driven content strategy, so creating one for your business is just, well, good business.

Are you freaking out?

Well stop. Building a data-driven content strategy doesn’t have to take longer than a day. Yep, you read that right: one day. Oh, and if you use free tools like we suggest, it’s also easy on the budget (something your boss will no doubt appreciate).

Our friends at JBH Agency have designed a beautiful step-by-step infographic showing you exactly how to build your data-driven content strategy: all you need is 24 hours, a few free tools and one clever human.

Psst: If you’re more of a reader than a visual learner, check out the original article that inspired this infographic, written by Unbounce’s Brad Tiller.
Data-driven content strategy infographic

Embed this infographic on your site

This article is from – 

Create a Data-Driven Content Strategy in 1 Day [INFOGRAPHIC]

How to Include Wikipedia In Your Online Marketing Strategy

Got a marketing strategy? Does it include Wikipedia? If not, you may want to rethink your game plan. Marketers have been implementing Wikipedia as part of their marketing strategy for years and have reaped many of the benefits that have come from it. When it comes to marketing, Wikipedia is its own animal. It is not social media, a directory, or a news website. It has a writing style like no other and anyone can contribute to its content. This is one of the reasons many people overlook it when it comes to marketing. However, Wikipedia can be a powerful…

The post How to Include Wikipedia In Your Online Marketing Strategy appeared first on The Daily Egg.

Continue reading: 

How to Include Wikipedia In Your Online Marketing Strategy

Redux · An Introduction

Redux is one of the hottest libraries in front-end development these days. However, many people are confused about what it is and what its benefits are.
As the documentation states, Redux is a predictable state container for JavaScript apps. To rephrase that, it’s an application data-flow architecture, rather than a traditional library or a framework like Underscore.js and AngularJS.
Further Reading on SmashingMag Why You Should Consider React Native For Your Mobile App Test Automation For Apps, Games And The Mobile Web Server-Side Rendering With React, Node And Express Notes On Client-Rendered Accessibility Redux was created by Dan Abramov around June 2015.

More here: 

Redux · An Introduction

Tips and tactics for A/B testing on AngularJS apps

Reading Time: 8 minutes

Alright, folks, this week we’re getting technical.

This post is geared toward Web Developers who’re working in conversion optimization, specifically those who are testing on AngularJS (or who are trying to test on AngularJS).

Angular, while allowing for more dynamic web applications, presents a problem for optimization on the development side.

It basically throws a wrench in the whole “I’m trying to show you a variation instead of the original webpage without you knowing it’s a variation”-thing for reasons I’ll get into in a minute.

At WiderFunnel, our Dev team has to tackle technical obstacles daily: many different clients means many different frameworks and tools to master.

Recently, the topic of How the heck do you test on Angular came up and Tom Davis, WiderFunnel Front End Developer, was like, “I can help with that.”

So here we go. Here are the tips, tricks, and workarounds we use to test on AngularJS.

Let’s start with the basics:

What is AngularJS?

Angular acts as a Javascript extension to HTML, running in most cases on the client-side (through the browser). Because HTML isn’t a scripting language (it doesn’t run code), it’s limited. Angular allows for more functionality that HTML doesn’t have. It provides a framework to develop apps that are maintainable and extendable, while allowing for features such as single page navigation, rich content, and dynamic functionality.

Note: You can mimic Angular with plain Javascript, however, Angular provides a lot of functionality that a Developer would otherwise have to build themselves.

Why is AngularJS popular?

The real question here is why are JS front-end frameworks and libraries popular? Angular isn’t the only framework you can use, of course: there’s EmberJS, React.js, BackBone etc., and different Developers prefer different frameworks.

But frameworks, in general, are popular because they offer a means of providing a rich user experience that is both responsive and dynamic. Without Angular, a user clicks a button or submits a form on your site, the browser communicates with the server, and the server provides entirely new HTML content that then loads in the browser.

When you’re using Angular, however, a user clicks a button or submits a form and the browser is able to build that content itself, while simultaneously performing server tasks (like database submissions) in the background.

For example, let’s think about form validations.

No Angular:

A user submits a form to create an account on a site. The browser talks to the server and the server says, “There’s a problem. We can’t validate this form because this username already exists.” The server then has to serve up entirely new HTML content and the browser re-renders all of that new content.

This can lead to a laggy, cumbersome user experience, where changes only happen on full page reloads.

With Angular:

A user submits a form to create an account on a site. The browser talks to the server via JSON (a collection of data) and the server says, “There’s a problem. We can’t validate this form because this username already exists.” The browser has already loaded the necessary HTML (on the first load) and then simply fills in the blanks with the data it gets back from the server.

Disclaimer: If you don’t have a basic understanding of web development, the rest of this post may be tough to decipher. There is a Glossary at the end of this post, if you need a quick refresher on certain terms.

Why it can be tricky to test on Angular apps

As mentioned above, Angular acts as an HTML extension. This means that the normal behaviors of the DOM* are being manipulated.

Angular manipulates the DOM using two-way data binding. This means that the content in the DOM is bound to a model. Take a look at the example below:

Testing on Angular_2-way-data-binding

The class “ng-binding” indicates that the H1 element is bound to a model, in this case $scope.helloWorld. In Angular, model data is referred to in an object called $scope. Any changes to the input field value will change helloWorld in the $scope object. This value is then propagated down to the H1 text.

This means that, if you make any changes to the H1 element through jQuery or native JS, they will essentially be overridden by $scope. This is not good in a test environment: you cannot guarantee that your changes will show up when you intend them to, without breaking the original code.

Laymen’s terms: $scope.helloWorld is bound to the H1 tag, meaning if anything in the variable helloWorld changes, the H1 element will change and vice versa. That’s the power of Angular.

Typically, when you’re testing, you’re making changes to the DOM by injecting Javascript after all of the other content has already loaded.

A developer will wait until the page has loaded, hide the content, change elements in the background, and show everything to the user post-change. (Because the page is hidden while these changes are being made, the user is none-the-wiser.)

Tom-Davis

We’re trying to do this switcheroo without anyone seeing it.

– Thomas Davis, Front End Developer, WiderFunnel

In Angular apps, there’s no way to guarantee that all of the content has been rendered before that extra Javascript is injected. At this point, Angular has already initialized the app, meaning any code running after this is outside of Angular’s execution context. This makes it complicated to try to figure out when and how to run the changes that make up your test.

When you’re running a test, the changes that make up Variation A (or B or C) are loaded when the page loads. You can only manipulate what’s in the DOM already. If you can’t guarantee that the content is loaded, how do you ensure that your added Javascript runs at the right time and how do you do this without breaking the code and functionality?

Tom explained that, as a dev trying to do conversion optimization on an Angular application, you find yourself constantly trying to answer this question:

How can I make this change without directly affecting my (or my client’s) built-in functionality? In other words, how can I make sure I don’t break this app?

How to influence Angular through the DOM

Angular makes for a complicated testing environment, but there are ways to test on Angular. Here are a few that we use at WiderFunnel (straight from Tom’s mouth to your eyeballs).

Note: In the examples below, we are working in the Inspector. This is just to prove that the changes are happening outside the context of the app and, therefore, an external script would be able to render the same results.

1. Use CSS wherever possible

When you’re running a test on Angular, use CSS whenever possible to make styling changes.

CSS is simply a set of styling rules that the browser applies to matching elements. Styling will always be applied on repaints regardless of how the DOM is bound to Angular. Everytime something changes within the browser, the browser goes through its list of styling rules and reapplies them to the correct element.

Let’s say, in a variation, you want to hide a banner. You can find the element you want to hide and add a styling tag that has an attribute of display none. CSS will always apply this styling and that element will never be displayed.

Of course, you can’t rely on CSS all of the time. It isn’t a scripting language, so you can’t do logic. For instance, CSS can’t say “If [blank] is true, make the element color green. If [blank] is false, make the element color red.”

In other cases, you may want to try $apply.

2. Using $scope/$apply in the DOM

We’ve established that Angular’s two-way data binding makes it difficult to develop consistent page changes outside of the context of Angular. Difficult…but not impossible.

Say you want to change the value of $scope.helloWorld. You need a way to tell Angular, “Hey, a value has changed — you need to propagate this change throughout the app.”

Angular checks $scope variables for changes whenever an event happens. An event attribute like ng-click or ng-model will force Angular to run the Digest Loop*, where a process called dirty checking* is used to update the whole of the app with any new values.

If you want to change the value of $scope.helloWorld and have it propagated throughout the app, you need to trick Angular into thinking an event has occurred.

But, how?

First step: You’ll need to access the model in the $scope object. You can do this simply by querying it in the DOM.

Testing on Angular_$scope

In this example, you’re looking at the $scope object containing all models available to the H1 element. You’re looking at the helloWorld variable exposed.

Once you have access to helloWorld, you can reassign it. But wait! You’ve probably noticed that the text hasn’t changed in the window… That’s because your code is running outside the context of Angular — Angular doesn’t know that a change has actually been made. You need to tell Angular to run the digest loop, which will apply the change within it’s context.

Fortunately, Angular comes equipped with an $apply function, that can force a $digest, as shown below.

Testing on Angular_$apply

3. Watch for changes

This workaround is a little manual, but very important. If the source code changes a variable or calls a function bound to $scope, you’ll need to be able to detect this change in order to keep your test functional.

That’s where Angular’s $watch function comes in. You can use $watch to listen to $scope and provide a callback when changes happen.

In the example below, $watch is listening to $scope.helloWorld. If helloWorld changes, Angular will run a callback that provides the new value and the old value of helloWorld as parameters.

Testing on Angular_$watch

Custom directives and dependency injection

It’s important that you don’t default to writing jQuery when testing on Angular apps. Remember, you have access to all the functionality of Angular, so use it. For complex experiments, you can use custom directives to manage code structure and make it easy to debug.

To do this, you can implement an injector to apply components in the context of the app that you’re testing on. Here’s a simple example that will alert you if your helloWorld variable changes:

For more details on how to use an injector, click here.

—–

These are just a few of the tactics that the WiderFunnel Dev team uses to run successful conversion optimization on Angular apps. That said, we would love to hear from all of you about how you do CRO on Angular!

Do you use the same tactics described here? Do you know of other workarounds not mentioned here? How do you test successfully on Angular apps? Let us know in the comments!

Glossary

DOM: The Document Object Model (DOM) is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML, and XML documents

$scope: Scope is an object that refers to the application model. It is an execution context for expressions. Scopes are arranged in hierarchical structure which mimic the DOM structure of the application. Scopes can watch expressions and propagate events.

$apply: Apply is used to execute an expression in Angular from outside of the Angular framework. (For example from browser DOM events, setTimeout, XHR or third party libraries).

JSON: (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999

Two-way data binding: Data-binding in Angular apps is the automatic synchronization of data between the model and view components. The way that Angular implements data-binding allows you to treat the model as the single source of truth in your application.

Digest Loop: There is an internal cycle called $digest that runs through the application and executes watch expressions and compares the value returned with the previous value and if the values do not match then a listener is fired. This $digest cycle keeps looping until no more listeners are fired.

Dirty Checking: Dirty checking is a simple process that boils down to a very basic concept: It checks whether a value has changed that hasn’t yet been synchronized across the app

The post Tips and tactics for A/B testing on AngularJS apps appeared first on WiderFunnel Conversion Optimization.

Visit source: 

Tips and tactics for A/B testing on AngularJS apps

An Introduction To Redux


Redux is one of the hottest libraries in front-end development these days. However, many people are confused about what it is and what its benefits are. As the documentation states, Redux is a predictable state container for JavaScript apps. To rephrase that, it’s an application data-flow architecture, rather than a traditional library or a framework like Underscore.js and AngularJS.

An Introduction To Redux

Redux was created by Dan Abramov around June 2015. It was inspired by Facebook’s Flux and functional programming language Elm. Redux got popular very quickly because of its simplicity, small size (only 2 KB) and great documentation. If you want to learn how Redux works internally and dive deep into the library, consider checking out Dan’s free course.

The post An Introduction To Redux appeared first on Smashing Magazine.

See the article here – 

An Introduction To Redux