Desktop Wallpaper Calendars: May 2016


  

We always try to challenge your artistic abilities and create some interesting and inspiring artwork. As a matter of fact, we discovered the best source for inspiration: desktop wallpapers that are a little more distinctive than the usual crowd.

Desktop Wallpaper Calendars: May 2016

This creativity mission has been going on for eight years now and, like every month, artists and designers from across the globe got their creative juices flowing to produce desktop wallpapers for you to indulge in. The wallpapers all come in versions with and without a calendar for May 2016 and can be downloaded for free. A big thank-you to everyone who contributed their works! Now, could there be a better occasion to freshen up your desktop?

The post Desktop Wallpaper Calendars: May 2016 appeared first on Smashing Magazine.


Source: Smashing Magazine

3 Alternative App Monetization Options to Paid Downloads

Now that you’ve developed your amazing and ground-breaking app, it’s time to make a return on the sizable investment of resources expended during the design and development.

App monetization can be tricky. You want to achieve the highest number of downloads possible, so keep the barrier to entry low by offering your app for free. Or you have to make up for the lack of download revenue with ads, subscriptions or another monetization option. These can all annoy your users if implemented without care.

By providing alternative monetization options, you have a better chance of making sales and receiving a high amount of downloads. Aside from traditional advertising and alternative app stores to sell your app, the following models have been successful at driving revenue without ads.

Continue reading %3 Alternative App Monetization Options to Paid Downloads%


Source: Sitepoint

How to Use JSON Data Fields in MySQL Databases

In my article SQL vs NoSQL: The Differences I mentioned the line between SQL and NoSQL databases has become increasingly blurred with each camp adopting features from the other. MySQL 5.7 InnoDB databases and PostgreSQL 9.4 both directly support JSON document types in a single field. In this article we’ll examine MySQL’s JSON implementation in more detail.

(PostgreSQL supported JSON before version 9.4 and any database will accept JSON documents as a single string blob. However, both now directly support validated JSON data in real key/value pairs rather than a basic string.)

Just Because You Can Store JSON…

…it doesn’t follow you should.

Normalisation is a technique used to optimize the database structure. The First Normal Form (1NF) rule governs that every column should hold a single value — which is clearly broken by storing multi-value JSON documents.

If you have clear relational data requirements, use appropriate single-value fields. JSON should be used sparingly as a last resort. JSON value fields cannot be indexed so avoid using it on columns which are updated or searched regularly. In addition, fewer client applications support JSON and the technology is newer and possibly less stable than other types.

That said, there are good JSON use-cases for sparsely-populated data or custom attributes.

Create a Table With a JSON Field

Consider a shop selling books. All books will have an ID, ISBN number, title, publisher, number of pages and other clear relational data. Presume we want to add any number of category tags to each book. We could achieve this in SQL using:

  1. a tag table which stored each tag name against a unique ID, and
  2. a tagmap table with many-to-many records mapping book IDs to tag IDs

It’ll work but it’s cumbersome and considerable effort for a minor feature. Therefore, we’ll define a tags JSON field in our MySQL database’s book table:

[code language=sql]
CREATE TABLE `book` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`tags` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
[/code]

Continue reading %How to Use JSON Data Fields in MySQL Databases%


Source: Sitepoint

Starting a Business with Laravel Spark

I am really excited about Laravel Spark. By the time you read this, there will probably be a multitude of posts explaining how you can set it up. That’s not as interesting to me as the journey I’m about to take in creating an actual business with Spark!

The idea is simple. I have created a Pagekit module which you can use to back up and restore site data. The module makes it easy to store and download these backups, and restore them on different servers.

The trouble is, getting those backup files to the remote server takes time and a bit of hassle. I have often wanted a way to quickly and painlessly transfer this application state from one server to another, and make automated offsite backups. So I’m going to set that up for myself, and perhaps others will find it useful enough to pay for it.

Spark splash screen

Getting Started

I’m using Stripe, and intend to have a single plan with no trial. The setup for this is quite easy, but I’ve made a note of the plan ID. I’ll need that to set the plan up in Spark…

Stripe welcome screen

