Continuous Learning of Your iOS App Using App Center

Original Source: https://www.sitepoint.com/continuous-learning-ios-app-using-app-center/

This article was created in partnership with Microsoft. Thank you for supporting the partners who make SitePoint possible. App development is an iterative process, the work you do on version 2 of an app is largely based on the things you learned from building and releasing version 1. In order for your development efforts to […]

Continue reading %Continuous Learning of Your iOS App Using App Center%

Famous logos redesigned as fonts

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/XFYT2HoHg9Q/famous-logos-redesigned-as-fonts

A good logo design often depends on a good typeface. If you get it right, the perfect font choice can become synonymous with a brand. To show how a strong identity can remain recognisable even when you swap out the brand name, designer and teacher Emanuele Abrate has been conducting a series of interesting logo experiments.

In his experiments, Abrate has swapped out the names of brands like Adidas and YouTube for the names of the fonts they use. Speaking to Co. Design, he revealed that the project came about as he struggled to identify the typeface in a logo. "Every time I see a logo, I wonder how it was conceived, how it was designed, what kind of typeface was used and why."

The results will make you double-take. In most cases, our eyes have become so used to the font styles and logo graphics that we'll just glaze over when looking at a design that looks recognisable enough. Take a look at them by scrolling left to right with the arrow icons in the gallery below.

Related articles:

The rules of responsive web typography5 typography trends for 201850 top typography tutorials

An Introduction to Gulp.js

Original Source: https://www.sitepoint.com/introduction-gulp-js/

Developers spend precious little time coding. Even if we ignore irritating meetings, much of the job involves basic tasks which can sap your working day:

generating HTML from templates and content files
compressing new and modified images
compiling Sass to CSS code
removing console and debugger statements from scripts
transpiling ES6 to cross-browser–compatible ES5 code
code linting and validation
concatenating and minifying CSS and JavaScript files
deploying files to development, staging and production servers.

Tasks must be repeated every time you make a change. You may start with good intentions, but the most infallible developer will forget to compress an image or two. Over time, pre-production tasks become increasingly arduous and time-consuming; you’ll dread the inevitable content and template changes. It’s mind-numbing, repetitive work. Wouldn’t it be better to spend your time on more profitable jobs?

If so, you need a task runner or build process.

That Sounds Scarily Complicated!

Creating a build process will take time. It’s more complex than performing each task manually, but over the long term, you’ll save hours of effort, reduce human error and save your sanity. Adopt a pragmatic approach:

Automate the most frustrating tasks first.
Try not to over-complicate your build process. An hour or two is more than enough for the initial setup.
Choose task runner software and stick with it for a while. Don’t switch to another option on a whim.

Some of the tools and concepts may be new to you, but take a deep breath and concentrate on one thing at a time.

Task Runners: the Options

Build tools such as GNU Make have been available for decades, but web-specific task runners are a relatively new phenomenon. The first to achieve critical mass was Grunt — a Node.js task runner which used plugins controlled (originally) by a JSON configuration file. Grunt was hugely successful, but there were a number of issues:

Grunt required plugins for basic functionality such as file watching.
Grunt plugins often performed multiple tasks, which made customisation more awkward.
JSON configuration could become unwieldy for all but the most basic tasks.
Tasks could run slowly because Grunt saved files between every processing step.

Many issues were addressed in later editions, but Gulp had already arrived and offered a number of improvements:

Features such as file watching were built in.
Gulp plugins were (mostly) designed to do a single job.
Gulp used JavaScript configuration code that was less verbose, easier to read, simpler to modify, and provided better flexibility.
Gulp was faster because it uses Node.js streams to pass data through a series of piped plugins. Files were only written at the end of the task.

Of course, Gulp itself isn’t perfect, and new task runners such as Broccoli.js, Brunch and webpack have also been competing for developer attention. More recently, npm itself has been touted as a simpler option. All have their pros and cons, but Gulp remains the favorite and is currently used by more than 40% of web developers.

Gulp requires Node.js, but while some JavaScript knowledge is beneficial, developers from all web programming faiths will find it useful.

What About Gulp 4?

This tutorial describes how to use Gulp 3 — the most recent release version at the time of writing. Gulp 4 has been in development for some time but remains a beta product. It’s possible to use or switch to Gulp 4, but I recommend sticking with version 3 until the final release.

Step 1: Install Node.js

