Avalara Announces New MyLodgeTax API for Onboarding Rental Owners


Avalara, Inc., a provider of tax compliance automation software for businesses of all sizes, this week announced a new onboarding API for Avalara MyLodgeTax, the co





Source link

Popular Design News of the Week: September 24, 2018 – September 30, 2018


Every week users submit a lot of interesting stuff on our sister site Webdesigner News, highlighting great content from around the web that can be of interest to web designers. 

The best way to keep track of all the great stories and news being posted is simply to check out the Webdesigner News site, however, in case you missed some here’s a quick and useful compilation of the most popular designer news that we curated from the past week.

Note that this is only a very small selection of the links that were posted, so don’t miss out and subscribe to our newsletter and follow the site daily for all the news.

16 CSS Border Animations

 

DebugBear – Front-end Code Monitoring

 

Scheme Color – The Quick, Simple and Easiest Way to Browse Color Schemes

 

Framer X is Awesome, but it’s not Ready

 

Stop Using Select Menus for Known User Input

 

Reviewed: New Name and Logo for Dunkin’

 

New Ghostery Browser for Android

 

Preparing for Better Typography in Augmented Reality

 

A Lightbulb is not an Idea!

 

7 Bad Graphic Design Habits to Lose

 

Design Thinking is Fundamentally Conservative and Preserves the Status Quo

 

Stress Testing your Designs so that They are Flexible

 

Torch: The Design Platform for Augmented Reality

 

Manyverse – A Social Network Off the Grid

 

Infographic: How to Prioritize Projects so You Meet Every Deadline

 

How to Use Instagram Stories for Marketing (And Why You Should)

 

Linux Developers Threaten to Pull “kill Switch”

 

Pride and Prejudice and Personas

 

10 Inspiring Cities for Designers

 

8 Foolproof Font Combinations for Non-Designers

 

The Future of Design

 

Re-Approaching Color

 

Vivaldi Browser V2.0 Released

 

ColorBox by Lyft Design Reset

 

Case Study: Louis Ansa Portfolio 2018

 

Want more? No problem! Keep track of top design news from around the web with Webdesigner News.

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

Source

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



Source link

October Magic For Your Desktop (2018 Edition)


October Magic For Your Desktop (2018 Edition)

October Magic For Your Desktop (2018 Edition)

Cosima Mielke

2018-09-30T09:00:00+02:00
2018-09-30T07:03:47+00:00

The leaves are shining in the most beautiful colors and pumpkins are taking over the front porches. Time to welcome the spookiest of all months: October! To get your desktop ready for fall and the upcoming Halloween season, artists and designers from across the globe once again challenged their creative skills and designed inspiring desktop wallpapers for you to indulge in.

As usual, the wallpapers come in versions with and without a calendar for October 2018 and can be downloaded for free. And since so many inspiring, beautiful, and unique artworks evolve around our little wallpapers challenge every month, we once again dived into our archives to find some timeless October classics from past years to add to this collection. Because, well, some things are just too good to be forgotten, right? Enjoy!

Please note that:

  • All images can be clicked on and lead to the preview of the wallpaper,
  • You can feature your work in our magazine by taking part in our Desktop Wallpaper Calendar series. We are regularly looking for creative designers and artists to be featured on Smashing Magazine. Are you one of them?

Further Reading on SmashingMag:

Shades Of Gold

“We are about to experience the magical imagery of nature, with all the yellows, ochers, oranges, and reds coming our way this fall. With all the subtle sunrises and the burning sunsets before us, we feel so joyful that we are going to shout it out to the world from the top of the mountains.” — Designed by PopArt Studio from Serbia.

Shades Of Gold

Flying Home For Halloween

“You can only fully master the sky wearing an aviator hat and goggles. Like this little bat, flying home to celebrate Halloween with his family and friends.” — Designed by Franke Margrete from the Netherlands.

Flying Home For Halloween

Strange October Journey

“October makes the leaves fall to cover the land with lovely auburn colors and brings out all types of weird with them.” — Designed by Mi Ni Studio from Serbia.

Strange October Journey

