Collective #412

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

C412_WOTW

Inspirational Website of the Week: Fazeta Producciones

Some interesting interaction details and a unique design. Our pick this week.

Get inspired

C412_francine

Pure CSS Francine

A piece of HTML/CSS art made by Diana Smith.

Check it out

C412_curtain

Curtains.js

Curtains.js is a light-weight WebGL JavaScript library that turns HTML elements into interactive textured planes.

Check it out

C412_Divi

Our Sponsor
Divi: A Web Designer’s Dream

Divi is the ultimate tool for web designers. Hundreds of thousands of WordPress freelancers and agencies are empowered by Divi to help run their growing businesses.

Try it now

C412_knockout

Responsive Knockout Text With Looping Video

A tutorial by Giulio Mainardi where he shows how to pull off a video text effect.

Read it

C412_githubcont

GitHub Contributions Chart Generator

Visualize your GitHub contributions with differently themed images.

Check it out

C412_bigint

BigInt: arbitrary-precision integers in JavaScript

Read all about the new numeric primitive in JavaScript that can represent integers with arbitrary precision. By Mathias Bynens.

Read it

C412_displaycontents

Display: Contents Is Not a CSS Reset

Adrian Roselli explains why using display: contents as a quick and dirty CSS reset is a terrible idea.

Read it

C412_subgrids

Grid Level 2 and Subgrid

An article by Rachel Andrew where she explains subgrids and why they’d make a good addition to the Grid specification.

Read it

C412_cards

Cards Webflow UI Kit

A clonable Webflow Style UI Kit fully developed in Webflow Designer and also available as Sketch file. By Jan Losert.

Check it out

C412_print

A Guide To The State Of Print Stylesheets In 2018

Rachel Andrew’s guide to modern print stylesheets.

Read it

C412_dropdown

Solved With CSS! Dropdown Menus

Una Kravets shows how to create CSS powered dropdown menus.

Read it

C412_lobe

Lobe

Build, train, and ship custom deep learning models using a simple visual interface. Available for beta invitations.

Check it out

C412_wireframe

Priority Guides: A Content-First Alternative to Wireframes

Heleen van Nues and Lennart Overkamp write about the drawbacks of wireframes and suggest the “priority guide” as alternative.

Read it

C412_minmax

CSS Grid: More flexibility with minmax()

Michelle Barker explores the minmax() function and shows why it’s so powerful.

Read it

C412_color

The Surprising Science Behind Color Codes

Patrick Woodhead shares some interesting facts on color codes.

Read it

C412_relaxed

ReLaXed

ReLaXed is a tool which creates PDF documents interactively using HTML or Pug.

Check it out

C412_grid

Smart CSS Grid

Smart CSS Grid is a minimal CSS Grid based responsive layout system with 12 columns.

Check it out

C412_selection

Selection

A simple and light-weight library for visual DOM selection.

Check it out

C412_flocking

Starling Simulation

A flocking simulation of starling murmuration using WebGL.

Check it out

C412_v8bigint

Adding BigInts to V8

The interesting story behind implementing support for BigInts in V8.

Read it

C412_sslgithubpages

Custom domains on GitHub Pages gain support for HTTPS

Read about how GitHub Pages are gaining support for HTTPS.

Read it

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

Costly Freelance Design Mistakes (and How to Avoid Them)

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

While being a freelance designer can be an incredibly fun and fulfilling career, it’s not without its downsides. Chief among them is that it can place those of us who aren’t experienced businesspeople into a position of having to make critical decisions. Worse yet, it’s very possible to make the exact wrong choice in any given situation.

Making the wrong choice could be as harmless as ordering the wrong paper stock on your new business cards. Or, it could be serious enough to cost you a small fortune in money, reputation or both.

Truth be told, I have made costly mistakes over my time in business (their depths go far beyond this list). I can tell you from experience that it’s not very fun. But thankfully each mistake has provided me with a learning experience. So now I’m going to pass those lessons on to you. Hopefully, they save you from having to learn the hard way.

Unauthorized Use of a Copyrighted Image

There was a time when the use of images on the web was just a matter of saving one and then doing whatever you wanted with it. It probably wasn’t smart then, but it’s really not a good idea now. With copyright trolls looking for literally the slightest excuse to send you a hefty bill for unauthorized use of an image – you’d better make sure that you have clear rights to use it (including ones that clients provide).

It’s bad enough if this happens with your own website. But it’s a whole other kind of terrible when it happens to a client’s site – and it was you who posted the image. It puts you on the hook financially and makes you look the fool (I won’t comment on any personal involvement on this one).

The Solution
Scrutinize any image you download from the web. If it’s from a stock photo site (free or premium) ensure that the license allows you to use the image for your intended purpose (commercial, for example). Some license agreements even include limits as to the image’s size when used on a website. With free images, look for the CC0 type of license. That allows you the freedom to use the image in both personal and commercial projects.

Failure to Put Agreements in Writing

Knowing that you are running a business, working without at least some form of a contract is an invitation to get stiffed on payment. For your consideration, a personal anecdote:

For a long time, I relied on the goodness of people when starting new projects. Amazingly, it worked out quite well for a number of years. Then I got burned. I started a project without getting the standard deposit – even though I knew better. And when the relationship soured, I lost out on that check. While I could have gone through the legal process to get it straightened out, in this case it was good enough just to be able to walk away from a bad situation.

The Solution
When a new client wants you to work on a project – get the terms agreed to in writing. If you usually require that a client provide a deposit, you’ll want to make sure that they know you won’t start work until you have it in your hands. It doesn’t mean that you’ll never have an issue with payment or other related troubles, but at least you’ll have it down on paper.