Node.js can be downloaded for Windows, macOS and Linux from nodejs.org/download/. There are various options for installing from binaries, package managers and docker images, and full instructions are available.

Note for Windows users: Node.js and Gulp run on Windows, but some plugins may not install or run if they depend on native Linux binaries such as image compression libraries. One option for Windows 10 users is the new bash command-line, which solves many issues.

Once installed, open a command prompt and enter:

node -v

This reveals the version number. You’re about to make heavy use of npm — the Node.js package manager which is used to install modules. Examine its version number:

npm -v

Note for Linux users: Node.js modules can be installed globally so they’re available throughout your system. However, most users will not have permission to write to the global directories unless npm commands are prefixed with sudo. There are a number of options to fix npm permissions and tools such as nvm can help, but I often change the default directory. For example, on Ubuntu/Debian-based platforms:

cd ~
mkdir .node_modules_global
npm config set prefix=$HOME/.node_modules_global
npm install npm -g

Then add the following line to the end of ~/.bashrc:

export PATH=”$HOME/.node_modules_global/bin:$PATH”

Finally, update with this:

source ~/.bashrc

Step 2: Install Gulp Globally

Install Gulp command-line interface globally so the gulp command can be run from any project folder:

npm install gulp-cli -g

Verify Gulp has installed with this:

gulp -v

Step 3: Configure Your Project

Note for Node.js projects: you can skip this step if you already have a package.json configuration file.

Presume you have a new or pre-existing project in the folder project1. Navigate to this folder and initialize it with npm:

cd project1
npm init

You’ll be asked a series of questions. Enter a value or hit Return to accept defaults. A package.json file will be created on completion which stores your npm configuration settings.

Note for Git users: Node.js installs modules to a node_modules folder. You should add this to your .gitignore file to ensure they’re not committed to your repository. When deploying the project to another PC, you can run npm install to restore them.

For the remainder of this article, we’ll presume your project folder contains the following sub-folders:

src folder: preprocessed source files

This contains further sub-folders:

html – HTML source files and templates
images — the original uncompressed images
js — multiple preprocessed script files
scss — multiple preprocessed Sass .scss files

build folder: compiled/processed files

Gulp will create files and create sub-folders as necessary:

html — compiled static HTML files
images — compressed images
js — a single concatenated and minified JavaScript file
css — a single compiled and minified CSS file

Your project will almost certainly be different but this structure is used for the examples below.

Tip: If you’re on a Unix-based system and you just want to follow along with the tutorial, you can recreate the folder structure with the following command:

mkdir -p src/{html,images,js,scss} build/{html,images,js,css}

Step 4: Install Gulp Locally

You can now install Gulp in your project folder using the command:

npm install gulp –save-dev

This installs Gulp as a development dependency and the “devDependencies” section of package.json is updated accordingly. We’ll presume Gulp and all plugins are development dependencies for the remainder of this tutorial.

Alternative Deployment Options

Development dependencies are not installed when the NODE_ENV environment variable is set to production on your operating system. You would normally do this on your live server with the Mac/Linux command:

export NODE_ENV=production

Or on Windows:

set NODE_ENV=production

This tutorial presumes your assets will be compiled to the build folder and committed to your Git repository or uploaded directly to the server. However, it may be preferable to build assets on the live server if you want to change the way they are created. For example, HTML, CSS and JavaScript files are minified on production but not development environments. In that case, use the –save option for Gulp and all plugins, i.e.

npm install gulp –save

This sets Gulp as an application dependency in the “dependencies” section of package.json. It will be installed when you enter npm install and can be run wherever the project is deployed. You can remove the build folder from your repository since the files can be created on any platform when required.

Step 4: Create a Gulp Configuration File

Create a new gulpfile.js configuration file in the root of your project folder. Add some basic code to get started:

// Gulp.js configuration
var
// modules
gulp = require(‘gulp’),

// development mode?
devBuild = (process.env.NODE_ENV !== ‘production’),

// folders
folder = {
src: ‘src/’,
build: ‘build/’
}
;

This references the Gulp module, sets a devBuild variable to true when running in development (or non-production mode) and defines the source and build folder locations.

ES6 note: ES5-compatible JavaScript code is provided in this tutorial. This will work for all versions of Gulp and Node.js with or without the –harmony flag. Most ES6 features are supported in Node 6 and above so feel free to use arrow functions, let, const, etc. if you’re using a recent version.