Ghostbusters

Designed by Ricardo Gimenes from Sweden.

Ghostbusters

Trick Or Treat

Designed by Mad Fish Digital from the USA.

Trick Or Treat

Hello Fall

“Leaves are falling from the trees in all kinds of beautiful colors.” — Designed by Melissa Bogemans from Belgium.

Hello Fall

Halloween Candy

Designed by Ilse van den Boogaart from the Netherlands.

Halloween Candy

The Pleasure In Travelling

“Travel makes you humble by letting you see the tiny place you occupy in the world. An individual with ordinary talent will always be ordinary, whether he or she travels or not; but a person with superior talent will go to pieces if they remain forever in the same place.” — Designed by Mindster from India.

The Pleasure In Travelling

Love And Life

“Mahatma Gandhi is remembered for all his great deeds and words of wisdom. Though he never lived his life peacefully, he always remained proactive in removing the social evils of our society. So let’s devote this month in the memory of this great man and recall all his good deeds as well as learning which he left behind for the world to follow.” — Designed by Aufait Technologies from India.

Love And Life

Exclusively Fall

“When I think of October the real beginning of the fall season comes to mind. It was difficult to narrow down what symbols I wanted to use to represent the season and how to sort out which ones would work into a collective theme. I decided using textures and objects found in nature itself would make the most sense for my theme. By ‘carving’ symbols into the natural texture of wood and showing the change of season with the coloured leaves I hope I was able to capture the essence of fall.” — Designed by Sarah Stevens from Canada.

Exclusively Fall

Oldies But Goodies

Creepy Halloween fellows, a nice cup of tea on a rainy day, and the magic of the fall forest — October has its very own charm. And, well, the treasures we rediscovered in our Wallpapers archives pay tribute to all those big and small October moments. Please note that these wallpapers don’t come with a calendar.

Haunted House

“Love all the Halloween costumes and decorations!” — Designed by Tazi from Australia.

Haunted House

A Very Pug-o-ween

“The best part of October is undoubtedly Halloween. And the best part of Halloween is dog owners who never pass up an o-paw-tunity to dress up their pups as something a-dog-able. Why design pugs specifically in costumes? Because no matter how you look at it, pugs are cute in whatever costume you put them in for trick or treating. There’s something about their wrinkly snorting snoots that makes us giggle, and we hope our backgrounds make you smile all month. Happy Pug-o-ween from the punsters at Trillion!” — Designed by Trillion from Summit, NJ.

A Very Pug-o-ween

Tea And Cookies

“As it gets colder outside, all I want to do is stay inside with a big pot of tea, eat cookies and read or watch a movie, wrapped in a blanket. Is it just me?” — Designed by Miruna Sfia from Romania.

Tea And Cookies

Hello, Autumn, I’m Glad to See You Again

Designed by Lívi from Hungary.

Hello, Autumn, I’m Glad to See You Again

Omnomnomtober

“I’m just a sucker for Halloween, candy, tiny witches and giant kittens. And you can’t tell me that October is not Halloween, because I’ve waited the whole year for this. I thought that I would make illustration central to this calendar so I started with the idea of a tiny witch who’s stolen a ton of candy along with her cat — who’s gotten herself in trouble and can’t unstick the bubble gum from her giant teeth. A typical Halloween scene, right?” — Designed by Kalashniköv from Spain.

Omnomnomtober

Dope Code

“October is the month, when the weather in Poland starts to get colder, and it gets very rainy, too. You can’t always spend your free time outside, so it’s the perfect opportunity to get some hot coffee and work on your next cool web project!” — Designed by Robert Brodziak from Poland.

Dope Code

Summer, Don’t Go!

“It would be nice if we could bring summer back, wouldn’t it?” — Designed by Terezija Katona from Serbia.

Summer, don't go!

Boodoni

“This wallpaper was inspired by the creepy crawlies of Halloween, animation concept art, and hand-drawn type.” — Designed by Todd Marcinkiewicz from the United States.

Boodoni

My Spooky Love