Taking Responsibility for Things You Shouldn’t

This one will come back to bite you over and over. And it’s especially difficult because we so often say yes to things (out loud or in our heads) in the early part of our freelancing career. But usually, the pain really starts later – well after you’ve decided that you no longer want to do a specific task.

I can share an example of this from my own experience. Over a decade ago, I had agreed to administer a promotional app on a client’s website. Essentially, it was there to send a birthday coupon out to folks who signed up to their mailing list. Sounds simple enough, right? Well, not the way I did it.

Since I didn’t have anything to tie directly into their email list that would trigger the sending of a message, I instead rigged up this ridiculous system for manually adding users to an app that would send out those coupons. Because of my foolishness, I manually checked the mailing list for new subscribers and added them to a separate coupon app – for years.

This, along with a sprinkling of other short-sighted decisions took up a great deal of time that really could have been better spent. The frustration was compounded by the less-than-ideal setup.

The Solution
Think long and hard about taking on things you really don’t want to do before saying yes. You could be living with the consequences long after. Oh, and automate everything you can!

Failure to do Your Homework

The last costly mistake in our roundup can really cost you – as in tons of time and lost revenue. It’s the failure to do enough research to provide an accurate cost estimate for a project. And the real kicker is that this sin is just as easy to commit when quoting a from-scratch website or a redesign.

So often, we see cases of “scope creep” work their way into our projects. It’s those seemingly little things that turn into a huge mess. But part of that might be because we didn’t ask enough probing questions at the beginning of the process. If we’re not on the same page with our client, we might be in for a surprise.

When it comes to redesigns, we might do a cursory scan of an old site thinking that there’s nothing major lurking underneath (especially so if a prospective client hasn’t mentioned it). So, instead of clicking through a bunch of content – we assume it’s all the same. Only when we begin working on the project do we find that key element we missed. At this point, it’s probably too late (or at least too awkward) to go back to the client and ask for more money.

The Solution
The key here is to be as thorough as possible when reviewing an existing website or going over project requirements with your client. Reviewing a website should be simple enough. It’s a matter of clicking through each and every link to see what’s there. If there’s something you don’t quite understand – ask questions. And, when going over project requirements, it’s not enough to just know what functionality the client needs. It’s also important to find out how they expect the whole process to work and any data portability needs they may have. The more information you collect, the more accurate your estimate will be.

Learning as You Go

If you’ve never been in business before and all-of-the-sudden find yourself running one, you’re bound to have some missteps. That’s a natural part of the process. As a designer or developer, we’re often focused on what we do best. Sometimes the other job requirements aren’t as apparent until something goes wrong.

The good news is that most mistakes are correctable – if not outright preventable. The best way to avoid these situations is to really think things through. Take time and review the pros and cons. Think about how a decision may impact you a year or two down the road. Over time, you may find that doing things this way will become easier. And both your bank account and sanity will be the better for it.


Deploy Fault Tolerant, Load Balanced Web Apps on Alibaba Cloud

Original Source: https://www.sitepoint.com/deploy-fault-tolerant-load-balanced-web-apps-on-alibaba-cloud/

This article was originally published on Alibaba Cloud. Thank you for supporting the partners who make SitePoint possible.

High Availability (HA), Fault Tolerance (FT), and Horizontal Scale Friendly (HSF) are equally important to functionality for web applications to run and succeed today. Existing or new web applications should be designed and provisioned with such underlying architecture. Fortunately, you can easily and promptly deploy the aforementioned architecture in the Cloud era today (compared to the on-premises bare-metal machine era)!

However, this flexibility comes with a caveat – how do you choose the right cloud provider? We are spoiled for choice and it can be really challenging (and hectic!) when evaluating and choosing the right one.

This post is intended to discuss and provide a walkthrough on deploying web applications on Alibaba Cloud from the ground up, including HA, FT, and HSF. Throughout this post, I will briefly introduce several services and tools provided in Alibaba Cloud. Yes, briefly! If you wish to learn more about particular services or tools, please visit the Documentation Center. In addition, this post will highlight the concerns and considerations when deploying such services.

WordPress is used as the demo web application that would be deployed on Alibaba Cloud in this post. The same deploying principle shall apply to many other web applications. This post is not intended to discuss on WordPress configuration at all. It shall not (and not able to) serves as reference for WordPress configuration. There are tons and tons of good resources out there regarding best practices on WordPress administrative.

1. High-level Architecture

Like many other web applications, the demo web application consists of an application layer (WordPress) and a database layer (MySQL).

Goal: Ultimately, we want an always-on web application (WordPress)!

In order to achieve such a “simple” goal, the demo web application must be deployed with the following minimum requirements:

A single main site.
A minimum of two physically separate WordPress instances on each site for redundancy and load balancing purposes.
Auto-spawning the other WordPress instance when the existing instance stops or experiences a failure.
The database instance (MySQL) must also be running in redundancy mode. It should automatically failover to the active standby instance when necessary.
Centralized dataspace. Shared resources must be accessible and available to all running WordPress instances. For example, a document uploaded by a user via WordPress should be synced across all running WordPress instances.

Fortunately, Alibaba Cloud provides a list of services and tools for us to fulfil these requirements. In this post specifically, we’ll utilize Cloud DNS (DNS), Auto Scaling Group (ASG), Server Load Balancer (SLB), Elastic Compute Service (ECS), Relational Database System (RDS), Object Storage Service (OSS), and Object Storage File System (OSSFS) tools to achieve our goal. The high-level architecture diagram for the deployed WordPress would be as following:

2. Deployment Procedures