gulpfile.js won’t do anything yet because you need to …

Step 5: Create Gulp Tasks

On its own, Gulp does nothing. You must:

install Gulp plugins, and
write tasks which utilize those plugins to do something useful.

It’s possible to write your own plugins but, since almost 3,000 are available, it’s unlikely you’ll ever need to. You can search using Gulp’s own directory at gulpjs.com/plugins/, on npmjs.com, or search “gulp something” to harness the mighty power of Google.

Gulp provides three primary task methods:

gulp.task — defines a new task with a name, optional array of dependencies and a function.
gulp.src — sets the folder where source files are located.
gulp.dest — sets the destination folder where build files will be placed.

Any number of plugin calls are set with pipe between the .src and .dest.

Continue reading %An Introduction to Gulp.js%

Editorial Design: Centuro Cultural Jardín Japonés

Original Source: http://feedproxy.google.com/~r/abduzeedo/~3/a0lP6ywyQ60/editorial-design-centuro-cultural-jardin-japones

Editorial Design: Centuro Cultural Jardín Japonés

Editorial Design: Centuro Cultural Jardín Japonés

AoiroStudio
Apr 23, 2018

Let’s kick it off with a beautiful branding & editorial design by Angello Torres who is a graphic designer from Buenos Aires, Argentina. Ver Para Oír / Jardín Japonés translated to See To Hear / Japanese Garden and I simply love this project. The mixture of the culture, colours and you just gotta love that font Avant Garde who has been my go-to font for years. Check it out, this project is beautifully shown in execution and presentation.

Seeing To hear is a festival carried out within the cultural framework offered by the Japanese Garden, in which the senses of sight and hearing merge crossing each other generating new forms of perception, carried out from different sound activities and visuals. “hear colors, perceive sounds and observe silence”

More Links
Learn more about Angello Torres
Editorial Design & Branding
Editorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín JaponésEditorial Design: Centuro Cultural Jardín Japonés

editorial design
graphic design


Sharing Code Between Projects: Lessons Learned In The Trenches

Original Source: https://www.smashingmagazine.com/2018/04/sharing-code-between-projects/

Sharing Code Between Projects: Lessons Learned In The Trenches

Sharing Code Between Projects: Lessons Learned In The Trenches

Jonathan Saring

2018-04-25T14:40:51+02:00
2018-04-25T13:20:26+00:00

About a year ago, we came to a crossroad that changed the way we build software today. Like many other teams, we were working on a few things at a time, developing different projects for our web and mobile applications, with shared ingredients in the form of common Node.js code between our back-end repositoriess and microservices, and common React UI components with some slight visual and functional differences between our apps.

As our team grew and code lines multiplied, we began to realize that with every passing day we were writing the same code over and over again. Over time, it became harder to maintain our code base and develop new features with the same speed and efficiency.

Finally, we decided to find a solution that would enable us to share and sync common components of code between our projects. Here is what we learned along our journey, which eventually gave birth to Bit.

Sharing code components between projects

Code components as building blocks. (Large preview)

What if there was a web conference without… slides? Meet SmashingConf Toronto 2018 ?? with live sessions exploring how experts work behind the scenes. Dan Mall, Lea Verou, Sara Soueidan, Seb Lee-Delisle and many others. June 26–27. With everything from live designing to live performance audits.

Check the speakers →

SmashingConf Toronto 2018, with Dan Mall, Sara Soueidan, Lea Verou and many others.

Common Code In The Wild

While Git is great for collaborating on a single repository, sharing code between multiple projects can be more challenging than we think.

To get started, we looked into our own code base to learn how many times we duplicated our own integration to our user service. The unbelievable result was no less than 86 instances. After the initial shock, we started thinking that this must also be happening elsewhere.

Code shared in multiple projects

Using the same code in different places. (Large preview)

We asked some friends working in a few different organizations of various sizes to run a simple copy-and-paste detection on their code base, looking for duplicates of code longer than 100 lines. The result blew us away: On average, more than 30% of their code base was duplicated.

Finally, we decided to look deep into the open-source projects on GitHub, checking for both duplications and re-implementations of a simple isString function in the 10,000 most popular JavaScript GitHub projects.

Amazingly, we found this function was implemented in more than 100 different ways and duplicated over 1,000 times in only 10,000 repositories. Later studies claim that over 50% of the code on GitHub is actually duplicated. We realized we were not the only ones facing this issue.