“Halloween can be a season of love too. This undead bunny is a combination of different inspiration from sugar skulls, cute characters and patterns that I have been drawing in my “Year of Creative Habit” project.” — Designed by Morningmobi from Brunei.

My Spooky Love

A Positive Fall

“October is the month when fall truly begins, and many people feel tired and depressed in this season. The jumping fox wants you to be happy! Also, foxes always have reminded me of fall because of their beautiful fur colors.” — Designed by Elena Sanchez from Spain.

A positive fall

Autumn In The Forest

“Autumn is a wonderful time to go for walks in the forest!” — Designed by Hilda Rytteke from Sweden.

Autumn in the forest

October Gifts

“I was inspired by autumn and those gifts it presents to us in the form of beautiful colors, unusual shapes and mysterious weather. So enjoy October!” — Designed by Juliagav from Ukraine.

October Gift

Autumn Is The New Spring

“Who says Autumn isn’t fun? It’s the new Spring, after all!” Designed by Marina Zhukov from the USA.

Desktop Wallpaper - October 2012

Watercolor Autumn

“There is nothing like being surrounded by beautiful, fiery, natural art for 2.5 months every year. This piece was inspired by the Falls I remember back in my New England hometown.” Designed by Rachel Ladew from the USA.

Desktop Wallpaper - October 2012

Autumn Deer

Designed by Amy Hamilton from Canada.

Desktop Wallpaper - October 2012

Roger That Rogue Rover

“The story is a mash-up of retro science fiction and zombie infection. What would happen if a Mars rover came into contact with an unknown Martian material and got infected with a virus? What if it reversed its intended purpose of research and exploration? Instead choosing a life of chaos and evil. What if they all ran rogue on Mars? Would humans ever dare to voyage to the red planet?” Designed by Frank Candamil from the USA.

Desktop Wallpaper - October 2012

Limbostyle

“This is my tribute to the awesome and beautifully designed videogame ‘Limbo’. Enjoy and share if you like this drawing.” Designed by Jonas Duri.

Free Desktop Wallpaper - October 2011

Spooky Town

Designed by Xenia Latii from Germany.

Spooky Town

Halloween Cat

Designed by Mohamad Khatib from Lebanon.

Desktop Wallpaper - October 2012

Crow

Designed by Rumake Web Agency from Russia.

Crow

Ghostober

Designed by Ricardo Delgado from México City.

Smashing Wallpaper - October 2010

Join In Next Month!

Please note that we respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the full freedom to explore their creativity and express emotions and experience throughout their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us, but rather designed from scratch by the artists themselves.

Thank you to all designers for their participation. Join in next month!



Source link

Daily API RoundUp: Wowza, Mango Voice, StickerPop, Sakari


Every day, the ProgrammableWeb team is busy, updating its three primary directories for APIs, clients (language-specific libraries or SDKs for consuming or providing APIs), and source code samples.





Source link

Create Advanced Cloud Deployment Workflows with Mina


This article was created in partnership with Alibaba Cloud. Thank you for supporting the partners who make SitePoint possible.

Mina is a fast deployer and server automation tool, with advanced features and powerful extensibility. Learn how Mina can make your deployment process better, how to install it, how to extend it with plugins, and run through your first automated workflow. Then learn how to use Mina to migrate databases and websites, and set up even more advanced workflows with tools like WP CLI. We’ll be using Alibaba Cloud ECS for this tutorial.

Think you got a better tip for making the best use of Alibaba Cloud services? Tell us about it and go in for your chance to win a MacBook Pro (plus other cool stuff). Find out more here.

The post Create Advanced Cloud Deployment Workflows with Mina appeared first on SitePoint.



Source link

Prismic Launches Alpha GraphQL API


Prismic recently announced an Alpha launch of the GraphQL API.





Source link

How to Automate App Deployment to Alibaba ECS with Mina


This article was created in partnership with Alibaba Cloud. Thank you for supporting the partners who make SitePoint possible.

Think you got a better tip for making the best use of Alibaba Cloud services? Tell us about it and go in for your chance to win a Macbook Pro (plus other cool stuff). Find out more here.