We’ll briefly introduce the components shown in Figure 1.0 before diving into each individual configuration. As stated earlier, you would have to refer to other sources such as Alibaba Cloud online documentation for detailed explanation. The following table summarizes the description and usage of such components according to our deployment context:

Table 1: Cloud Components in Demo Deployments

Site / Region
Geographical area of the data center
1. Site for deployments

Zone
Physically isolated data center within a region
2. Used for redundancy purpose for Database

Cloud DNS
Domain name resolution and management service
3. Purchase new Domain Name4. Route traffic to WordPress instance

VPC (Virtual Private Cloud)
Virtual isolated network built for private usage
5. To group and separate resources6. To setup security control7. Assign network IP range

VRouter
Virtual routing table
8. To configure network route for provisioned resources

VSwitch
Segment virtual networks into subnets
9. To separate resources into group within specify Zone via subnet

Server Load Balancer
Distribute traffic to instances according to configured profile
10. To load balance (round robin) request among provisioned WordPress instances

Auto Scaling Group
Automatically adjust computing resources based on scaling configuration
11. Serves as watchdog to maintain the defined healthy running WordPress instances

Elastics Computing Service (WordPress instance)
Compute and process unit provided by Alibaba Cloud
12. To install and run WordPress. This is the application layer of demo deployment

Relational Database Service (MySQL)
On-demand managed database service
13. The DB for WordPress application

Object Storage Service
High availability and fault tolerance object storage
14. Centralized storage for files/objects uploaded by user via WordPress application

The workflow below describes the general steps involved in deploying a web application on Alibaba Cloud.

2.1. Identify Service Region

It’s important to decide on the region where an application should be deployed. The general considerations shall include the following:

Cost: The mother of all considerations. Yes, the cost may vary according region.
Service availability in the region? It’s not uncommon that some regions provide additional services that aren’t available in another region — you have to test to find out!
Main target users’ geographical location. It’s definitely better for user experience if the application is physically closer to the customer, resulting in shorter latency.
Rules & Regulations. Is it legally OK for the application to be hosted in the selected region?
Number of Availability Zonez. Occasionally, we need to improve application availability by deploying redundant applications in a different zone. Since I’m based in Southeast Asia, I will be looking at the Singapore and Kuala Lumpur data centers. At the time of writing, “Asia Pacific SE 3 (Kuala Lumpur)” has only a single zone while “Asia Pacific SE 1 (Singapore)” has dual zones.