Looking For A Solution

Before building Bit, we looked for a tool that would help us turn the smaller components that our apps are built from into building blocks that could be shared between our projects and synced across our code base. We also wanted to organize them and make them discoverable for our team. Here’s a short summary of what we learned.

A Micro-Package Arsenal With NPM

At first, we considered publishing all of our UI components, utility functions and smaller modules as packages to NPM. This seemed like the obvious solution for modularity for our software’s building blocks. However, we quickly learned that this solution came with huge overhead.

Trying to publish a few files from our project to NPM forced us to split our repository and create new ones just to share this code. When dealing with hundreds of components, this meant having to maintain and make changes across hundreds of repositories.

We would also have to refactor our code base, removing the newly created packages from their original repositories, boilerplating the packages in the new repositories and so on.

Even then, we had now a simple way to organize these packages and make them easily discoverable to our entire team. Another major problem was the coupling between the packages and the owners of their origin repositories, which made it nearly impossible for other people to quickly make updates to the packages while working on their own projects.

This kind of overhead was too much for us to handle. So, we quickly decided to look for a better way to share our code.

Lerna Monorepos

The next option we came up with was to use Lerna in order to refactor our code base into a few multi-package repositories, often referred to as “monorepos”.

The Hydra of Lerna

Lerna multi-package repository. (Large preview)

The upside of this solution was that it would allow us to maintain and publish all our packages from a single repository. However, this option, too, came with a set of drawbacks, particularly when working with smaller components.

Choosing this option meant we would still have to effectively keep multiple packages with multiple package.json files, multiple build and test environments and a complicated dependency tree to handle between them. Updating these packages must also go through the main repository, still making it hard to modify these package from other projects when working with a few separate monorepos.

For example, take the popular Material-UI React UI library. Even though it uses Lerna to publish five different packages from the same repository, you would still have to install the entire library to use each of its components. Making changes would still have to go through that project as well, and discoverability for these component didn’t improve.

Monorepos can be great for some cases (such as testing or building a project as a whole) and can definitely work for some teams. However, refactoring your entire code base just to share common code between projects while still having to struggle with the issues mentioned above made us drop this option as well.

Shared Libraries

This option was quickly dropped, too. In a lot of way, it resembles using a CD-ROMs instead of an iTunes playlist. First, it made no sense to force an entire library of React components and an entire utility library and so on on each of our projects.

Secondly, every project using it would be tightly coupled to the development of this library, making it impossible to adjust its components for each project. This becomes most painful when sharing common Node.js code between our microservices, which would now be coupled to the library.

Thirdly, discoverability within the library is bound to be poor and would involve a lot of work with its documentation and usage in different edge cases.

Because it makes very little sense to couple and slow down our development, we try to minimize the use of these libraries as much as possible. Even popular JavaScript utility libraries such as Lodash are working hard to make their smaller components independently available via NPM.

Git Submodules

Finally, we turned back time and looked into working with Git submodules.

You there. You're thinking about using a Git submodule. DON'T. Just don't. It's not worth it, ever.

— Jeremy Kahn (@jeremyckahn) December 16, 2012

Git enables you to make one repository a subdirectory of another repository, creating a single working tree for the entire project, so that a repository can utilize code from another repository.

As for many other teams, this solution did not last for us. First, submodules only work on the master branch, which causes problems for rapid development. Secondly, submodules increase coupling between projects, which makes it hard to work on cross-repository assignments. Finally, a submodule repository is oblivious to its own nesting and the existence of dependent repositories.

After trying these different solutions, we realized that it shouldn’t be this complicated. There really should be a simpler way to organize, share and develop components of code from different projects. So, we decided to build it, and called it Bit.

Building Bit

Our vision for a solution was simple: turn our components and modules into building blocks that can be easily isolated from any project, organized in the cloud and used in any project.

Bit sharing workflow

Isolate, share and organize your reusable code. (Large preview)

When building it, we set a few guidelines for what we needed from the project.

Make it seamless to isolate and share code components from any project, without having to create new repositories or manually configure build and test environments and dependencies for each component.
Enable two-way development, so that each component could be changed and updated from any project, while changes would be synced across our code base.
Make it simple to organize and share our components, while making them discoverable for our entire team with useful visual information.

After hard work and extensive research, in 2017 we released the first version of Bit to GitHub.