Mina is a deployment automation tool and a deploy Bash script generator from the Rails world, which came into the spotlight after development companies noticed its advantages over Capistrano. Mina, in contrast to Capistrano, uses only one SSH connection to the deployment server, and executes a batch of bash commands there. This makes it a lot faster than Capistrano, which opens a separate SSH session for every command.

In this article we will go through setting up Mina for the deployment of a basic Django app – an unorthodox toolset for the Django world, which tends to use Docker or Fabric more. Given Mina’s simplicity and flexibility, we feel it is worth exploring its use in the deployment of Python web apps.

Django, a “web framework for perfectionists with deadlines,” has been around for some time now. It started off as a content-management oriented web framework, created in-house by web developers at Lawrence Journal World for its news web portal. It was published in 2005, and from there it took off and the rest is history. It became one of the most serious and widely adopted web frameworks, competing with Ruby on Rails. It is in use by Instagram, Disqus, the Washington Times, Mozilla, Bitbucket and others. It’s still thriving.

Django docs suggest Apache with mod-wsgi as the first-choice, and it may be a prevalent option. But since we are performance-obsessed, for this tutorial we decided to cover the deployment of a Django application to Alibaba’s ECS cloud instance with an NGINX and uWSGI stack.

NGINX is a web server notorious for its efficiency, being event-based, and it includes caching options, so it is often an ideal solution. uWSGI is an application server container – an implementation of WSGI, Python’s standard web interface. It plays along with NGINX very well.

Getting Started

The first thing we will do is create our ECS instance in the Alibaba Cloud backend console.

The process is straightforward. We will choose Ubuntu 16.04 LTS for our operating system / OS image. Upon creation, we will want to make sure our instance is assigned to proper security groups. In Alibaba terminology, these are firewall rules for different ports. This is usually something that works by default, but in case of any issues with web access to our instance later on, make sure to check this off.

The security groups page can be accessed through the Elastic Compute Service submenu on the left.

The next thing to do upon creation of our instance is to set it up for SSH key access.

Perhaps the most straightforward way to do this is to set the instance up, at creation, with a password. Then we can just do the standard ssh-copy-id from our starting system – presumably a local device.

ssh-copy-id root@xxx.xxx.xxx.xxx, executed from our local device (where we will replace the xxx… sequence with our Alibaba ECS instance public IP address) will prompt us for the password, and upon typing it, our key-based access should be set up.

When we log into our instance via ssh, we will do apt-get update to make sure our apt sources are up to date, and then we install git, curl, wget: apt-get install git curl wget -y

Installing the Server Environment

The default Python version that comes as default with Ubuntu 16.04 LTS is the ancient 2.7. In order to run the latest version of Django, we need Python 3+. One of the less painful ways to fix this is to install pyenv, a Python version manager.

It allows us to change the Python version used globally, or per-project. Before we install pyenv, as per the pyenv wiki, we will install prerequisites:

apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev zlib1g-dev libffi-dev

Then we can install pyenv:

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

Upon completion, the pyenv installer will prompt us to add a couple of lines to the ~/.bash_profile, which we will do:

Now we update the PATH in our working session by doing source ~/.bash_profile in our terminal.

Provided that we did this correctly, we should now be able to install Python version 3.7.0:

Doing pyenv versions in the server terminal should show us two items now: system and 3.7.0, presuming that we installed the 3.7.0 version successfully.

pyenv global 3.7.0 will make our 3.7.0 version the global python version on our system. Should you have issues with pyenv, this is the url to visit.

Server stack

The usual default with Ubuntu images is Apache server, which comes preinstalled. If it is running, we should stop it with service apache2 stop, and then install nginx with apt-get install nginx -y. This should install and start the NGINX server, which should be visible when we visit our server’s public IP address.

We will also install uWSGI: pip install uwsgi (Python pip is presumably installed when we installed pyenv).

We will also make sure we have Django installed: pip install django. We could be using virtualenv here to ensure a contained isolated environment for our app, but for the sake of keeping this tutorial simple, we will skip it.

In more complex cases, though, it is probably a wise choice.