After consideration, we’ve decided “Asia Pacific SE 1 (Singapore)” will be the main region for our demo deployment.`

2.2. Plan for Network Configuration
I. VPC

We have to consider the number of nodes that might potentially be running in the deployment. Each running node is subject to one private IP, and we don’t want to end up running out of private IPs for nodes in the future!

There are three type of CIDR blocks allowed by Alibaba Cloud for a VPC: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. According to Alibaba Cloud documentation, the first & last three IPs of CIDR block would be reserved by system usage, and hence the maximum number of private IPs for each CIDR block are:

10.0.0.0/8 = 16777212 (16777216 – 4)
172.16.0.0/12 1048572 (1048576 – 4)
192.168.0.0/16 = 65532 (65536 – 4)

You may also wonder, why don’t we just use the biggest CIDR block allowed to avoid potentially running out of private IP in future? The following might help you to reconsider that thought:

Bigger CIDR block may increase the complexity when dealing with IP-related configuration, such as subnet creation, route configuration, security group configuration, and etc.
If the above is not a valid show-stopper for you, then consider this: “VPC peering (interconnect)” with other VPCs doesn’t allow overlapping CIDR block. In other words, it’s not possible to peer with other VPC once you using 10.0.0.0/8 as CIDR block!

After consideration, we’ll use “192.168.0.0/16” for our demo deployment as there will only be a few running nodes within the VPC.

II. Subnet

In Alibaba Cloud, VSwitch could be used to further segment the VPC CIDR block into a subnet with a smaller CIDR block. The general consideration for segmenting subnets includes the following:

Logical grouping of instances according to functionality. E.g. grouping the application in one group and RDS in another group for easier maintainability. For example, disabling a group of instances by deleting VSwitch attached to the group.
Simplify security group profile configuration. Security rules based on the subnet CIDR block level rather than the individual instance’s IP are cleaner.
Enable Auto-scaling and Server Load Balancer monitoring and actions on a specific subnet.
Redundancy on resources. It’s possible to seamlessly failover to a different subnet that’s based in a different zone when the existing subnet’s zone encounters failure.

After consideration, we’re grouping WordPress in one subnet (192.168.1.0/24) and the RDS instance in another subnet (192.168.2.0/24).

2.3. Configure Firewall (Security Group)

Network access at the instance level could be limited via Security Group in Alibaba Cloud. The Security Group Rule configuration could be very granular, up to the per-protocol, per-port, per-client IP level. Hence, to avoid unauthorized access to the instance, we need to consider the following:

Always comply with least privilege practice. Restrict access to the required client only.
Intranet or/and internet connectivity. You can use Security Group to create a “private subnet” (no internet usage) by only allowing access for inbound intranet. In addition, a NAT gateway could be used to allow the instance in the private network to access outbound internet services.

Since we are running WordPress on Linux instances, we would at least allow an inbound rule for Port 80 (HTTP) and 22 (SSH) in Security Group. Besides that, all outbound traffic would be allowed since there’s no specific requirement on that.

2.4. Configure the Application Layer

This could be the trickiest and most uncertain decision we have to make when deploying web applications. As stated earlier, this post will not discuss an application’s capacity requirements and hence, choosing a proper instance type is out of scope of this post. Anyhow, the following considerations may assist in deciding on an instance type generally:

Always start with the Pay-As-You-Go model if you have no idea on the instance type performance nor the actual capacity requirement. This pricing model allows you to experiment with different instance types freely without a lock-in period.
You have to understand the nature of the to-be deployed application’s constraint. Is the application CPU-bound or IO-bound? You have to answer that in order to determine a proper instance type with the best cost efficiency.
Deploy with one step down instance whenever possible. If an application’s capacity requirement could be satisfied with a ‘X’ instance of a instance family type Y, it might be better if we deploy the application with two one step down instances (e.g. X/2) from the same family type for the same amount of workload. This will increase the availability of the application. For example, we can still process 50% of the workload if any the X/2 instance goes down compared with 100% downtime if the X instance is down. Of course, this approach is subject to the design and usage of the application.
Decide on other usage parameters e.g. network type, network bandwidth, operating system image, and etc. accordingly.

Since this is a demo deployment without any real production usage, we’ll go for the lowest (cheapest) ECS instance configuration. For example: General Type n1: 1-core, 1GB, Ubuntu 16.04 OS, Ultra Cloud Disk 40GB, and 1Mbps network bandwidth.

2.5. Configure the Database Layer

Generally, we have to decide between using self-managed DB instances (self-install DB at ECS instance) like what we usually do for on-premises solutions, or using fully managed RDS DB services like ApsaraDB. Again, it’s out of this post’s scope in comparing or benchmarking the two variants of database services. These guidelines may assist in choosing database variants generally:

Do you have available resources for managing and operating database instances? The management and operational tasks may include backing up data files, OS/DB patching, access control on the host machine, etc. If the answer is no, then maybe a fully managed RDS DB is preferable.
Do you need a dedicated database instance? If your database is small and the workload is minimal and able to co-exist with the application (e.g. in the development environment), perhaps the self-managed variant is preferable due to cost efficiency.
Do you need access to the underlying host for the database instance? For example, if you need to perform specific OS/DB configuration for performance-tuning purposes, then the self-managed variant shall be employed.
Does the fully-managed database service provide the DB type that you required? If no, then the answer is straightforward, go for a self-managed DB variant.
If you are concerned about possible cloud vendor lock-in, then you might want to avoid the fully-managed variant as some RDS implementations could be cloud vendor specific.

Since there is neither manpower to maintain the demo database nor any specify DB configuration, we’ll deploy the demo DB with ApsaraDB RDS – MySQL. In addition, this variant allows us to make a redundancy (active standby) database easily (with just a click!).

2.6. Identify Centralized Storage

Eventually, there could be multiple concurrent WordPress applications running on physically separate ECS instances. Each instance might generate and store certain files/image/media resulting from users’ operations. Obviously, objects that are generated by any instance would have to be synchronized across all other running application instances. One of the approaches to achieve this mentioned synchronization is through centralized storage. Objects generated shall be synchronzied to centralized storage and followed by synchronization between centralized objects and other running instances. Additionally, the centralized storage must always be available and any failure of any instance shouldn’t impact the availability and durability of centralized storage.

Alibaba Cloud provides a couple of fully managed services which could serve as centralized storage:

Object Storage Service for objects: It’s ideal as centralized object storage due to the guaranteed high availability (99.9%), scalability, and fully-managed nature. Specifically to this demo deployment, each running WordPress instance shall sync with a dedicated common Object Storage Service’s bucket. By employing such a syncing mechanism, all the running WordPress instances would have an identical set of created objects.
ApsaraDB Redis for application state: Sharing state (e.g. shared value, parameter) among running instances is possible via fully-managed ApsaraDB Redis.

A dedicated bucket in Object Storage Service would be created and used to store objects created as a result of user operations. All running WordPress instances shall sync with the relevant bucket for the list of created objects.

2.7. Plan for HA, FT, and HSF

To achieve HA, FT, and HSF in Alibaba Cloud, a web application shall be fundamentally designed as stateless and horizontally scalable. Any dependent application’s state or data shall be decoupled from the web application and migrated to centralized storage as discussed in the earlier section.

Services listed below could be employed for deploying a HA, FT, and HSF web application:

Cloud DNS: It’s possible to configure ‘A’ record types for instances hosted in different regions. It’s really useful during failover scenarios whereby an ‘A’ record of a standby instance could be enabled with one click, resulting in network traffic diversion to the standby instance.
Auto Scaling: It can be used to auto-spawn instances in a desired Zone when running instances go down or become unhealthy.
Server Load Balancer: This service would provide a health check on configured instances and report their status to the Auto Scaling service for further action. Besides that, this service would also load balance workload among running instances.
ApsaraDB RDS: RDS MySQL provides the multi-zone availability feature with just a click. It will really ease the effort required to provide HA and FT for the database.

The demo deployment will utilize DNS to route traffic to WordPress instances, Auto Scaling to ensure a minimum of two running instances in each region, and Server Load Balancer to provide a health check as well as to load balance workload. Last but not least, the Multi-Zone availability feature on RDS MySQL is enabled to provide HA and FT for the database.

2.8. Testing and Run

To test the HA and FT behavior, we may stop a running ECS manually and observe the action triggers by the auto-scaling service. If the auto-scaling has been configured properly, a new instance would be spawned automatically. Besides that, we may also manually turn off the RDS DB instance to observe the Multi-Zone redundancy failover happening. The best thing is that these actions are automatically handled by the respective services without any manual intervention. Shown below is our deployed WordPress:

Continue reading %Deploy Fault Tolerant, Load Balanced Web Apps on Alibaba Cloud%

15 Inspirational Examples of Minimal Web Design

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

Considering that the current philosophy of UI design is “less is more,” the expected rise in popularity of minimalism has reached an all-time high amongst web designers, especially in the last couple of years. But, perhaps unknowingly, its appeal to users has also grown.

The principles of minimalism in web design are that a website (and other mediums as well) should be stripped down to their bare bones, while carefully making use of whitespace and improving readability with clearer typography. When implemented correctly, the result will allow users to focus on what’s truly important without being distracted by non-essential elements.

While this may sound easy, it can be difficult deciding what the truly important elements are and what’s little more than decoration. It can also be risky. Accidentally removing a seemingly innocuous element could be deemed critical by the user and could result in the wrong message (or worse, no message at all) being delivered to your target audience.

minimal web design Rotate

Source: Rotate°

If you think about the logistics, it makes sense that minimalism appeals to users: the less fluff on the site, the less you have to think about. When there are just a few links or blocks of text, and the point of interest is directly in front of you, you can let your mind rest for a bit – relax, and the website will spoon feed you just what you need.

This collection features fifteen websites that have been designed using the minimalistic principles mentioned above. Some of the sites have also been influenced by many of the popular web design trends we have seen over that past year or so, like flat design, yet still retain a look and feel that can only be described as minimal. Here are the beautifully designed sites:

minimal web design McKennaJones.co.uk

Source: McKennaJones.co.uk

minimal web design Good Cop Bad Cop

Source: Good Cop Bad Cop

minimal web design Ballet BC

Source: Ballet BC

minimal web design Ava Sessions

Source: Ava Sessions

minimal web design Cropmark

Source: Cropmark

minimal web design Mike Guss

Source: Mike Guss

minimal web design Inside Discovery

Source: Inside Discovery

minimal web design GSArora

Source: GSArora

minimal web design Seedlip

Source: Seedlip

minimal web design The Outpost

Source: The Outpost

minimal web design We Ain't Plastic

Source: We Ain't Plastic

minimal web design Tim Brack

Source: Tim Brack

minimal web design Hatch Inc

Source: Hatch Inc.

minimal web design The Nero Design

Source: The Nero Design

minimal web design Ruslan Siiz

Source: Ruslan Siiz

minimal web design Elastique

Source: Elastique

minimal web design Chapter 3

Source: Chapter 3

Finshed

Minimalism isn’t the miracle solution that you can slap on every single project. There’s a time and place for everything; the time is now, but you need to carefully decide the place.


Why Passion Is a Key Ingredient to Freelance Success

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

Have you ever thought about why you became a web designer?  It’s one of those questions that may not have entered your mind because, it’s just who you are.

Recently, I’ve given some thought to my own path to where I am now. As a high school senior in 1995, my family subscribed to an unlimited dialup internet service. Previously, internet service had been metered by the likes of AOL and so I had been extremely limited in how much time I could spend online. But with the arrival of unlimited access, it literally opened up the world.

I mention this because, without that slow-as-a-snail dialup account, I may never have started to play around with HTML. And I probably wouldn’t have taken the time to learn Photoshop or any other graphics program.

Those items helped to spark a creative passion that I didn’t know I had. Thankfully, even through some ups and downs, it’s something that I still have over 20 years later.

Passion Led Us Here

Where Passion Begins and Ends

Creative fields like web design require a certain amount of talent. But to really succeed, I’d argue that passion is just as important.

Anyone who’s read a Dilbert comic or watched The Office knows that these fictional employees have a dearth of passion for what they do. While the stories are made up, the almost-robotic way the characters go about their jobs is something very real and relatable.

If you’re a designer who acts similarly in your daily grind, it’s hard to imagine that you’d be very creative. No, design requires a real passion to do things the right way. Without it, your work is going to suffer.

However, those who decide to take on the challenge of becoming a freelance designer often face a stark reality: There are days where it’s really hard to conjure up any passion for what you’re doing. And it’s not very surprising.

When you consider the amount of added responsibility you take on while running a business, it can weigh on you. Finances, client relations and all the stress that goes along with the gig is enough to drain anyone of excitement.

And, just like in the more creative parts of your job, facing each task with dread or ambivalence is a recipe for failure.

Where Passion Begins and Ends

Finding Passion and Purpose in Your Business

How, then, can we become passionate about the day-to-day challenges of freelance life? Let’s take a look at some fairly simple things you can do:

Embrace Reality
As it turns out, neither life nor work is 100% fun all of the time. So it makes sense to set realistic expectations when it comes to running a business. There are going to be days that, simply put, are going to stink like a closet full of rotten eggs. But, each day is an opportunity to get those creative juices flowing again.

Find a New Muse
Being creative in and of itself can stir some passion. In my own career, I’m happiest when doing design work or writing. But we can’t spend every moment on those tasks. So it’s up to us to find other things that create some mojo. It might be finding a new niche or service to offer. Or, spend some time on a different aspect of your business that brings out your best. Feeling as though you’ve done a great job can be enough to keep you going.

Learn Something
Another possibility here is to learn a new skill. Study up on that new JavaScript framework you’ve wanted to use or find a new tool to increase productivity. Just the act of learning can make things more fun. You might even find that you just can’t wait to apply this new knowledge to a project and show off your skills.

Challenge Yourself
Creating goals and challenging yourself to top them is a great way to stay in the right frame of mind. Set a goal for how many new clients you want to book in a month or even how many blog posts you want to write. Whatever it is, you’ll have something positive to focus on. Just remember to keep your goals realistic!

Don’t Overdo It
Working yourself too hard is one of the biggest soul-crushing activities for a freelancer. This is especially tough when you’re extremely busy and have deadlines to meet. But there are also times when you simply need a break. Take some time away from your desk and your phone. It can give you a more positive perspective on life.

Finding Passion and Purpose in Your Business

Make Your Work Mean Something

Finding passion in what you do will put you on the right path towards a successful freelance web design career.  The key to developing it is in finding purpose in each day – even the bad ones. How you find it is really up to you.

For instance, if you don’t have enough clients, maybe your purpose can be in making contact with a new prospect. If you’re buried under a mountain of work, you might find purpose in reaching little milestones each day.

That purpose leads to passion, which will shine through to everyone you work with. And when others can see how deeply connected you are to your work, it not only makes them want to work with you but also sing your praises to others.

The result is that your business starts to build momentum. Keep it up and you’ll find yourself in the middle of a successful career.


The New Gmail – Material Design and 8 New Features

Original Source: https://www.hongkiat.com/blog/new-gmail-material-design-and-features/

Gmail has received a major update recently, which brings the beautiful material design interface to our favorite email provider. That is not all, it introduces many requested features to help…

Visit hongkiat.com for full content.

The Best Adobe XD Mobile App Freebies for UI Designers

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

Adobe’s XD program is a direct competitor to Sketch. And while XD is still pretty new it’s catching on like wildfire.

If you’re thinking of trying Adobe XD, you can sign up for the beta and see what you think. If you really like the program, you might even keep it long term, and for that, you’ll probably want some design assets to play around with.

I’ve curated a handful of Adobe XD freebies already released on the web. All of these are editable just like PSD freebies and there’s a lot of variety to pick from.

All the Mobile UI Kits You Could Ask For


DOWNLOAD NOW

Wires for Adobe XD

wires adobe xd wireframe

The Wires Kit for Adobe XD is perhaps the best wireframing kit out there. It was designed specifically for designers by Kyle Galle, a very skilled designer in his own right.

You can grab the Wires kit for free and reuse it for all your UI projects. It comes with a massive collection of 170 mobile templates, 90 website templates, 240 different page elements and over 170 custom icons.

And yes, all of that is 100% free to download.

iPhone X Mockup & iOS 11 GUI

iphonex ios 11 xd gui

Whenever there’s a new iPhone launch you can bet designers are hard at work releasing UI kits to match. With this new Apple device GUI it nails two kits in one: the newer iOS 11 GUI along with a mockup for the new iPhone X.

It all comes in one massive Adobe XD file created by designer Jason Chuang.

The pack includes tons of sample screens that you can rework and style to suit your own application. Not to mention many of these elements should work for iOS 10 and older.

UI Prototype Screens

ui prototype screens freebie

Talented UI designer Gabriel Cambreling released these prototyping screens for general download. And they’re a great starting point for tinkering in Adobe XD.

These prototypes cover the bases for most of the screens you might plan for a mobile app. List views, login pages, maps, sliding responsive navigation along with other general page designs.

Spoon + Fork iOS UI

spoon and fork gui xd

Now for a more detailed UI kit check out the Spoon + Fork set created by Aprylle Ricafort.

This works like a mobile iOS food app with custom icons, graphics, and a beautiful color scheme. All the elements are 100% vectorized so you can resize them and rework everything if you want.

Anyone looking for a full UI kit for Adobe XD should definitely grab a copy of Spoon + Fork and keep it saved for project work.

Mobile E-Commerce Checkout

ecommerce cart xd freebie

Ecommerce shopping is huge and growing every year. A solid interface is required to increase conversions and you’ll see this mostly in the Mobile E-Commerce Checkout.

The freebie comes with 15 unique line icons and it’s fully open source including all the Google webfonts. Plus this interface basically covers the line of every page you’ll need for a trustworthy shopping app.

Piggy Bank App

piggy bank app freebie

This delightful little piggy bank app UI was released for free by designer Caio in late 2017. It’s one of the newest freebie kits on the web and it’s certainly a simple design.

This probably won’t help you prototype an entire working app, but it will help you learn the XD interface.

Check this out if you’re brand new to Adobe Experience Design and want a simple freebie to mess around with.

Facebook Messenger Bot UI

facebook messenger app gui

The Facebook Messenger app is pretty cool and lets you connect with people wherever you are. It also comes from one of the largest tech companies in the world known for designing great interfaces.

Vladimir Tatarovich’s Facebook Messenger Bot UI is a free UI kit designed around simple app interface screens.

This doesn’t exactly mimic the Facebook messenger but instead tries to rebuild using their existing style. A great starting point for designing your own mobile apps.

XD Mobile Apps

xd mobile app freebie

Here’s another pack dedicated to mobile app GUIs although this one’s a little more generic. But while the styles don’t match a particular brand, these styles are still incredibly useful.

The kit comes with dozens of custom screens including dynamic elements like graphs, checkout pages, audio/video players, ticket purchasing screens and user profiles(plus a whole lot more).

Glancing over this app UI kit you may think it’s just another simple freebie.

But this is by far one of the best freebies you can nab to mess around in XD.

Voice App Concept

voice app freebie

If you do want something real simple to get started with XD try downloading this voice app GUI by designer Ashwin Merle.

It only comes with a few screens, but they work with custom vector elements and some pretty cool text effects to boot.

Walkthrough Screens

walkthrough screens

Digital walkthroughs are crucial to the onboarding process and you should always try to work this into your applications.

If you’re looking for some XD inspiration take a look at this walkthrough screen pack that offers 5 free guided GUI screens built solely for XD. The kit is naturally 100% free and it’s a cool way to gather ideas for your app designs.

Messenger UI Kit

messenger gui kit freebie

Mobile networking is huge and messengers are crucial to every networking app. Whether you’re designing one yourself or just building a practice project, you can learn a lot from this messenger UI kit.

Designer Egor Kuznetsov released this for free and it serves a great purpose for XD users who wanna play around with messenger interfaces.

This kit offers dozens of screens and while the text is in Russian you can always change that with a bit of XD magic.

Bamb UI Kit

bamb ui freebie xd

It was tough finding quality UI kits but I think the Bamb UI really takes the cake.

No doubt this is one of the most complete UI kits you’ll find for Adobe XD. It comes with a specific design style for colors, gradients, typography, and spacing for mobile app GUIs.

Not to mention this thing is totally free, so it’s a great asset for screwing around with XD.

Wallet Mobile App

xd freebie wallet app

Banks and credit card companies usually offer mobile apps for banking on the go. If you’re working on a project like that you might grab a copy of this wallet app GUI kit for Adobe XD.

It comes with quite a few different screen styles for news, account balance info, and for moving money around. This one’s designed around a Bitcoin wallet but you could rework the style to fit anything.

So these are just my top picks for XD freebies, but new ones come out every few months.

If you have time to search around I highly recommend browsing through the free Adobe XD files on PSDDD.co to find more.


Bootstrap Card Component: a Complete Introduction

Original Source: https://www.sitepoint.com/bootstrap-card-component-introduction/

In this article, I’m going to introduce you to the Bootstrap card component and walk you through its many features and uses. By the end of this tutorial, you’ll be able to incorporate Bootstrap cards in your web projects for great layouts and page content organization.

Bootstrap is the most popular HTML, CSS, and JavaScript framework for quickly creating responsive and mobile-first web layouts.

Using Bootstrap offers many advantages to developers, including the following:

you can easily and quickly build a responsive layout by having only some knowledge of HTML and CSS
the library was built to be mobile-first from the core
it’s compatible with all modern browsers etc.
it uses Flexbox for its grid system
it provides tons of features and components.

The latest release of Bootstrap offers many new, modern features — such as the support for Flexbox, and the new card component, which replaces panels, thumbnails and wells from earlier versions of the library.

What Is the Bootstrap Card Component?

Bootstrap introduces a new UI component for creating cards which provides a flexible and stylish container for showing content. Cards come with minimal styling, but you can easily extend them with extra styling options.

This component is built on top of Flexbox, and you can use the Bootstrap spacing utility classes for margins and padding.

Cards can conveniently accommodate different types of content like title, subtitle, body copy, and images etc., and optional header and footer sections. You can also include different sections (card blocks) to construct different types of cards depending on your use.

Including Bootstrap in Your Project

You can very easily start using Bootstrap in your website by either including it from a CDN or downloading it from getbootstrap.com.

For the sake of introducing the new Bootstrap card component, you’re going to create a simple HTML page with Bootstrap styling to demonstrate the basic elements of the card component. Go ahead and create the index.html file inside your project folder, then add the following content from the docs starter template:

<!doctype html>
<html lang=”en”>
<head>
<!– Required meta tags –>
<meta charset=”utf-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1, shrink-to-fit=no”>

<!– Bootstrap CSS –>
<link rel=”stylesheet” href=”https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css” integrity=”sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm” crossorigin=”anonymous”>

<title>Bootstrap Card Example</title>
</head>
<body>
<div class=”container”>
</div>

<!– Optional JavaScript –>
<!– jQuery first, then Popper.js, then Bootstrap JS –>
<script src=”https://code.jquery.com/jquery-3.2.1.slim.min.js” integrity=”sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN” crossorigin=”anonymous”></script>
<script src=”https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js” integrity=”sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q” crossorigin=”anonymous”></script>
<script src=”https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js” integrity=”sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl” crossorigin=”anonymous”></script>
</body>
</html>

We’ve included Bootstrap files and their dependencies (jQuery and popper.js) from different CDNs, then created a container division.

Minimal Styling for Cards

In order to create a basic card, we need to —

use .card with a div tag to create the outer container
add the .card-body class to an inner div tag to create the card body
use .card-title and card-subtitle classes with heading tags for adding the title and the subtitle
use the card-text class with <p> tags to add textual content
use the card-img-top class with the <img> tag to add an image to the top of the card.

These are the basic elements that constitute a full but basic card layout, as we can see from the following example:

<div class=”card”>
<img class=”card-img-top” src=”https://source.unsplash.com/daily” alt=”Card image top”>
<div class=”card-body”>
<h3 class=”card-title”>Card title</h3>
<h4 class=”card-subtitle”>Card subtitle</h4>
<p class=”card-text”>This is a simple Card example</p>
</div>
</div>

This is a screenshot of the result:

Bootstrap card component: Basic card layout

As can be seen, the card takes the full width of its container div.

By simply switching the card-body class with the card-img-overlay class, we can use the image as an overlay:

Bootstrap card component: Using the image as an overlay

We can also use the class .card-img-bottom with the <img> tag to add the image at the bottom of the card:

<div class=”card”>
<div class=”card-header”>
This is a header
</div>
<img class=”card-img-top” src=”https://source.unsplash.com/daily” alt=”Card image top”>
<div class=”card-body”>
<p class=”card-text”>A Card with a top and bottom images</p>

</div>
<img class=”card-img-bottom” src=”https://source.unsplash.com/daily” alt=”Card image top”>

<div class=”card-footer”>
This is a footer
</div>
</div>

Bootstrap card component: Adding the image at the bottom of the card

The card top and bottom images are called image caps.

Continue reading %Bootstrap Card Component: a Complete Introduction%

How to build a chatbot interface

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/IcBeA4d9R0Q/how-to-build-a-chatbot-interface

In the mid-2000s, virtual agents and customer service chatbots received a lot of adulation, even though they were not very conversational, and under the hood they were merely composed of data exchanges with web servers. 

Nowadays, even though a huge number of examples of ‘weak AI’ exist (including Siri, Alexa, web search engines, automated translators and facial recognition) and other topics such as responsive web design are hogging the limelight, chatbots are still causing a stir. With major investment from big companies, there remain plenty of opportunities to hack the conversational interfaces of the future.

How to design a chatbot experience

Sometimes they get a bad reputation, but chatbots can be useful. They don’t need to feel like a basic replacement for a standard web form, where the user fills in input fields and waits for validation – they can provide a conversational experience. 

Essentially we’re enhancing the user experience to feel more natural, like conversing with an expert or a friend, instead of web browser point-and-clicks or mobile gestures. The aim is that by providing empathetic, contextual responses, this technology will become embedded directly in people’s lives.

Watch the video below or read on to discover a practical way to design and build a chatbot, based on a real project-intake application in a service design practice.

01. Set a personality

It’s important to ensure the chatbot’s personality reflects the company it’s representing

As this practice serves over 110,000 members globally, the goal was to provide a quick, convenient and natural interface through which internal stakeholders could request effective digital services, instead of having to fill out confusing forms.

The first step was to establish the chatbot’s personality, as this would represent the voice of the service design team to its stakeholders. We built on Aarron Walter’s seminal work on design personas. This greatly helped our team develop the bot’s personality traits, which then determined the messages for greetings, errors and user feedback.

This is a delicate stage, as it affects how the organisation is perceived. To make sure we had as much information as possible, we immediately set up stakeholder workshops to nail the appropriate personality, colour, typography, imagery and user’s flow when engaging with the bot.

After we had gained all the necessary approvals – including seeking legal counsel – we set out to convert archaic request forms into a series of back- and-forth questions that mimicked a conversation between the stakeholders and a representative of our design services team.

02. Use RiveScript

This simple scripting language provides everything you need to design and build a chatbot POC

We knew we didn’t want to get too deep into AI markup language for the processing part – we just needed enough to jump-start the experience. 

RiveScript is a simple chatbot API that is easy enough to learn and sufficed for our needs. Within a few days we had the logic down to intake a project request from the bot, and parse it with enough business logic to validate and categorise it so it could be sent it through JSON REST services to the appropriate internal project tasking queue.  

To get this basic chatbot working, head to the RiveScript repo, clone it and install all the standard Node dependencies. In the repo you can also gain a taste of the interactions you can add with the various example snippets. 

Next, run the web-client folder, which turns the bot into a web page by running a basic Grunt server. At this point you can enhance the experience to suit your needs.

03. Generate your bot's brain

The next step is to generate the ‘brain’ of our bot. This is specified in files with the .RIVE extension, and thankfully RiveScript already comes with basic interactions out of the box (for example, questions such as ‘What is your name?’, ‘How old are you?’ and ‘What is your favourite colour?’).

When you initiate the web-client app using the proper Node command, the HTML file is instructed to load these .RIVE files.

Next we need to generate the part of our chatbot’s brain that will deal with project requests. Our main goal is to convert a selection of project tasking intake questions into a regular conversation.

So, for example:

Hello, how can we help?Great, how soon do we need to start?Can you give me a rough idea of your budget?Tell me more about your project…How did you hear about us?

A typical accessible web form would look like this:

With web forms, we’re very familiar with certain patterns: you click the Submit button, all form data is sent to another page where the request is processed, and then most likely a cheeky Thank you page pops up. 

With chatbots, we’re able to take the interaction of submitting a request, and make it more meaningful.

04. Design a voice

To convert this form to a conversational user interface served in RiveScript’s chatbot web client, we need to convert the information architecture from rigid to fluid; or field labels into UI strings. 

Let’s consider some accessible field labels, and their related question tone:

Request: How can we help? Not sure? Do you mind if I ask a few questions?Timeline: How soon do we need to get started?Budget information: Can you give me a rough idea of your budget?Project description: OK, can you tell me a summary of the problem to be solved?Reference: Also, who referred you to us?

Next we need to convert the web form’s code into AI script, following RiveScript’s very learnable processing logic for two-way conversations:

05. Request submission

As opposed to standard form variables being sent to another page or service to process, chatbots can validate and submit information entered by the user in a chat window (or spoken) immediately, which means users can also revisit previously entered values easily. 

We needed to send the user’s request entered in the chatbot UI via the JSON REST API to an external project tasking server.

In RiveScript-js we are free to make use of an XMLHttpRequest object to submit the request almost simultaneously, as the data is entered by the user:

06. Do not fear the chatbot

Soon, current ways of interacting with computers to obtain information will give in to AI-based technology like chatbots, where people just make simple voice commands, like we've seen with tech such as Amazon Echo and Google Home.

The web design community need not fear – we should all be embracing the added value of this new technology. 

It could be a game-changer for the companies it works for, offering fully scalable customer service and improved customer intelligence. 

This article was originally featured in net magazine,  the world's best-selling magazine for web designers and developers. Subscribe here.

Related articles:

How chatbots are learning – interview with Giles ColborneHow the intelligent web will change our interactionsHow conversational interfaces are innovating banking

The Startup Button Lets Discover New Startups with Just A Click

Original Source: https://www.hongkiat.com/blog/startup-button-randomizer/

Free gallery of fresh startup companies that you can browse through to take a look at their work and new projects.

The post The Startup Button Lets Discover New Startups with Just A Click appeared…

Visit hongkiat.com for full content.