How It Works

Bit’s workflow is made of three simple steps:

The first is to simply tell Bit which components of code you would like to share from your project, and it will immediately start tracking them in all of the projects you share them in.
You can then tag a version for these components so that Bit automatically defines and locks their dependency tree for both file and package dependencies, and creates an isolated environment for each component to build and test in isolation.
Finally, you can share the components to the cloud (or your own remote server), where they will be organized, will be made discoverable and can be installed with NPM or Yarn like any other package.

You don’t have to create new repositories, split your code base or refactor a single line of code.

Now comes the really cool part. You can also use Bit to import the components into other projects for further development. Because Bit tracks your components between projects, you can simultaneously develop them from different repositories and sync changes across your code base.

This fast and distributed workflow means you won’t be tied by ownership issues, and you can actually develop the shared code and update changes from any of your team’s projects.

Let’s see an example.

Example: Bit With React UI Components

A React Hero component with Bit

A React Hero component with Bit. (Large preview)

For this example, let’s pick a common use case: syncing React UI components between apps. Although designed to be reusable, achieving such reusability can be challenging.

Let’s take an example React app on GitHub. It contains eight reusable React UI components and one global styling component. As you can see, Bit was added to the repository (see the bit.json and .bitmap files) to track these components — but not a single line of code was changed in the repository. From there, the components were shared to the corresponding scope on Bit’s free web hub.

As you can see, each of the components is now available to any developer to install with NPM or Yarn or to import into their own projects for further development.

All of the components are organized and can be shared with your team and searched for via a search engine. They are presented with visual rendering, build and test results (you can use premade external build and test environments or create your own), and come with auto-parsed docs so that you can make an informed decision on which components to use.

Once it’s changed from a different project, you can update the component’s version in the scope (which works as a remote source of truth) and sync changes between different repositories.

A short tutorial for React is available for the example project.

Conclusion

Sharing code between projects is vital to building software faster, while making your code base simpler to maintain and develop over time. As more of our applications are built using reusable components such as React and Vue UI components, Node.js modules, simple functions, GraphQL APIs and more, turning them into building blocks for different projects becomes more rewarding.

However, the overhead of splitting repositories, refactoring projects, and modifying components from different projects can make it hard to effectively collaborate and share your code. These are the lessons learned from our own journey towards simple and effective code sharing, making it simpler to share, discover and collaborate as a team while building with our common LEGO bricks.

Bit is an open-source project, so feel free to jump in, suggest feedback or ask anything. Just remember that, at the end of the day, sharing code is always about people and about growing a collaborative culture where people play together to build great things.

Smashing Editorial
(rb, ra, al, yk, il)

Recognizing and Avoiding Common Web Design Mistakes

Original Source: http://feedproxy.google.com/~r/1stwebdesigner/~3/t0ySkwadXN4/

When you design your own website, several unexpected hurdles start to emerge. You might have trouble working with custom code, or maybe your site isn’t getting the number of visitors you need. Sometimes you start to realize that the design doesn’t look all that modern, or maybe the site speed isn’t up to your standards.

More often than not, you encounter these problems after committing one of the more common web design mistakes. These are so common that even experienced web designers make them. But it’s a good idea to address these issues ASAP, so you can fix them and make your site more appealing.

So, what are the most common web design mistakes? Let’s take a look:

Making the Site Too Confusing and Cluttered

Modern, minimalist sites are all the rage today – but it’s not just a fad. There was once a time when more was considered better, where you would build a website with eye-catching flash animations and cover each page with images and text. Fortunately, we’ve learned that people are more interested in finding information fast online. They’re not interested in sifting through a confusing homepage or waiting to watch an animation or video before moving forward.

The bottom line is that your menu should have as few tabs on it as possible. It should be easy to find, and you should consider finding some beta testers to see how quickly they can move through your site. This way, you can also get feedback from real people before launching.

Making the Site Too Confusing and Cluttered

Utilizing a Poor Call-to-Action (Or None at All)

With those beta testers, you’ll quickly find out whether or not users are converting – and how fast. For instance, you might instantly realize that you don’t have a call-to-action header and button on the homepage. In that case, your users have nowhere to go. Even if you do have a call-to-action, it’s essential to constantly A/B test things like text, button colors, sizes and placement. This will give you an an idea of how people react to the CTA. Heatmaps are excellent tools for this as well.