This guide presumes we have directed our domain’s A records to our server IP address, so myxydomain.com is presumed in the rest of this guide to be pointed to our ECS server’s public IP.

Now we will create the NGINX virtual host for our website. The file can be found here. We will just go over couple of things:

server unix:///tmp/minaguide.sock;

Here we are connecting – with NGINX – to the Unix socket that uWSGI will create in the /tmp directory, and /tmp is recommended for otherwise possible permissions complications that may arise from a more complex directory tree. This is what /tmp is for.

include /root/project/minaguide/uwsgi/uwsgi_params;

This (/root/project/minaguide) is a directory of our django project on the server, and within it, we will have a uwsgi subdirectory with a uwsgi_params file, which will hold some uWSGI variables. We will come back to this later, and to setting up our uWSGI app.

We now have the base server environment we need for deployment.

Setting Up Mina

We are setting up Mina on the machine from which we are doing the deployment. Presuming the device is also Linux / Ubuntu (and things shouldn’t be much different for Mac users – nor for Windows users, as long as they use Windows Subsystem for Linux ), we will want to make sure we have Ruby and rubygems installed – apt-get install ruby -y should do the trick.

When we have done this, we will have the gem command available, so we will do gem install mina.

Now – also on our local machine – we will create a directory dedicated to our project, and do mina init there.

This creates a config/deploy.rb file in our project directory, which we will edit to configure Mina:

The post How to Automate App Deployment to Alibaba ECS with Mina appeared first on SitePoint.



Source link

Banking on Speed, Ripple Makes a Name For Itself Among Cryptocurrency Developers


Many critics of blockchain have argued that they haven’t seen the technology truly disrupt an industry — that they haven’t really seen an example of blockchain proving itself to be a better alternative than non-blockchain incumbents. But then, there’s one company who’s vertical cryptocurrency remains at the top of the chart: Ripple.





Source link

Developing With Automad


Selecting the right CMS for a blog or website can be difficult. Every web project has its own needs and requirements, meaning one CMS may be a better fit for one site but not so much for a different site. Simple solutions might be lacking some essential features, while more complex systems can create easily overhead for a given task.

I want to cover Automad, a CMS that is less-known than, say, a behemoth like WordPress, but still offers some powerful features like it while maintaining the nimbleness of smaller, simpler solutions, like static site generators.

Specifically, Automad fills a gap between larger and smaller offerings in a few key ways:

  • It is file-based, but does not require a database. This ensures quick setup, portability, security, speed, and easy deployment.
  • Even without a database, it offers database features like searching, tagging, filtering, and sorting.
  • A multi-layer caching engine caches content stored in the file system efficiently.
  • The browser-based dashboard and the in-page (“live”) edit mode allows for intuitive content management.

But what makes Automad really different, is its integrated template engine. Templating is a core requirement for may CMSs because it creates and sets the base for a site’s visual display. Since Automad’s template engine is so close to the core, it allows you to create templates with complex navigations and to batch process images using a clean and short syntax. You’ll feel the difference once you get your hands on it, and we’ll walk through an example together in just a bit.

But first, a quick overview of templating

As a designer or a developer, you’re probably curious about how to develop themes and templates for Automad. I mean, it’s the crux for why any of us really use a CMS in the first place. If you’ve done any level of theming with WordPress, then working with Automad will feel vaguely familiar, and perhaps even easier.

The minimal requirement for creating an Automad theme is a single .php file and a theme.json file bundled together in a subdirectory you create inside the top-level /packages directory in a default Automad installation:

packages/
  yourTheme/
    yourTemplate.php
    theme.json

The tutorial package shipped with Automad provides a good starting point for understanding the basic concepts of themes.

A look at the syntax used in Automad templates

While it is possible to write templates in plain PHP, it is not required and actually not recommended. The reason is that Automad’s own template syntax is shorter, more readable, and integrates well with the user interface by automatically listing all of the used variables in the dashboard. It can be seamlessly mixed into HTML markup.

Basically, the syntax can be split into two groups:

  1. Echoing content: @{ variable }
  2. Statements, like functions, loops and conditionals: <@ function @> or <@ statement @>…<@ end @>

