Monday, October 5, 2015

Web Trends 2015: Brush up on the Watercolor Design Trend

[caption id="attachment_116244" align="aligncenter" width="667"]Featured image: Aurora Wienhold (via Deviant Art) http://ift.tt/1rogW1g[/caption]

We’ve gathered together some of our favorite designs that rock this texturized wash. Enjoy!

“Solo” book cover by The Heads of State
“Solo” book cover by The Heads of State

Tide Retreat business cards by Bland Designs
Tide Retreat business cards by Bland Designs

Wedding invitations (via Oh So Beautiful Paper)
Wedding invitations (via Oh So Beautiful Paper)

The Great Catering Co. by Strategy Design & Advertising
The Great Catering Co. by Strategy Design & Advertising

Wedding invitations (via Ruffled Blog)
Wedding invitations (via Ruffled Blog)

Reverie Creative logo by ∞ Ines ∞
Reverie Creative logo by ∞ Ines ∞

Encens website by Julary Nguyen (via Behance)
Encens website by Julary Nguyen (via Behance)

Run Wild Photography logo by S A V
Run Wild Photography logo by S A V

Holli Thompson business cards (via Viewers Like You)
Holli Thompson business cards (via Viewers Like You

Olvi Cider by Bond (via BP&O)Olvi Cider by Bond (via BP&O)

Website for Koa
Website for Koa

Nomad Food Co. logo by sanjar
Nomad Food Co. logo by sanjar

Desert Tulip fragrance packaging from Illume
Desert Tulip fragrance packaging from Illume

Greta Madline business cards (via Daily Inspiration)
Greta Madline business cards (via Daily Inspiration)

Subway Haiku” book cover by gcano
“Subway Haiku” book cover by gcano

Evolution Fresh by Hornall Anderson (via The Dieline)
Evolution Fresh by Hornall Anderson (via The Dieline)

“2013 Year in Review” infographic by Lauren Ledbetter
“2013 Year in Review” infographic by Lauren Ledbetter

Have any favorites getting in on the watercolor design trend? Share them in the comments!

Featured image: Aurora Wienhold (via Deviant Art)

Continue reading %Web Trends 2015: Brush up on the Watercolor Design Trend%


by Kelsey Bryant via SitePoint

Scrolling Techniques for Material Design

Speed up with Materialized Views on PostgreSQL and Rails

Today I would like to talk about how to implement materialized views in PostgreSQL, utilizing them in a Ruby on Rails application.

PostgreSQL, known commonly as Postgres, is an multi-platform, open source SQL database system. It is one of the most popular database systems and second-most used open source database in the world. The development for Postgres is being done under the PostgreSQL Global Development Group. If you've never used Postgres I'd recommend trying it on your next project, it's really cool.

The tutorial is split into three parts as follows:

  1. What is a Database View.
  2. What is a Materialized View.
  3. How to add a Materialized View to a Rails application.

Continue reading %Speed up with Materialized Views on PostgreSQL and Rails%


by Vinoth via SitePoint

WP_Query Arguments: Date

In this series on WP_Query, you've been learning how to use the WP_Query class to create custom queries in your theme files or plugins.

This part of the series will take you through the arguments you can use to create both simple and complex date queries, to output posts published on, before, after or between given dates.

I'll show you what parameters are available to you and how to use them to write your queries. But first, a reminder of how arguments work in WP_Query.

A Recap on How Arguments Work in WP_Query

Before we start, let's have a quick recap on how arguments work in WP_Query. When you code WP_Query in your themes or plugins, you need to include four main elements:

  • the arguments for the query, using parameters which will be covered in this tutorial
  • the query itself
  • the loop
  • finishing off: closing if and while tags and resetting post data

In practice this will look something like the following:

The arguments are what tells WordPress what data to fetch from the database and it's those that I'll cover here. So all we're focusing on here is the first part of the code:

As you can see, the arguments are contained in an array. You'll learn how to code them as you work through this tutorial.

Coding Your Arguments

There is a specific way to code the arguments in the array, which is as follows:

You must enclose the parameters and their values in single quotation marks, use => between them, and separate them with a comma. If you get this wrong, WordPress may not add all of your arguments to the query or you may get a white screen.

Date Parameters

You can also use parameters to query for posts with a publish date on a given date. You can be as specific as you like with dates, using years and months for example to retrieve a number of posts.

You can write a simple set of arguments or you can use date_query to create nested arrays and run more complex queries. Let's start with the simpler arguments.

Simple Date Arguments

The parameters you can use to query by date are:

  • year (int): Four-digit year (e.g. 2015).
  • monthnum (int): Month number (from 1 to 12).
  • w (int): Week of the year (from 0 to 53). The mode is dependent on the "start_of_week" option which you can edit in your Settings page in the admin.
  • day (int): Day of the month (from 1 to 31).
  • hour (int): Hour (from 0 to 23).
  • minute (int): Minute (from 0 to 60).
  • second (int): Second (0 to 60).
  • m (int): YearMonth (e.g. 201502).

So imagine you're running an events site that uses the publish date for each event to denote the event start date. To want to display all events, past and future, happening in 2015, here are the arguments you'd need:

Note that I've used future and publish for the post status, as posts scheduled for a future date aren't queried by default.

Or if you wanted to automatically display events happening this year, and not update your query every year, you could first get the current year and then pass that in your query arguments:

Complex Date Arguments

To use multiple date parameters to create more complex queries, you use the date_query parameter. This gives you access to more parameters:

  • year (int): Four-digit year (e.g. 2015).
  • month (int): Month number (from 1 to 12).
  • week (int): Week of the year (from 0 to 53).
  • day (int): Day of the month (from 1 to 31).
  • hour (int): Hour (from 0 to 23).
  • minute (int): Minute (from 0 to 59).
  • second (int): Second (0 to 59).
  • after (string/array): Date to retrieve posts after. 
  • before (string/array): Date to retrieve posts before. 
  • inclusive (boolean): For after/before, whether exact value should be matched or not.
  • compare (string): An operator you use to compare data in the database to your arguments. Possible values are '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS', and 'NOT EXISTS'.
  • column (string): Database column to query against: the default is 'post_date'.
  • relation (string): OR or AND, how the sub-arrays should be compared. The default is AND.

The date_query parameter is formatted like this:

You can also create multiple arrays and define how they will be compared using the relation parameter. The below example will return queries that match the arguments in both arrays:

While the code below will fetch posts that match the arguments in either array (or both):

Let's illustrate this with an example. Let's say you're working on a college website and want to display posts from this academic year. The academic year runs from 1 September 2014 to 31 August 2015, so you'd need to find posts in the relevant months and years:

Note that the month parameter takes a string for its arguments, not an array.

The before and after Parameters

An alternative to the example above is to define the dates before and/or after which you want to display posts, using the before and after parameters. These take three arguments:

  • year (string): Accepts any four-digit year: empty by default.
  • month (string): The month of the year (1 to 12). The default is 12.
  • day (string): The day of the month (1 to 31). The default is the last day of the month.

You can also use a string for the date, as long as it's compatible with the php strtotime format.

So returning to my example of displaying posts for this academic year, I have two more options. Firstly, I could use a nested array with the year and month parameters:

There are a couple of things to note here:

  • I've used 'relation' => 'AND' because the posts need to have been published after my start date and before my end date.
  • For each of the nested arrays, I've used 'inclusive' => true to ensure that WordPress fetches posts published during September 2014 and August 2015.

I could also write this query using a string for the dates:

Note that because of the way date strings work, it's more reliable to use exclusive dates. This is because if you use a date string, this will be converted to 00:00 on that date. So to make it work, either use the time in your string as well, or do as I've done and use the day before the date you want to show posts from (and after the date you want to show posts until).

Something else you can do with date parameters is display posts published today. Going back to my events site, let's say I want to display a big banner on my home page on the day when an event is happening. I can write a query for this and then output details of the event if one is found. Here are the arguments:

Using the date() function returns the current date—I've used this three times to ensure I get the correct day, month and year. Note that I've also included the post_status argument to ensure that an event happening later today is included.

Summary

Sometimes you don't just want to query all the published posts. By using the WP_Query class you can create much more specific queries to output posts by date, including the posts you published on a given date, before a date, after a date or between a pair of dates.

The date_query arguments combine with other parameters such as post_status, which is covered in more detail elsewhere in this series.


by Rachel McCollin via Tuts+ Code

PostCSS Quickstart Guide: Grunt Setup

Lessons Learned from an Unsuccessful Kickstarter

About a year ago, I launched my first Kickstarter called Habitat, a smart home automation platform that takes everyday items in your home and connects them to the Internet and your mobile devices.

Habitat prototypes.A couple of Habitat prototypes.

We only raised 24.6% of Habitat’s funding goal (which was $80,000 CAD), so it was not successfully funded.

Here are some lessons I learned from the experience.

Ideally, You Should Already Have a Minimum Viable Product

I love this infographic on how to build a minimum viable product (MVP):

Fast Monkeys MVP infographicSource: Fast Monkeys

What it boils down to is that your MVP needs to be something that provides value, no matter how different it is from your final product vision.

When Habitat launched on Kickstarter, it was not yet a viable product at any level.

We might be stretching the truth to say that it was even a prototype.

Did we have the product development and design planned out? Yes. Could we have taken it to market by our deadline? Absolutely.

Did it look like we didn’t have a product yet? Definitely.

We had a lot of comments along the lines of Do you have any footage of the actual product working? No. We didn’t. We had bits and pieces of it working, but we hadn’t yet invested the time to bring them together as a product, minimum-viable or not.

Building an end-to-end product reveals so much you hadn’t thought of. It reveals user interaction problems you haven’t solved and features you hadn’t considered.

How minimal your product is when you launch can vary, but it has to be a product before you launch.

Somebody Has to Own It

It doesn’t matter who it is, but somebody has to own the project. I launched Habitat with a team of incredibly talented people. But they all had full-time jobs and were working on Habitat in their spare time.

Although it was a great team, the lack of ownership meant a lot of things slipped through the cracks. Although all of us liked the idea and wanted Habitat to be successful, none of us felt the ownership required to make it successful.

This lack of genuine ownership revealed itself to people looking at the Kickstarter campaign as a lack of product vision, a lack of refinement, and a lack of discipline when it came to attention to detail.

For example, when we launched, we had a number of different pledge levels, but we failed to notice that some of the levels didn’t make sense. Also, some desired combinations of features couldn’t actually be purchased because we had failed to notice that a user could only pledge once.

I don’t think there is any problem with launching a Kickstarter with a part-time team, but it is hugely beneficial to have at least one team member who’s on it full-time. This person can lead the project and the team. Just one person who truly lives and breathes the product being developed can make a world of difference.

Have a Proper Strategic Plan

When we launched on Kickstarter, funding from the platform was our plan A, plan B, and plan C. There was no fallback. There was no long-term plan that Kickstarter was a part of. Kickstarter was the whole plan.

We assumed that we would be able to adjust based on whatever happened on Kickstarter, and just go from there. The problem is that the lack of a long-term vision and plan was evident to the potential backers looking at our Kickstarter campaign.

The content on Habitat’s Kickstarter page was lacking, the product video was missing something, and so on. The people looking at our Kickstarter page wouldn’t have been able to put a finger on it, but I think they would have felt there was an overall lack of planning, which made them hesitant to get behind us.

Even if Kickstarter is your plan A, the effort spent thinking through alternatives help you refine your vision and strategy in subtle but significant ways that will seep into your marketing copy, your video content, and your visuals.

Don’t underestimate the value of strategic planning.

Be Honest with Yourself and with the Kickstarter Audience

If you’re thinking about launching on Kickstarter, ask yourself this question:

How much will it matter to me if my Kickstarter fails?

If the answer is "not much", you’re unlikely to be successful. Without a deep desire to see your product succeed, you won’t have the motivation to hone every last detail.

A Kickstarter failure should be devastating. But I wasn’t devastated when Habitat failed to reach its funding goal.

It’s also important that you’re honest with the Kickstarter audience. For the most part, we were. But there were sins of omission in some cases. We were "dishonest" simply by not telling the whole story.

For example, when we launched Habitat we had probably written 5% of the software required for the product we envisioned. A lot of the major software challenges had been solved, and there was no question we could do it. But we still weren’t completely upfront about the amount of work still to be done.

I genuinely believe that potential backers aren’t expecting a polished product before they are willing to pledge, but they are looking for a team they can trust. Be honest with them. Transparency is key.

Proof-read Everything

Because nobody felt ownership of the project, nobody took the time to go over (and over, and over, and over) the content on our Kickstarter page. Immediately after launching, we realized we had typos, grammar issues, inconsistencies, and holes in the product descriptions.

The importance of proof-reading.Can you spot an error?

It may sound silly, but we really didn’t realize how important content is.

You’re definitely going to have some friends and family that back your product, no matter how bad it is, but the vast majority of your pledges are likely going to come from people browsing Kickstarter or coming in from Web publications covering your launch.

The coverage you get and the pledges you receive are going to be heavily dependent on the quality of your content. Typos and bad grammar reveal the fact that nobody on your team is paying enough attention to detail.

Take Your Time

There are lots of articles out there on how to time your Kickstarter campaign, how to get good coverage, and other advice on launching your Kickstarter project. The only thing I’ll add to the body of Kickstarter tips that already exist is to take your time.

We decided to launch in December and run through to January. This decision was made for no other reason than because we didn’t want to wait any longer. In hindsight, we should’ve waited until after the holidays. And we should’ve invested time up front setting up media coverage.

The desire to launch quickly ultimately led to a less polished, less visible, and less covered campaign launch. So, now, I sometimes wonder if just a bit more patience would have landed us our $80K goal…

Your Turn

If you’re thinking about launching a Kickstarter, tell us about it in the comments. If you disagree with things I’ve said in this article or if you have tips for launching a successful Kickstarter campaign, why not share?

Related Content

Five Lessons Designers Can Learn from Jay-Z

Lessons We Learned from Our Biggest UX and Design Mistakes

Lessons I Learned from Selling My Web Design Agency

Ryan Brink is a software developer at LiveQoS, a mobile/Web developer, an entrepreneur, and a musician based in Canada. His latest project is GA.TODAY, a Google Analytics widget for iOS and OS X. Visit his site and connect with him on Twitter, GitHub, and Dribbble.

The post Lessons Learned from an Unsuccessful Kickstarter appeared first on Six Revisions.


by Jacob Gube via Six Revisions

5 Checks to Ensure Your Facebook Page Is Up to Date

kh-facebook-checks-560

Are you using a Facebook page for marketing? Have you checked to make sure it’s up to date? Facebook regularly provides marketers and business owners with new ways to update their presence on Facebook. In this article you’ll discover five checks to ensure your Facebook page is up to date. #1: Review Your About Box […]

This post 5 Checks to Ensure Your Facebook Page Is Up to Date first appeared on Social Media Examiner.
Social Media Examiner - Your Guide to the Social Media Jungle


by Kristi Hines via Social Media Examiner