Utilizing a Poor Call-to-Action (Or None at All)

Favoring Design Over Speed

It might sound strange to think about speed as being more important than design, but you’re not going to get many visitors to a beautiful website if it runs too slowly. Hosting has quite a bit to do with the speed of your site, so find a hosting company that can handle your traffic. In addition, you’ll want to utilize plugins, extensions and themes that are well-coded and lightweight. There’s nothing worse than choosing a theme and realizing that it’s conflicting with your site’s code or forcing your site to run slowly.

Favoring Design Over Speed

Ignoring the Needs of Mobile Devices

Since so many people use mobile devices to browse and shop online, many experts feel that a mobile-version of your site is almost more important than the regular desktop version. This means that your finished website needs a mobile version that automatically loads when a smaller device is detected. This not only makes your users happier when on phones and tablets, but Google will notice the mobile version and potentially improve your search rankings. If you’re working from a theme, make sure you test out the mobile version before buying. Most developers claim they have responsive designs, but that doesn’t mean they look or work well.

Ignoring the Needs of Mobile Devices

Filling Pages with Too Much Text

Text is great for headlines and for giving your users (as well as search engines) valuable information. However, you’re better off trying to get your message across with a combination of media and text. Think about how the experience would be more pleasant with a small paragraph paired with a video, followed by some pictures. Compare this with a homepage that consists of three or four paragraphs in a row, and it’s clear which one works best.

Filling Pages with Too Much Text

Rules to Live (And Design) By

Some rules are meant to be broken. But, most of the time, you can bet that if you avoid these mistakes you’ll be well on your way to a quality web design. If you have any questions, or would like to mention any other common web design mistakes, let us know in the comments below.


Freebie: 100 Awesome Photos from Moni’s Photo

Original Source: https://inspiredm.com/freebie-100-awesome-photos-from-monis-photo/

Moni is a young artist who loves photography. On Moni’s Photo you can download all the photos for free and use them for your personal and commercial projects.  Moni’s Photo covers various topics from business and technology to nature, animals and more.

All photos are licensed under the Creative Commons Zero (CCO) license which means you can copy, modify, distribute and use them for free, including commercial purposes.

Download the best 100 photos beneath the previews.

Get the free photo pack from here.

The post Freebie: 100 Awesome Photos from Moni’s Photo appeared first on Inspired Magazine.

Collective #409

Original Source: http://feedproxy.google.com/~r/tympanus/~3/UQbZ2BRa6GM/

C409_hotjar

This content is sponsored via Syndicate Ads
Truly understand your site visitors’ behavior

Hotjar is a quick and easy way to truly understand your visitors and identify opportunities for improvement and growth.

Try it for free

C409_cards

Cards and Composability in Design Systems

An excellent article by Nathan Curtis on structure, content, style and behavior of composed components.

Read it

C409_reactpatterns

React in patterns

A free book about common design patterns used while developing with React. By Krasimir Tsonev.

Check it out

C409_gifvideo

Replace Animated GIFs with Video

Jeremy Wagner shows how to replace large animated GIFs with lighter videos.

Read it

C409_pico

pico.js

A compact face-detection library in JavaScript with real-time detection capabilities.

Check it out

C409_slugify

Slugify

Convert a string into a slug. Useful for URLs, filenames, and IDs. By Sindre Sorhus.

Check it out

C409_sketch

Sketchize

With Sketchize you can print sketch sheets for designing apps for mobile, tablet and desktop devices.

Check it out

C409_opera

The Origins of Opera and the Future of Programming

Jessica Kerr’s fascinating keynote for Mob Programming Conference where she uncovers why great teams make great people.

Read it

C409_githublearn

GitHub Learning Lab

GitHub Learning Lab takes you through a series of fun and practical projects for building your skills.

Check it out

C409_previewwiki

How we designed page previews for Wikipedia?- and what could be done with them in the future

Read all about the new desktop page previews for Wikipedia’s readers.

Read it

C409_themevs

Syntax Theme

A free minimalist theme for Atom and Visual Studio Code inspired by Framer’s code editor.

Check it out

C409_vscandothat

VS Code can do that?!

Some very useful and interesting things you can do in Visual Studio Code.

Check it out

C409_manhattan

All the Buildings in Manhattan

An interactive 3D visualization of the all the buildings in Manhattan.

Check it out

C409_layers

Layers and how to force them

Read about some gotchas of will-change in this article by Surma.