Echo content

Let’s say we want to pull the body content for a post into a template and we have a variable set up for that called text. In WordPress, this would be a global variable (the_content) that is called in PHP:

<?php the_content(); ?>

In Automad, we can do the same without PHP:

<p>@{ text }</p>

It is possible to manipulate the output of variables by passing the value to a function using the pipe (|) operator. The following example shows how to shorten a given text to a maximum of 100 characters without cutting words:

@{ text | shorten (100) }

This would be the same of thing you might do to define the excerpt of a post in WordPress using a function:

/* Limit excerpt to 20 words */
function my_custom_excerpt_length( $length ) {
    return 20;
}
add_filter( 'excerpt_length', 'wpdocs_custom_excerpt_length', 999 )
}

One of the key benefits of some CMS solutions, like Jeykll, is that using Markdown to create site content is a native feature. Automad can do the same. Let’s say we want to convert Markdown text to HTML. It’s pretty darn simple (and efficient) using the pipe operator:

@{ text | markdown }

Using statements

Statements are a handy way to define content and display it conditionally. Unlike variables, statements are wrapped in <@ … @> delimiters. The following example can be used to create a simple top level menu by using the nav function:

<@ nav { context: "/", class: "nav" } @>

Let’s say you want to display your post content by default but display a fallback if that content does not exist for some reason. That’s where we can put conditional statements and control structures to use:

<# If the post content exists then display... #>
<@ if @{ text } @>
  <p>...</p>

<# Otherwise, display this... #>
<@ else @>
  <p>Sorry, no content here!</p>

<# OK, no more conditions. #>
<@ end @>

Want to create a loop? This is where display a list of posts or any repeatable content that matches a condition is super useful. We can do that in Automad by providing one or more glob patterns in a foreach loop.

For example, let’s display all JPG and PNG images for a post cropped at 400x300 with their captions:

<@ foreach in "*.jpg, *.png" { width: 400, height: 300, crop: true } @>
  <img src="http://css-tricks.com/@{:fileResized}" width="@{:widthResized}" height="@{:heightResized}">
  <p>@{:caption}</p>
<@ end @>

Did you catch that?! As shown by this example, a remarkable Automad feature is the ability to embed resizing options for each matching file inside the loop statement. No more complicated functions to register sizes that then need to be called in the template!

It’s worth noting that foreach loops can also be used to iterate over objects. Automad knows multiple types of objects. One of the most important objects is pagelist because of its ability to output all of the pages on the site, like you might want to do when building navigation. When iterating a pagelist, the context changes with every iteration to the current page in the loop. That way, it is possible to use page variables within the loop’s code block.

To configure the pagelist, we can use the newPagelist function like this:

<@ newPagelist { context: "/", type: "children" } @>
<ul>
  <@ foreach in pagelist @>
    <li><a href="@{ url }">@{ title }</a></li>
  <@ end @>
</ul>

A sneak peek behind the scenes for you super geeks 🤓

Automad’s template interpreter is written in pure PHP and it processes templates on the fly. Therefore, no extra build process is required at all. The list of system requirements is also rather short. A web server (Apache or Nginx) and PHP 5.4+ is already enough to run a site. Pages are only rendered when content has changed or after system updates.

Automad’s multi-layer caching engine stores the rendered pages in separate .html files as well as all crawled data in the file system as a kind of content object. That object is also used to speed up page searching and filtering.

Due to that mechanism, it is possible to either edit the content of a site directly in production online using the browser-based dashboard or edit a site locally and deploy it via Git or plain rsync.

Let’s write some code!

The best way to get acquainted with anything on the web is to just build websites. Here are some examples of how we’d get started with that using Automad.

Example 1: Recursive navigation

Creating a site-tree navigation is a good example for using recursion in templates. Conceptually, creating such a recursive navigation can be split into three steps:

  1. Defining a reusable snippet of code to create a single branch of the site-tree which calls itself conditionally
  2. Configuring a dynamic pagelist which automatically only contains children of its current context
  3. Defining the root page of the site-tree (for instance the homepage) and call the recursive snippet initially

