[ This is a content summary only. Visit our website http://ift.tt/1b4YgHQ for full links, other content, and more! ]
by Web Desk via Digital Information World
"Mr Branding" is a blog based on RSS for everything related to website branding and website design, it collects its posts from many sites in order to facilitate the updating to the latest technology.
To suggest any source, please contact me: Taha.baba@consultant.com
Robin Rendle looks at the current web technologies and explores what the future has in store when they are mixed with typography. It’s exciting to say the least. (robinrendle.com)
Meet Segment, the last integration you’ll ever use. Collect customer data with a single API, then send it to hundreds of different tools for analytics, marketing, and data warehousing. Write once, send everywhere. (segment.com)
Functional programming has become a really hot topic in the JavaScript world. If you are keen to level up your knowledge this post is for you. Eric Elliott explains the complex topic in an easily digestible manner. Great post. (medium.com)
I’m pretty out of my depth when it comes to containers but it is something that I’m super keen to up skill in. Oh and Docker seems to be all the rage. If you are keen to start learning then this post by Eric Chiang is tops. (ericchiang.github.io)
An awesome detailed list of performance tips put together by David Gilbertson relating to one of his recent projects. If you are keen to make fast sites then I would highly recommend you make some time to read this. (hackernoon.com)
Marco Suarez explains how Etsy are evolving their icon system to help the entire design team to create, maintain and implement icons. (medium.com)
A great list of items to consider to ensure that your response times are fast and your website loads silky smooth. (smashingmagazine.com)
If you haven’t had the time to dive into React then hopefully this eBook gives you some incentive to. Even for a seasoned React developer I’m sure you can learn a thing or two. (robinwieruch.de)
Louis Lazaris shares some of his favourite front-end tools from last year. (sitepoint.com)
As a product design team we believe in a collaborative working style with a bias towards rapid prototyping, experimentation and a strong curiosity for our customers and their needs. If that sounds like fun to you, please reach out. (zendesk.com)
After a hectic end to 2016 I finally found some time to recap the year and decided on some goals for 2017 to take WDW to the next level. (web-design-weekly.com)
The post Web Design Weekly #263 appeared first on Web Design Weekly.
Usual unit testing is based on examples: We define the input for our unit and check for an expected output. Thus, we can ensure that for a specific sample our code works right. However, this does not prove the correctness for all possible inputs. Property based testing, also called property checking, takes another approach by adhering to the scientific theory of Falsifiability: As long as there is no evidence that a proposed property of our code is false, it is assumed to be true. In this article we are using Javaslang's API for property based testing to verify a simple FizzBuzz implementation.
I am using Javaslang Streams to generate an infinite FizzBuzz sequence which should satisfy certain properties. Compared with Java 8 Streams, the main benefit in the scope of this article is that the Javaslang variant provides a good API to retrieve individual elements with the get function.
Property based testing (PBT) allows developers to specify the high-level behaviour of a program in terms of invariants it should fullfill. A PBT framework creates test cases to ensure that the program runs as specified.
A property is the combination of an invariant with an input values generator. For each generated value, the invariant is treated as a predicate and checked whether it yields true or false for that value.
As soon as there is one value which yields false, the property is said to be falsified and checking is aborted. If a property cannot be falsified after a specific amount of sample data, the property is assumed to be satisfied.
Take a function that reverses a list as an example. It has several implicit invariants that must hold in order to provide proper functionality. One of them is, that the first element of a list is the last element of the same list reversed. A corresponding property combines this invariant with a generator which generates lists with random values and lengths.
Asssume, that the generator generates the following input values: [1,2,3], ["a","b"] and [4,5,6]. The list reverse function returns [3,2,1] for [1,2,3]. The first element of the list is the last elment of the same list reversed. The check yields true. The list reverse funcion returns ["a", "b"] for ["a", "b"]. The first element of the list is not the last element of the same list reversed. The check yields false. The property is falsified.
In Javaslang the default amount of tries to falisfy a property is 1000.
FizzBuzz is a child's play counting from 1 on. Each child in turn has to say the current number out loud. If the current number is divisble by 3 the child should say "Fizz", if it is divisble by 5 the answer should be "Buzz" and if it is divisble by both 3 and 5 the answer should be "FizzBuzz". So the game starts like this:
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, ...
FizzBuzz is often taken as a sample exercise in job interviews where applicants should fizzbuzz the numbers from 1 to 100. FizzBuzz can also be used as a Kata simple enough to focus on the surroundings like language, libraries or tooling instead of the business logic.
A stream seems to be a good way to model FizzBuzz. We will start with an empty one and gradually improve it to pass our tests.
public Stream<String> fizzBuzz() {
Stream.empty();
}
From the description of FizzBuzz we can derive a first property about the FizzBuzz Stream: Every third element should start with Fizz. Javaslang's property checking implementation provides fluent APIs to create generators and properties.
@Test
public void every_third_element_starts_with_Fizz) {
Arbitrary<Integer> multiplesOf3 = Arbitrary.integer()
.filter(i -> i > 0)
.filter(i -> i % 3 == 0);
CheckedFunction1<Integer, Boolean> mustStartWithFizz = i ->
fizzBuzz().get(i - 1).startsWith("Fizz");
CheckResult result = Property
.def("Every third element must start with Fizz")
.forAll(multiplesOf3)
.suchThat(mustStartWithFizz)
.check();
result.assertIsSatisfied();
}
Let's go through it one by one:
Arbitrary.integer() generates arbitrary integers which are filtered for positive multiples of 3 using filter.mustStartWithFizz is the invariant: For a given index, the corresponding element in the stream (get is 0-indexed) must start with Fizz. The call to suchThat further below requires a CheckedFunction1, which is like a function but may throw a checked exception (something we do not need here).Property::def takes a short description and creates a Property. The call to forAll takes an Arbitrary and ensures that the invariant in suchThat must hold for all input values generated by the Arbitrary.check function uses the generator to create multiples of 3 in the range from 0 to 100. It returns a CheckResult which can be queried about the result or be asserted.The property is not satisfied, because for every generated multiple of 3 the corresponding element does not exist in the empty Stream. Let's fix this by providing a suitable stream.
public Stream<String> fizzBuzz() {
return Stream.from(1).map(i -> i % 3 == 0 ? "Fizz": "");
}
Stream::from creates an infinite stream, which counts from the given number on. Every multiple of 3 is mapped to Fizz. The resulting stream contains a Fizz for every third element. Once we check the property again, it is satisfied and the result is printed on the console:
Every third element must start with Fizz: OK, passed 1000 tests in 111 ms.
Continue reading %Property Based Testing with Javaslang%
[special]This article is a part of a new series called Startup Spotlight, where we focus on successful entrepreneurs and emerging startups that are taking the web industry by storm.[/special]
Everyone knows a thick skin is needed to handle the world of customer support. Customers have the opportunity to seek support via phone calls, emails, social media posts, live chats and more.
It’s a lot to handle, and as these technological developments continue so does the pressure for customer support managers to answer these queries as timely and efficiently as possible.
But there are only so many queries people can handle before it grows tiresome, and because we’re all human it’s impossible for anyone to work 24 hours a day, 7 days a week answering every question possible.
Cue Influx, a startup that handles customer conversations and actions for businesses of all sizes and types, responding to tens of thousands of customer queries every month.
[caption id="attachment_146031" align="aligncenter" width="1024"] Influx Co-Founders: Leni Mayo (Left) and Michael de Wildt (Right). Credit: Influx[/caption]
The company was founded by Leni Mayo and Michael de Wildt, who both faced a similar problem of having too many customer support inquiries to manage their successful side businesses. What initially began as a side project and answering customer tickets for friends eventually grew into a fully fledged business - a scenario that many startups and emerging entrepreneurs can relate to.
"One of our value propositions is that we’re elastic and we’re on demand. Clients only pay per output with us, meaning they pay when we answer to a customer," said Chief Marketing Officer Alex Holmes.
Influx changes the game by helping businesses build long-standing relationships with their customers by delivering round-the-clock, round-the-world customer support. Since its beginnings as a two person team three years ago, the company has expanded into more than 80 employees based in Australia and worldwide.
Influx’s Chief Marketing Officer Alex Holmes joined the team earlier this year after having worked with digital marketplace Envato in the past, having developed a real interest for the customer support industry.
Continue reading %Elastic and On Demand – Why Influx Is the Solution for Customer Support%
Salespeople are expensive. According to a 2007 report from Sales Benchmark Index, the average rep costs $176,848 each year (including compensation, commission, and work expenses). That comes out to approximately $287.56 per sales call.
Given these numbers, it’s no wonder many organizations are focused on cutting down—or even eliminating entirely—their sales teams.
Enter: The touchless (or self-service) model. Traditionally, a company’s marketing department would be responsible for passing a certain number of leads to the sales force every month or quarter. Once a salesperson had decided the lead was worth her time, she’d reach out to the contact and attempt to guide him through the purchasing decision.
In a touchless world, the buyer guides himself. Instead of listening to the salesperson recount the product’s benefits, he reads this information online. Rather than sitting through an online demo of the product, he signs up for a free trial or watches a product video.
Not only does the company save money, but the buyer gets to walk through the process at his own pace. It’s a win-win.
To make this possible, your interface must act as your salesperson. Incorporate some or all of these four elements to facilitate touchless sales. If you’re not ready to completely automate your sales process, these features can also help you shift some of the burden from your sales team to your website.
Before your prospect decides to evaluate your product, she needs to verify its potential impact on her life.
An ROI calculator is an excellent tool for letting potential customers calculate just that. Although most calculators show you how much money you stand to save with their company’s product or service, your calculator could compute productivity, time, efficiency, or convenience savings.
If your product has a range of benefits, you could build the calculator to display multiple returns. For example, maybe your clients typically increase their employee engagement rates by 30% and shorten their average time-to-hire by 10 days. Once a prospect has plugged in the relevant data, she could learn both her company’s “anticipated engagement increase” and “anticipated decrease in time-to-hire.”
Take a look at Trimble’s ROI calculator. It predicts how much more productive your construction crew will be as well as your return on investment for year one, two, three, four, and five.
[caption id="attachment_146557" align="aligncenter" width="1332"] Trimble ROI Calculator[/caption]
Your typical sales rep probably gets one question he’s never heard before out of every 100 questions prospects ask him. Now imagine the odds of someone asking him a question that neither he nor the salesperson sitting next to him have previously received. Those odds are pretty low.
Instead of having your sales force repeatedly give the same answers, create a knowledge base. This resource empowers potential customers: Now they can find information instantly rather than relying on a salesperson. It’s also far more efficient.
If you currently have a sales team, ask them which questions they receive most frequently. Turn each of those questions into mini articles.
If you don’t have a sales team, interview prospects to discover what they’re most interested in learning about along with the aspects that confuse them.
Segment’s FAQ section is a strong example. It’s extensive but not overwhelming; wisely, the designers decided to display less common questions in a different section. The FAQ is also well-categorized and easy to navigate. Imagine TK
[caption id="attachment_146556" align="aligncenter" width="782"] Apple Music[/caption]
For a touchless sales model to work, the prospect must discover your product’s value on her own. It’s the show, not tell, approach.
There are a couple different ways to implement this strategy. First, you can design a free trial. Apple gives new customers access to its music streaming service for three months at no charge. After that, they can either pay $9.99 per month or cancel.
The idea is simple: Customers sign up for Apple Music because it’s free, educate themselves on its features and UI, and build up their music library. Just when they’ve become hooked on the product, their free trial ends.
Continue reading %4 Ways to Turn Your Site Into Your Best Salesperson%
The following is an extract from our book, CSS Master, written by Tiffany B. Brown. Copies are sold in stores worldwide, or you can buy it in ebook form here. Attribute selectors match elements based on their attributes. This can be an attribute alone, such as [type], or it can be an attribute and value […]
Continue reading %CSS Selectors: Attribute Selectors%