Read it

C409_permit

Permit

An unopinionated authentication library for building Node.js APIs. By Ian Storm Taylor.

Check it out

C409_serverless

Lessons Learned – A Year Of Going “Fully Serverless” In Production

Tal Bereznitskey shares his insights on going fully serverless at Torii.

Read it

C409_reactnike

Nike React

A fantastic three.js powered campaign site for Nike where you can create your own Nike React runner. Made by the folks of DPDK.

Check it out

C409_marker

Free Font: Lazy Marker

A relaxed marker typeface designed by Luz Mariana Torres.

Get it

C409_conversion

What You Need To Know To Increase Mobile Checkout Conversions

Suzanne Scacca gives advice on how to improve checkout conversions for mobile sites.

Read it

C409_mdtall

Free Font: MD Tall

A great slim display font designed by Mariano Diez.

Get it

C409_soundeffects

BBC Sound Effects

The BBC offers more than 16,000 sound effects for free usage in personal, educational or research work.

Check it out

C409_password

From Our Blog
Password Strength Visualization

Visual feedback for password strength on an image based on Colibro’s sign up form.

Check it out

Collective #409 was written by Pedro Botelho and published on Codrops.

8 Ways to Emotionally Reward Your Users

Original Source: https://www.webdesignerdepot.com/2018/04/8-ways-to-emotionally-reward-your-users/

As sometimes happens, I was thinking the other day. In this case, I was doing my thinking after finishing a long video game: Far Cry 5. It occurred to me that video game creators are the masters of emotional payoff, when everything goes right. The world of that game is in itself rewarding and fun to run around in.

It’s actually enough fun, that I’m more than willing to ignore how the game’s story was an unrewarding, steaming pile of sadness. They made this digital faux-Montana delightful enough that I don’t want to leave. At least I intend to have a few more gaming sessions there, in any case.

That’s actually kind of impressive, when you think about it. The experience has enough emotional payoff to keep me around when I absolutely despised the central narrative. Imagine if a website (Facebook) could (Twitter) do (LinkedIn?) that (Amazon). Well they can, and they do. It’s actually not great, sometimes. But hey, you can use these powers for good.

Anyway, my point is that people want payoff for the effort they put into things, and that includes the websites they browse. You might think receiving the product or service you’re selling is the payoff, and it certainly can be. But you can build emotional rewards into just about any aspect of a website or app.

Here then, are some examples of emotional rewards that can keep people coming back:

1. Connection

Well this is the big and obvious one; it’s the entire foundation for “Web 2.0”. (Remember when everyone and their dog was writing about that? Good times.) People want to connect with other people, or failing that, fuzzy animals. You can do both on just about any site with social features, these days.

The popularity of tools designed to help us engage other human beings is staggering when compared to pretty much anything else on the Internet. And now, we can connect with people who share our interests no matter the distance. For better or worse, this is our world now.

2. Popularity & Recognition

After connection, popularity is often regarded as the second best thing. Many of the same platforms that offer a chance to connect also offer us a chance to get “Internet famous”. Offering people the chance to feel recognized isn’t just an emotional reward, it’s a business model. Again, for better or worse, this is our world, now.

3. Competition

Lastly for the social section of this article, we have competition. It’s human nature: we like kicking both metaphorical and physical butt. Offering your users a friendly way to compete with each other can drive all kinds of interaction. Just be warned: social competition often turns into a simple popularity contest, and those aren’t always great for an online community.

social competition often turns into a simple popularity contest, and those aren’t always great for an online community

4. Progress

There’s a programmer’s joke that goes something like, “Programmers love video games so much because they offer a fictional world where people give you a task, and then you complete the task, and no one changes the spec.”

In a world where life itself often feels like a Sisyphean endeavor, the feeling of making progress in any way is not to be under-valued. The mere existence of progress bars as a UI element has probably saved many a device from being smashed out of frustration.

5. Achievement

Closely related to progress is achievement: the emotion you get when you actually finish something. A sense of achievement can come from completing just about any task in this hectic day and age, with so many distractions all around. Still, the emotion is made stronger by the recognition of one’s achievements.

Even offering a quick “Hurray, you did it” after completing something annoying like a long form is a nice touch. It lets your users know that you recognize the time and effort they put into their interaction with your site, and that they could have just as easily spent that time and effort elsewhere.

6. Exclusivity