Let’s break those steps down into greater detail…

Defining a reusable snippet of code

In Automad, blocks of code can be defined to be reused at a later point by using the snippet keyword. Regarding this example, the following snippet will call itself conditionally when looping through a pagelist and the active page of the current iteration itself has children pages:

<@ snippet navigation @>  
  <ul class="menu-list">       
    <@ foreach in pagelist @>
      <li>
        <a href="@{ url }">@{ title }</a>
        <# Call snippet recursively. #>
        <@ navigation @>
      </li>
    <@ end @>
  </ul>
<@ end @>
Configuring a dynamic pagelist

The pagelist has to be configured a children type. The context (or parent page) will always change recursively within the snippet defined above in that way. The pagelist will automatically only contain children pages of the currently processed page.

<@ newPagelist { 
  type: 'children'
} @>
Defining the root page

In the last step, the root context of the navigation tree has to be defined and the snippet has to be called once to initiate the recursion. The with statement is used here to change the context to the homepage.

<div class="menu">
  <@ with '/' @>
    <@ navigation @>
  <@ end @>
</div>

A complete working tutorial template is already included in Automad.

Example 2: Working with files

Since images are super important for content management, working with them should be as easy and intuitive as possible. Automad’s template language provides handy methods for basic image processing, like resizing and cropping. When using a single image or iterating a set of images, resizing options can be passed to a with statement or foreach loop. Check out the <a href="https://dev.automad.org/tutorials/working-with-images"Working with Images tutorial that ships with Automad to get started quickly.

<@ foreach in '*.jpg, *.png' { width: 400, height: 300, crop: true } @>
  <# Code to be used for each image in the filelist. #>
  <img 
  src="http://css-tricks.com/@{ :fileResized }" 
  alt="@{ :basename }"
  title="@{ :file }"
  width="@{ :widthResized }"
  height="@{ :heightResized }"
  >
  <p>@{ :caption | markdown }</p>
<@ else @>
  <# Code to be used when the list of images is empty. #>
<@ end @>

Instead of using a glob pattern in the foreach loop, it is also possible to use the filelist object.

If you look at the example code above, you will notice the use of certain runtime variables to access image properties within a code block. While the :file variable represents the original file, :fileResized refers to path of the resized and cached version. The :caption variable enables you to get the caption text stored along with the file.


What will you build?

We merely scratched the surface of Automad here, but hopefully everything we covered gives you a good idea of the possibilities it provides for content management. While there is no one-size-fits-all mold in the CMS world, there will likely be scenarios where a CMS that sits somewhere between the robust and slimmed-down options will come in handy.

Additional Resources

The post Developing With Automad appeared first on CSS-Tricks.



Source link

The Freelancer’s Guide to Paying Tax


When you take the leap into freelancing and self-employment, it’s really exciting at the start. Eventually, the honeymoon phase wears off and you comfortably adjust to life as a freelancer, which, in all honesty, is a really great deal.

You get to run your design business the way you want. Work with clients you like. Make as much money as your schedule allows for. Live and work from anywhere in the world (and move as frequently as you want!) This business is yours to shape and mold into whatever you want it to be and to support whatever sort of lifestyle you want to lead outside of it.

That said, while the structure of the business may fully be under your control, the income you make from it is not.

Every country holds its residents accountable for paying taxes. When you have an employer, they typically handle this for you. However, since you’re self-employed, the responsibility lies solely with you—which is no easy feat. In the following post, I’d like to first take a look at freelancer’s biggest concerns when it comes to taxation. Then, we can dig into best practices for managing and paying your taxes on time.

Biggest Concerns About Wages & Taxes

In a survey provided by QuickBooks Self-Employed, I discovered some frightening statistics regarding freelancers and taxation. The survey was conducted earlier this year and focused on the experiences of self-employed individuals in the U.S. Since tax code differs from country to country, I’m going to focus on the points most relevant to freelancers everywhere:

Top Tax-Related Challenges for Freelancers

  • 30%: preparing tax forms correctly;
  • 30%: keeping track of tax-related information;
  • 23%: estimating tax payments;
  • 20%: saving money to pay taxes;
  • 17%: knowing what to deduct to reduce overall tax burden.

Most Common Reasons Freelancers Miss Tax Payments

  • 42%: incorrectly estimated tax payments due and came up short at the deadline;
  • 30%: didn’t make enough to pay off taxes in full;
  • 16%: were unaware they had to pay taxes;
  • 16%: forgot to pay their taxes;
  • 10%: were unaware of how to pay for their taxes.

Reasons Why 36% of Freelancers Don’t Pay Their Taxes

  • 9%: there was no reason for the failure to pay, they just didn’t do it;
  • 17%: didn’t make enough to owe anything;
  • 10%: business losses exceeded profits and so they didn’t owe taxes.

As you can see, there’s a lot going on here. Many freelancers worry about preparing tax payments correctly (which is a valid concern) while others simply don’t know they have to make them. Then there are the 32% of freelancers who choose not to report all of their income to the government.

Rather than be confused or misinformed about what taxes mean for your business, or improperly handle your taxes and put your business in danger as a result, let’s talk best practices.

Best Practices for Managing Your Taxes Throughout the Year

If you want to enjoy the rewards of running your own business and making money from said business, then you need to reduce any concerns or confusion you have around taxes. You can do that by becoming more mindful of these best practices when managing taxes:

1. Figure Out Who You Owe Taxes To

This will be different based on where you live as well as where your home country is (if different). Here are some things to consider:

  • In some countries, you have to pay a federal (national) tax as well as a state (regional) tax;
  • Goods and services taxes (also referred to as GST and VAT) come into play in some countries;
  • Different business structures are taxed at different rates as well;
  • If you work abroad, be sure to brush up on the rules for taxation. You can usually find these under a “taxes for expats” search. (This is especially important so that you don’t get doubly taxed by your home country and country of residence.)

2. Watch Your Income and Expenses

One of the reasons freelancers struggled to make tax payments on time, according to the QuickBooks survey, was because they hadn’t calculated estimates correctly. Now, that’s likely to happen anyway, but it usually works in favor of the freelancer… unless the error is because you made more money than expected.

To avoid this problem, pay closer attention to your income. Download reports every month that provide data on how much money you made (and by “made”, I mean actually collected from clients) compared to how much went out the door in expenses. By staying on top of your changing revenue stream, you can more accurately estimate how much you owe in taxes. You can also adjust your rates if you find that you’re not making enough to stay up on payments.

3. Mark Your Calendar

In some countries, taxes are owed to the government quarterly. In others, you only have to pay once a year. In my opinion, neither option is ideal as it can lead to a more lax attitude about saving up enough money to make payments on time.

Instead, I would suggest you mark your calendar once a month. Even if you don’t want to go through the hassle of submitting payments to the government every 30 days, you can at least do your calculations and put that money aside in a dedicated account. The dedicated account is crucial as it keeps that taxed income safe from other expenses and ensures you don’t have to face any late payment penalties later on.

4. Use Accounting Software to Automate

Hiring an accountant can be quite expensive, even if you only retain their services during tax season. Thankfully, accounting software can automate a lot of the work an accountant would otherwise do for you. It will also spare you the trouble of having to manually keep track of your finances on a regular basis.

Of course, you’ll still have to file your own taxes, but accounting software will:

  • Pull in data about business-related transactions (income and expenses);
  • Categorize those transactions for easier filing of taxes;
  • Estimate tax payments based on your earnings/losses for the month/quarter/year;
  • Alert you to upcoming tax deadlines.

Some accounting software may even integrate with your tax software, so the uploading of the year’s financial information can be streamlined as well.

Wrapping Up

It doesn’t matter if you’re working full-time or part-time as a web designer. If you’ve earned revenue for your business, and it exceeds the minimum taxable amount defined by your government, then you have to pay taxes. The matter of taxes can get complicated, though, if you wait too long to handle them, so have a plan in place that allows you to prepare for tax payments all year long.

 

Featured image via Depositphotos.

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

Source

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




Source link