Next, I reset my secret and public Stripe keys and update to the latest API (through the same screen, https://dashboard.stripe.com/account/apikeys).

I forgot that the settings in .env do not automatically reload while the Laravel development server is running, so I was getting needlessly frustrated at the keys which wouldn’t seem to update.

Spark has a few expected registration/profile fields, but I want to add a few more. I would like to ask users if they would like automatic backups and I’d also like to collect their billing address, so I can show it on their invoice. First I’ll have to create a migration for the new field:

php artisan make:migration add_should_backup_field

To do this, we can add the column (making sure to remove it if the migrations are rolled back):

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

class AddShouldBackupField extends Migration
{
    public function up()
    {
        Schema::table("users", function (Blueprint $table) {
            $table->boolean("should_backup");
        });
    }

    public function down()
    {
        Schema::table("users", function (Blueprint $table) {
            $table->dropColumn("should_backup");
        });
    }
}

Continue reading %Starting a Business with Laravel Spark%


Source: Sitepoint

How to Authenticate Users With Twitter OAuth 2.0

In this tutorial, you will learn how to use Twitter API 1.1 and OAuth 2.0 to authenticate users of your application and publish a test tweet.

Why Do We Need an Authentication Framework?

To create services which act on
behalf of users’ accounts and make it really secure and easy to
develop, we need three things:

  • Twitter application
  • REST API
  • access to the user account

To put the pieces together into a working mechanism, we need an authentication framework. As a Twitter standard, the REST API
identifies Twitter applications and users using OAuth.

What Is OAuth?

According to oauth.net, OAuth is:

An open protocol to allow secure
authorization in a simple and standard method from web, mobile and
desktop applications.

OAuth is the most common authorization framework today, and it is used on most common web applications and services, like GitHub, Google, Facebook, and, of course, Twitter.

This framework allows users to grant you permission to act on their behalf without sharing the account password. After the user has given permission, OAuth will return you a token. This token itself grants access to make requests on behalf of the user.

Tokens from Twitter do not have an expiration time, but they can become invalid after the user has rejected your application. Also, the Twitter crew can suspend your application if you are exceeding limits or performing other actions that violate the API Terms. You can review these terms to find out more about specific violations.

Create Your Application

As a first step, we need to set up a new
Twitter application. Let’s create a new application on the application
management page
.

Twitter Apps

After logging in, you need to click the Create New App button and fill in the form with your application details:
name, description, website and callback URL.

What is the callback URL? When users accept our application to use their account, the browser will deliver them to this URL with the OAuth verifier in GET. And we will use this verifier to get the user access token.

Create an application

Notice: Don’t forget to replace the website
and callback URL with your public domain when you share your
application with real users.

After filling in the form, you can sign the Developer Agreement and click the Submit button to create your
application.

OAuth Test Homepage

Congratulations! Now you have access to a page where you can look at the details and edit settings of your new application,
change permissions and manage keys and access tokens. Navigate to the Keys and Access Tokens tab and find the Consumer Key and Consumer SecretWe
will be using them shortly.

Start Coding

Choosing a Library

Before starting to code, we need to
choose a library to work with Twitter API and Oauth 2.0. You can get an overview of the existing libraries on the Twitter developers page. In this
tutorial I will use TwitterOAuth as the most popular and easy to use. We
can install it from the command line with Composer:

The Config File

Let’s create a new file named config.php to store all static data. Specify the following details in your application.

Start the Login Script

Now create a new file named twitter_login.php and include Composer autoload, TwitterOAuth library, start session, and import the settings of our application from the config file.

Request Auth

In this part we need to request the user to authorize our application. To reach this goal we will create an object of the TwitterOAuth class, request a token of the application from the Twitter API, get the URL of the authorize page using this token, and redirect the user to this page.

Make a note that we are saving application tokens to the session, because we will need them in the next step.

Now you can run this script in the browser, and if everything goes well, you will be redirected to the Twitter API page with something like this:

Twitter Authorization

You will be redirected to the callback URL by clicking the Authorize app button. But not so fast—first we need to create a callback script.

Get the User Token

Our next step is to create a callback script. Let’s create a new file named twitter_callback.php and include the TwitterOAuth library, config file, and start session as we did in the previous part.

Then we will check if we received an auth verifier parameter from the Twitter API. If something is missing, we will redirect the user to log in again.

The next step is to connect to the Twitter API with the application token and request a user token using the OAuth verifier:

And now you’ve got the user token stored in the $token variable.

How to Use This Token

We can use this token to act on behalf of the user’s account. We can store it in the session or save in the database to manage the user account next time without requesting permission. To connect to the Twitter API with the user token, you just need to do this:

Create a Test Tweet

To create a new tweet from the user’s account, we need to add just a little piece of code:

Also you can get details of the status from the answer of the API stored in the $status variable.

Finally, we are ready to test our script. 

Sample Tweet

Conclusion

As you can see, creating a Twitter
application is not so hard. Now you have all the API features to use: you
can create new tweets, upload media, manage friendships and so on.

Keep in mind that now you can collect OAuth tokens and you have great power to act on behalf of your users. But with great power comes great responsibility—that’s why you need to handle this situation gracefully and serve a quality user experience.

If you have questions or feedback, feel
free to post them in the comments section. I’ll be looking forward
to it and will try to answer each of your comments.

Further Reading and Related Links

Note that I’ve prepared a full project for this tutorial on GitHub, and you can take a look at it with a link on the right side of the site or using this link.


Source: Nettuts Web Development

Web Development Reading List #135: Boxy SVG, How To Keep Up, CSS Frameworks


  

After spring has started marvelously, this week brought us some snow again. But today, the sun is shining, it’s getting warmer, and nature is flourishing. Inspired by the fresh green of spring, I’d like to announce The Evergreen List.

Una Kravets found a neat way to create visual diffs using CSS blend modes.

This is a sub-part of my reading list, collecting important links that stay relevant over a longer time so that you can find them more easily. Give the page a try and if you have feedback, just email me.

The post Web Development Reading List #135: Boxy SVG, How To Keep Up, CSS Frameworks appeared first on Smashing Magazine.


Source: Smashing Magazine

Sourcehunt Design April: How About Adding Fedora to Your CV?

After taking a break in March, we are back with Sourcehunt Design for a little spring cleaning! This month, unlike before, we are going to focus solely on 2 major open source projects exclusively: Mozilla and Fedora.

Both projects are major players in the open source world, yet have some of the healthiest communities among open source projects, which leads us also to the design aspect here. Both projects are quite inclusive for new contributors to get involved.

Let’s have a look.

Mozilla Community Design

Mozilla Community Design

Design at Mozilla has been usually an employee specific field for the Firefox creators. It has always been kind of unofficial for volunteers to do design work, and that most of the times happened when approached directly by employees.

However, this has changed in the recent months when the Community Design repo has been introduced. With its inception, both employees and volunteers from Mozilla projects could request design help with projects of theirs or chime in to help other contributors with their requests. I have recently wrote on my blog about the initiative also.

Let’s have a look at this process and how you can get involved in a Mozilla project.

GitHub Repo

You can find the Mozilla Community Design repo on GitHub, part of the Mozilla organization. You will be greeted with an introduction on how the design processes work. A little below, you will find the template for filing issues, so all needed details are included properly when filing requests.

Make sure to check out the tutorial in case you stumble upon any issues (no pun intended).

GitHub Repo

However, we are going to focus here on contributing to design at Mozilla, not requesting design help, so let’s have a look at a good example of a design issue from Mozilla, which I’ve personally completed recently. The Tranvision team is in need of a logo for their software, which is a translation memory web application created by the French Mozilla community and now maintained by both staff from Mozilla and volunteers.

Pascal Chevrel has created a very clear brief on how he envisions the logo, yet is also giving enough creative freedom to any designer who wants to take this on. Some back and forth discussions helped resolve the request and the logo can be seen live on the Tranvision website. It’s that simple!

After you finish a request, chances are you will be asked for the final exported files. Feel free to link to them in the corresponding GitHub issue. However, in true open source fashion, push them also to a new folder in the repo itself (or create a pull request for it). Here is a good example of the Mozilla Netherlands logo I created.

Communications

Once a month, the Community Design group meets on Vidyo, Mozilla’s organization-wide video-conferencing tool. Everyone is free to join, no matter if already contributed or not. This, in fact, is a very rewarding experience itself, as Mozilla’s Creative Team is usually present as well. The meeting happens every second Thursday of the month, at 5:15 to 6PM UTC. You can find the meeting notes on the meeting’s Etherpad.

Furthermore, there is a very helpful video if you need more help on getting involved in the GitHub repo. Feel free to also add more questions on the Mozilla Discourse if you are stuck at some point.

There is also a public Telegram group, where members chat.

Fedora Design

Fedora Design

As a popular open source Linux-based operating system, designed to offer a secure and general purpose experience. Fedora is said to be the second-most commonly used Linux distribution, after Ubuntu. There are over a hundred distributions based on Fedora, including Red Hat Enterprise Linux (RHEL)which also sponsors the Fedora Project.Here is a broader overview of what Fedora stands for.

Unlike the rather new Community Design initiative at Mozilla, Fedora’s Design processes are rather established for quite some time now. As one of the major Linux distributions, Fedora prides itself on being a FOSS distribution that focuses on innovation and close work with upstream Linux communities. This can be also seen on the Fedora Design team: design processes work completely in the open, with a transparent issue tracker, biweekly meetings, a wiki and similar.

However, it is to be noted that Fedora officially uses Free/ Open Source Software for their design needs as well. That means that instead of Adobe Photoshop or Illustrator, GIMP or Inkscape is used for all design related tasks. This is not a strict requirement though in the beginning, as the Fedora Design team is welcoming new contributors and assists them to get involved. Eventually, you will use GIMP and/or Inkscape in this process, though. I myself am a contributor at the Fedora Design Team, which helped me improve my Inkscape skills as well. Don’t be afraid to give it a try!

Fedora Account System (FAS)

The Fedora Account system is the organization-wide authentication system for everything Fedora. With a single account, you get access to all internal Fedora services and platforms (it’s also based on free and open source software, so you don’t need to worry about your privacy or security should you decided to disable your account at some point). Feel free to create one on the FAS website for the next steps.

Wiki

The first resource you should look up, is the Fedora Design Team wiki page. Here you will find everything you need to get started in various contribution areas, including web design, mockups, artworks stickers and more.

One of the most interesting projects (to me at least) is Fedora Badges. ‘Badges’ is a playful rewarding system, which recognizes active Fedora contributors for certain tasks. The more tasks you complete within the Fedora Project, the more Badges you receive.

Badges

That being said, designing badges is a great low entry contribution path to Fedora Design. If you want your designs to be part of the 2nd most used Linux distributions, you should probably start here, with Badges.

To kick off, check out the Badges Tracker which advises you where to go next. The design resources are also extremely helpful (I find myself constantly coming back here), however, you should have a look at the Badge style guide first, before you get your hands dirty.

Continue reading %Sourcehunt Design April: How About Adding Fedora to Your CV?%


Source: Sitepoint

Quick Tip: Try WebAssembly in Your Browser Today

In June 2015, inventor of JavaScript and co-founder of Mozilla, Brendan Eich, announced something very exciting for the web: WebAssembly.

Eich explains that JavaScript has been dubbed as the assembly language of the web, something which he disagrees on and goes on to introduce WebAssembly, “a new intermediate representation for safe code on the Web“, as he describes it. Google, Microsoft, Mozilla, Apple and some other folks have been experimenting on it before Eich’s announcement.

WebAssembly, “wasm” for short, .wasm filename suffix, is an emerging standard whose goal is to define a safe, portable, size- and load-time efficient binary compiler target which offers near-native performance—a virtual CPU for the Web.

Why the need for WebAssembly? Well, asm.js requires the engines to optimize for it, making the parser the hot spot (literally – mobile devices can get really hot). This is due to the need for transport compression which also saves bandwidth, but decompressing it before parsing can be painful. Also, once browsers support the WebAssembly format natively, JavaScript and wasm can diverge, without introducing unsafe or inappropriate features into JavaScript just for use by compilers sourcing a few radically different programming languages.

Auth0 explains WebAssembly pretty well in this post, if you need a better overview.

WebAssembly – One Year Later

WebAssembly is designed with several use cases in mind, inside and outside the browser. As you can guess, wasm can be used for image/video editing, AAA games in the browser, live augmentation, Virtual Reality and so much more. Pretty much everything that is already possible on the web, but with the potential to be faster and more efficient. But WebAssembly can be also useful outside the browser: server side applications, hybrid native apps, server side computing of untrusted code are just some of the potential applications.

The roadmap is also going well. In the last year, the WebAssembly Community Group has made a great amount of progress, producing:

Continue reading %Quick Tip: Try WebAssembly in Your Browser Today%


Source: Sitepoint

The Ultimate WordPress Development Environment

WordPress development has come a very long way in recent years when it comes to tooling. In the past, developing a WordPress website required some sort of MAMP/WAMP localhost setup and almost always, a rather painful headache. Maybe you’re even one of those developers who developed their website on a live environment – I was.

Luckily, times have changed and there are now tools that help take the headache and repetitiveness out of building WordPress sites on your computer.

In December last year, after 3 years of being almost completely devoid of any WordPress development, I became a full time WordPress developer again. Before that 3 year stint in the payments industry, I was a full time WordPress contractor.

Being out of an industry for 3 years, gave me a unique perspective on how fast things change in computing and more specifically, web development. WordPress development is no exception.

You see, when I returned to WordPress development in December last year, I decided to look at setting up the perfect WordPress development environment. I was pleasantly surprised to see that the tooling around WordPress had advanced so much that it was much like trading in a Ford for a Ferrari.

I was excited, and still am of course, to explore all the tools and in today’s article I’m going to share with you a summary of what I have learned. Hopefully it will help you tweak your current environment and implement some of the tools that are available to you.

It Starts with the Server

To begin with, the most important piece in the WordPress development environment puzzle is the server. Without a server, we can’t do anything.

There are so many different options available today to host WordPress websites on your local environment that it gets tricky to know which one to use.

I’m going to suggest that you drop MAMP/WAMP/XAMP and start using a virtualized development environment.

Why? There are so many reasons:

Continue reading %The Ultimate WordPress Development Environment%


Source: Sitepoint

7 eBay Alternatives for eCommerce Sellers

When you are looking for a place to sell your stuff, eBay is probably the first marketplace that comes to mind. It is the largest and probably best-known marketplace in the world, but this doesn’t mean it is the best choice for you.

[author_more]

As good as eBay is, it’s hard to ignore its disadvantages. It’s crowded, sellers are frequently banned for little or no reason, disputes are settled in buyers’ favor, and so on. All these reasons will certainly discourage potential sellers – who wants to invest their time and money in such an uncertain environment?

I myself considered selling on eBay but after a preliminary research, I totally gave up the idea. Instead, I started researching for alternatives and this is what inspired this article.

There are quite a lot of eBay alternatives and I recommend you try a few. As I frequently say, don’t put all your eggs in one basket – i.e. you’d better sell on multiple marketplaces than focus all your resources on only one.

It’s up to you (and the type of your product) to choose which ones to start with. The basic rule is that the larger marketplaces attract more buyers but the smaller marketplaces could prove a better option because generally there isn’t that much competition.

In addition to listing your products on some marketplace, setting your own online store is always an option. However, it’s hardly the easiest and cheapest one. While you certainly have more control with your own site, calculate all the money and effort you have to put into setting the store up, maintaining it, and promoting it in order to make it successful and it turns out an established marketplace is a better choice, at least in the beginning.

Here are some other eBay alternatives for you to consider.

1. Amazon

Amazon

While many will argue Amazon it’s not an eBay alternative at all because it shows some of the symptoms that push sellers away — i.e. outrageous commissions, shops closed at whim, etc. — you can’t deny Amazon is a huge marketplace where you can sell almost everything you can think of (provided it’s legal, of course).

It’s not an exaggeration to say Amazon is an institution. Don’t expect to go to the site and start selling right away. There is a lot of stuff to read before you can start selling. For instance, you need to consider the type of account (Professional Seller, Vendor, Manufacturer and Distributor, etc) to open because there are a couple of them and each has different perks.

You also need to consider what to sell. In addition to a huge variety of products you can sell on many other sites, some of the unique aspects of Amazon are that you can sell services and

self-publish. None of the other eBay alternatives on the list offer this.

As for payment, shipping, and commissions, these vary depending on the product and the type of account. Here are the general rules for shipping and delivery and for payment, pricing and promotions. You might also want to check fulfillment by Amazon.

In other words, if you decide to sell on Amazon, be prepared to spend days or even weeks researching how the system works. It really offers huge opportunities but it’s not for beginner sellers. If you are new to online sales, you’d better start with easier places.

2. eBid

eBid

eBid is another huge marketplace, though not as big as eBay or Amazon. It looks really promising! It’s not new – it has been around since 1999 but it grew exponentially in the recent years. One of its great features is that you can import items from Amazon, eBay and other marketplaces, which coupled with its bulk upload functionality is a huge timesaver.

eBid is a universal marketplace. It has more than 13,000 categories of products across all product groups – from books and tech, to clothes and household items. You can also sell wholesale.

I love that commissions are stated clearly on its homepage and a potential seller doesn’t have to browse through countless pages to get this vital data:

“It’s always free to list and only 3% sales fee. Want 0% sales fee for life? Upgrade to seller+lifetime for just €49.99.”

eBid offers Seller and Seller+ accounts. As for payments, they work with PPPay, PayPal, Skrill, and of course credit cards. All in all, for most products eBid is the best eBay alternative.

3. Rakuten

Rakuten

Rakuten is another global marketplace. It’s huge in Japan but it is popular in many other countries as well. In the past I made some affiliate sales for them but I have no personal experience as a seller there. Rakuten is a universal site with goods in any category you can think of – books, personal stuff, tech, household items, etc.

If you are looking for a cheap place to sell, Rakuten is not an option for you. Compared to sites where listings are free and commissions are small, Rakuten’s pricing options are outrageous but if you manage to sell volumes there, it might turn out a better option than sites with no fees (and no buyers).

Similarly to some other big sites I didn’t list, Rakuten is not open to international sellers. Here is what their terms state about eligibility:

“What are the requirements to sell?

Merchants on our site must have the following:

  1. US Shipping and Return address
  2. US Bank Account
  3. US or Canadian Credit Card”

The choice of payment systems is up to you. As they state, “The majority of shops on our marketplace accept major credit cards (Visa, MasterCard, JCB, AMEX, Diners, etc), Paypal, Alipay, and bank transfers.” The same applies to shipment methods – you manage them individually, and you can use direct or indirect shipping.

Based on all this, my conclusion is that Rakuten doesn’t compare well to the first two eBay alternatives but still it’s a big marketplace and for you it might be an option after all.

4. Etsy

Etsy

Unlike the marketplaces so far, Etsy isn’t a universal marketplace. Instead, it specializes in handmade and vintage stuff. In the beginning sellers were allowed to sell only stuff they personally made, but now they can use dropshipping. This means you can sell print-on-demand stuff made at sites such as Zazzle or CafePress, too.

As for product categories, as I already mentioned, Etsy isn’t a universal marketplace. It has the following categories: Clothing & Accessories, Jewelry, Craft Supplies & Tools, Weddings, Entertainment, Home & Living, Kids & Baby, and Vintage.

Etsy has a $0.20 listing fee. A listing is active for 4 months or till the product sells. In theory the listing fee should reduce the amount of spam because when sellers have to pay a fee, they will upload only their best stuff. Yet the fee is affordable unless you upload millions of items that don’t sell.

The site uses their own Direct Checkout payment system but in shops’ descriptions I’ve seen sellers mention that they accept direct payments as well. If you go with direct payments, it’s up to you to choose which payment systems to accept. With Direct Checkout you can get paid via credit and debit cards, PayPal, Google Wallet, Apple Pay, and Etsy Gift Cards.

When you sell a product, you are charged a 3.5% transaction fee and 4% + USD $0.30 for payment processing if you use Direct Checkout. If you don’t use Direct Checkout in most cases you still have to pay payment processing fees but these vary depending on the service you are using.

Continue reading %7 eBay Alternatives for eCommerce Sellers%


Source: Sitepoint