Another thing people like is having things that other people don’t have. That actually doesn’t have to be as awful as it sounds.

After all, all kinds of products come with collector’s editions, exclusive branded merchandise, and so on. Exclusive rewards are, at their best, a way of showing appreciation for the people who invest the most in you, and your product. Showing appreciation in this way can score you some life-long fans.

7. Discovery

Discovery is a tricky one. There is definitely a sense of delight in discovering new and hidden (or semi-hidden) things; but as web designers, we usually want stuff to be pretty obvious. In other words, you don’t want people to have to “discover” the “buy” button. Discovery is usually implemented with things like Easter eggs in the design, semi-obscure cultural references in the copy, and other small touches.

8. Surprises

Last, but not least, who doesn’t love a pleasant surprise? You might think this is the same as “Discovery”, but no. The surprises I’m talking about here are things you don’t have to go looking for. They’re big, they’re noticeable, and they leave users feeling like they just got something extra for free.

People love getting random extra stuff for free, be it a pixel-art “badge” on their favorite streaming site, temporary access to “premium” features on an app they use every day, a free delivery from their shopping app, or what-have-you. As the artists formerly known as Blink 182 once put it:

She left me roses by the stairs
Surprises let me know she cares

And really, that’s what rewarding your users emotionally should be about: letting them know you care, and appreciate their business. I appreciate you. You’re fantastic. I lov… ahem. It’s nice to have you around.

Add Realistic Chalk and Sketch Lettering Effects with Sketch’it – only $5!

Source

p img {display:inline-block; margin-right:10px;}
.alignleft {float:left;}
p.showcase {clear:both;}
body#browserfriendly p, body#podcast p, div#emailbody p{margin:0;}

Introducing the SitePoint Blockchain Newsletter

Original Source: https://www.sitepoint.com/introducing-the-sitepoint-blockchain-newsletter/

Whether it’s being hailed as a game-changer or derided as hype, these days blockchain is everywhere. But it’s hard to get trustworthy, unbiased news and tutorials about the tech. If you’re trying to enter the blockchain dev world, there’s a high price of entry.

This newsletter will offer a curated collection of links – news, tutorials, tool and projects – that’ll highlight some of the more interesting and exciting developments in this emerging field. These will be sourced by me, Adam. You may know me from my weekly Back-end and Design newsletters, or from Versioning, my daily newsletter focused on the bleeding-edge of web dev and design.

I promise this will be both on-the-chain and off-the-chain! Sign up here!

Name

Email

Subscribe

Still unsure? Here’s the first edition!

Bright Spark
Resources

First up, links to two programming languages for writing smart contracts on Ethereum.

Flint and

Solidity

For the latter, here’s a collection of programming patterns and best-practices

A new idea: crypto composables, allowing one non-fungible token to own another. The (useful, for me) metaphor used in the article was buying a house – you’re actually buying the title for land, the house is just part of the transaction.

Advice for those using React Create App to build DApps – the React Service Worker may trip you up.

DAppy Gilmore
Learning

An intro to a 2-month study plan for learning blockchain, and the links for the various subjects mentioned.

An intro exactly what DApps are.

5 very interesting DApps.

If you haven’t already, check out the Golem network, given it’s a very prominent example of a non-cryptocurrency application of the blockchain, here’s an intro to what that thing is.

An intro to EOS, the Epic Operating System, set to launch June 7.

A good podcast discussion of Popula, a blockchain-powered, censorship-proof(? maybe) publication.

Cryptocurrency vloggers are literally being robbed because they’re sharing waaaaay too much information about their logins, portfolios etc.

Whole Latte Love
Fun stuff

This Seattle startup is combining coffee and the blockchain and virtual reality to transform the coffee industry. Is it possible, and just go with me here, that they are maybe throwing too many things into the mix here? Just me? OK.

Finally, CryptoWorldCup is a DApp on the Ethereum blockchain that allows you to securely, transparently bet on the Russia World Cup. If you’re curious, this thread on /r/ethdev has a nice little critique of the structure of the DApp – might be handy to all y’all Dapp-ists out there.

There’s the inaugural Blockchain Newsletter! I hope it was to your liking – please, please, please let me know if you have ideas or requests for improvements. On my end, it’s fun to explore this world that I usually just glimpse and slowly back away from.

Name

Email

Subscribe

Continue reading %Introducing the SitePoint Blockchain Newsletter%