How can your Travel Agency benefit from Online Travel Software

Developing a worldwide brand presence is quite vital to driving the progress of their travel industry. A well-designed travel portal site is a wise solution that determines the future condition of your travel company. Travel companies globally are mobilizing groundbreaking technology to research technological strategies to advertise their services or products. So, online travel applications have created a buzz among all travel bureaus. Hence you want to know more about travel technology, visit @ www.claritytts.com | +1 416 223 2800.

Tabs in HTML?

You know what tabs are, Brian.

I mean… You use them every day, on every OS. Everybody knows they exist in every toolbox. All that’s left is to “just pave the cowpaths!” But when you get right down to it, it’s a lot more complicated than that.

Brian Kardell shares a bit about the progress of bringing “Tabs” to HTML. We kinda think we know what they are, but you have to be really specific when dealing with specs and defining them. It’s tricky. Then, even if you settle on a solid definition, an HTML expression of that isn’t exactly clear. There are all kinds of expressions of tabs that all make sense in their own way. Imagine marking up tabs where you put all the tabs as a row of links or buttons up top, and then a bunch of panels below that. They call that a “Table of Contents” style of markup, and it makes some kind of logical sense (“the markup looks like tabs already”). But it also has some problems, and it looks like sections-with-headers is more practical (“If you have the heading, you can build the TOC, but not vice-versa”). Spicy sections are a totally different pattern. And that’s just one problem they are facing.

I don’t envy the work, but I look forward to the progress in no small part because authoring tabs is tricky business. Not hard to do, but very hard to do right. I’ve talked in the past about how I’ve built tabs many times in jQuery where just a click handler on a row of links hides or shows some matching divs below. That “works” if you ignore accessibility entirely (e.g. how you navigate between tabs, focus management, ARIA expectations, etc).

Here’s the ShopTalk discussion and here’s a different perspective in a chat I had with Stephen on CodePen Radio where we get into our <Tabs /> React component on CodePen.

Direct Link to ArticlePermalink


The post Tabs in HTML? appeared first on CSS-Tricks. You can support CSS-Tricks by being an MVP Supporter.

A Second Look at ElmaStudio’s Aino Theme and Companion Block Plugin

I am about a month away from my second anniversary writing for WP Tavern. There has been one project that I have followed since the beginning of this journey. In some ways, we are learning the ropes and growing in this block-based WordPress era together.

In 2019, just before taking on this role, one of the first story notes I jotted down was some thoughts on ElmaStudio’s Aino Blocks plugin. However, it was not until nearly a year later when the team took the project out of beta testing, and I followed up with a review of the flagship Aino theme and plugin.

Perhaps it is fortuitous that the team recently released version 2.0 of its theme at just about the same time I started taking stock of my time at the Tavern. Maybe this is fate’s way of telling me that we should always have a yearly update on Aino — sound like a good idea?

It also did not hurt that Matías Ventura, the Gutenberg project lead, name-dropped their work in a conversation we had last week. “It fills me with joy when I see initiatives like [Aino] built by just a couple folks,” he said. “Apart from the user aspects of our work, it’s what makes it all worth it.”

This was part of a more in-depth discussion related to the barriers to entry in the modern WordPress era. We agreed that one of the easier onramps was theme creation and site design, a focus area for Aino.

It was time to dive back into the project. I had not looked into it deeply enough since my last review a year ago.

Admittedly, at the time, I had mixed feelings about it. I initially thought the plugin launched too late. It seemed to be yet another block library after larger companies beat them to the punch.

Ellen Bauer, who co-owns the company alongside Manuel Esposito, encouraged me to check back in as they continued building. They were merely setting the stage for their vision.

“We wanted to release the Aino blocks and theme on WordPress.org since they are stable to use right now,” she wrote in the comments. “But the actual work is just starting for us, since we are now creating block patterns for our system, and I think it is only then that users will see why we built the theme and blocks in a certain way.”

A Year Later

Block pattern with header and text on left and header + text sections on the right, followed by an image underneath.
One of multiple feature patterns from the Aino theme.

The ElmaStudio team is taking that leap that most theme companies will inevitably need to take. They announced that Aino 2.0 ditched its classic garb and moved to 100% blocks earlier this month.

For this particular theme, the move was not as monumental as it would be for others with more intricate layouts. Aino itself was always a minimal design, more of an open canvas for blocks than anything. It is the sort of theme meant to get out of the way and allow the user to create individual pages from the ground up.

That may have been its downside a year ago. The team had built a plugin for easing users into the page-building process, but its single block pattern did not provide much of a starting point. Its Grid block is a powerful tool but also feels like it is catered more toward designers/developers. Its options may be too advanced to some end-users depending on their familiarity with CSS terminology.

Today, this looks much different. The Aino theme comes with — count ’em — 42 block patterns. It is also where this project shines. I may have mentioned something about this being the route to go last year:

The company’s best bet is to focus on building patterns. Its first pattern shows some promise. I am holding out hope for more interesting work to come.

The team took that dev-friendly base of the Grid block and built a system of easy-to-use layouts on top of it. Users merely need to click to insert and customize.

Portfolio pattern design with two-columns of images on the right and intro text on the left. Grid lines shown behind the pattern.
Aino’s Grid block used in a portfolio pattern.

Because Aino’s patterns are built upon this grid foundation, the design studio’s layouts are fine-tuned for each screen size.

Unless other theme authors build on top of the same plugin or a similar grid-based block, they are left with stock WordPress/Gutenberg. This provides limited options for responsively designing more complex layouts. This should be a focal point of the WordPress 5.9 release cycle, but it could be a while before we have something as powerful as the various grid blocks available via plugins.

ElmaStudio’s groundwork in the previous two years is bearing fruit, at least in terms of what the team can create. With the foundational elements in place, nothing should stop them from building the next 42 patterns and more.

Left column with heading and text intro. Right column of two-columned team member images.
A team pattern from the Aino theme (also built on the Grid block).

I am still lukewarm about most of the blocks in the plugin, think the Hero and Testimonial blocks should just be patterns, and the [Aino] Buttons block should be an options extension for the one in core. The Grid layout is the feature that all the best things about the Aino project hinge on.

The Aino theme itself seems unimpressive on its own, at least at first glance. However, the project is not whole until it is coupled with the Aino Blocks plugin.

The theme needs some design work on its default spacing. For example, paragraphs that follow a wide or full-aligned block have no gap above them. Blockquote text butts against the side of the left border. Trivial bugs like these are easy fixes. Sometimes, it is not evident that there is an issue until a Gutenberg plugin update, which often leaves theme authors chasing changes. Such is the life of a designer living on the bleeding edge, supporting the latest features via a block theme.

I am happy I once again had the opportunity to dive back into the Aino project. A year makes a difference, and the duo behind the theme and plugin has made use of the time. Right now, they have a solid project for users who want to build out their pages with blocks. There are enough patterns for just about any website owner.

How to Start a Clothing Business

There are many great reasons to get into the clothing business.

The apparel market is lucrative, and there is high potential to win financial independence.

A clothing business can also be a great avenue to indulge your creativity and build a brand.

But the route you should take when starting your clothing business isn’t exactly obvious.

In this guide, I’ll take you step-by-step on how to start a new clothing business.  

The Easy Parts of Starting a Clothing Business

Starting a clothing business isn’t necessarily a walk in the park. But some aspects of starting are a lot easier than many people think. For example, creating an online store may sound daunting. But you can set up an operational online store in a day. Plus, you don’t even need any coding experience.

Shopify, an ecommerce platform, lets you easily build an online storefront in just a few steps. And you can migrate your brick-and-mortar store online without missing a beat (if you have one). Shopify also comes with built-in tools to help you develop and execute digital marketing campaigns with zero prior digital marketing experience.

If you’ve never created a business plan before, this task can be intimidating. But, organizations such as the U.S. Small Business Association (SBA) offer comprehensive resources to help you create a business plan. We’ll cover the details of making your business plan in another section. 

Finding a clothing supplier to work with can also be tricky. But, again, there are resources to help you with this step. If you don’t know where to start finding a supplier, there are plenty of free online directories you can use. Some of these directories even vet the suppliers before adding them to the marketplace.

Alternatively, online marketplaces like AliExpress and Alibaba help you connect directly with apparel manufacturers in China. Many retailers prefer sourcing from China because it’s often cheaper than partnering with US-based manufacturers. 

The Difficult Parts of Starting a Clothing Business

Although not impossible to accomplish, some parts of starting a clothing business are more challenging. To begin, you will need to conduct market research. This market research will help you analyze the competition, figure out product pricing, identify market gaps and business opportunities, and learn about market saturation.

A tool like Google Trends is a great launching pad. This tool can give you initial insights into what’s popular and the trends for your chosen apparel. But you’ll need to dig a little deeper to fully understand your market. The apparel business is fiercely competitive, and an accurate understanding of your niche gives you the best chance of success.

You may need to take different approaches, including online surveys, phone interviews, in-person interviews, focus groups, and field research. This process can be labor-intensive, but the reward is relevant data that accurately reflect your customer base and particular business. You can then use this data to make better business decisions and trend predictions.

Here’s how to start a clothing store step-by-step.

Step 1- Choose a Clothing Niche

It can be tempting to offer as many different types of apparel as you can think of. But this strategy can be counterintuitive on many fronts. So, instead, settling on a clothing niche will help you focus all your efforts on a specific area, increasing your ROI (return on investment).

Your niche will help you create a business plan, identify gaps in the market, discover your target audience, and limit your competition. To narrow down your niche:

Consider Your Skills and Passions

Starting any business is challenging. There will be ups and downs. Passion is a significant factor that will help you to push through the more difficult stretches. Think about your passions and interests. These may be for menswear, women’s clothing, urban fashion, or pop culture. The apparel market is very diverse. You should be able to find a niche relating to your passions.

Additionally, your skills will give you an edge as a new entrepreneur. Your customers, specifically those passionate about your products, are very knowledgeable. They’ll be able to tell if you are not skilled at your craft right off the bat.

Some popular niches ideas to get you started include:

  • Pop culture apparel
  • Sportswear
  • Sustainable fashion
  • Vintage clothing
  • Genderless fashion
  • Athleisure clothing
  • Sleepwear
  • Men’s dress clothes
  • Women’s dress clothes
  • Lingerie

Choose Your Type of Clothing

You won’t be able to capture the entire apparel market. It is expensive, if not impossible. Narrow down the type of clothing you’ll offer. You can start with just a few options. There will always be room to scale up as your operation grows, and you’ll be able to add more products and capture a larger market share.

Some of the types of clothing to consider include:

  • Long sleeve shirts
  • Short sleeve shirts
  • Sweatshirts
  • Underwear
  • Socks
  • Pants
  • Leggings

Check Your Niche’s Earning Potential

Another reason to do market research is to find out your niche’s earning potential. Some niches tend to be more lucrative than others. Ultimately, you are getting into business to make money. Therefore, you want to make sure that your niche isn’t so obscure that you cannot reasonably expect to make good money.

Step 2 – Choose an Ecommerce Platform

Usually, it might be premature to create your online storefront at this stage. But given Shopify’s features, this is an excellent time to create one. You’ll need some of these features in the following steps.

Choose Your Plan

I highly recommend Shopify if you’re just starting. This ecommerce platform is straightforward to use. You can set up your store from scratch, including creating an online storefront and creating designs for your clothes. Shopify offers three pricing tiers. These include:

  • Basic Shopify: $29 per month
  • Shopify: $79 per month
  • Advanced Shopify: $299 per month

The Basic Shopify plan is good enough if you’re just starting. Some of the features include:

  • Online store, including an ecommerce website and blog
  • Two staff accounts
  • Unlimited products
  • Sales channels
  • Up to four inventory locations
  • Discount codes
  • Free SSL certificate

Step 3 – Choose Your Business Model

There are a couple of ways to go about setting up your clothing business. The option you choose largely depends on the type of clothing business you want to create. Some business models are easier to execute than others. Also, each business model has its advantages and drawbacks. Consider each option carefully before moving forward.

Print-on-Demand Business Model

Print-on-demand (POD) is a popular clothing business model for people looking for a low barrier to entry. This model is also the cheapest way to get into the clothing business. Here, a print-on-demand company prints your design and logo onto blank apparel. Many companies also store your inventory and fulfill orders for you. You do not need to hold inventory with this model.

Popular POD services include:

  • Printful
  • Printify
  • Lulu Xpress
  • Teelaunch

But I wouldn’t recommend taking this route. Although inexpensive and easy, the profit margins are often dismal. Plus, print-on-demand is fiercely competitive, given its low barrier to entry. It is tough to set yourself apart from millions of other players selling the same or similar products. Even with your logo and design, the customization options aren’t comprehensive enough to stand out from the competition.

Custom Cut-and-Sew Business Model

A custom cut-and-sew business model means you handle the entire operation, down to designing and manufacturing the clothes. The obvious advantage is you get full reign to create precisely the kind of apparel that appeals to your target market. There is a lot of creative room here to design unique and custom clothing that isn’t available anywhere else.

The downside with custom cut-and-sew is that it’s expensive. You’ll need to pay for everything, including materials, labor, warehousing, fulfillment, and more. This option is also highly labor-intensive, with a high barrier to entry. So, I also don’t recommend this option except for a few cases where you have the workforce and budget to handle the entire manufacturing and retail process.

Private Label Business Model

I highly recommend the private label business model when starting your first clothing business. It’s a great compromise between POD and cut-and-sew. Here, you source suppliers of wholesale blank or labelless apparel. Then you’ll simply add your design or logo to the garment and sell them under your branding.

You’ll also get a reasonable price for buying in bulk, so it will ultimately be cheaper than print-on-demand. You also have full creative reign with your design and logo options. POD limits you to only the customization options the service offers, which usually isn’t much. This model also works perfectly with Shopify.

Step 4 – Create Your Clothing Line

Ideally, you’d want to manufacture and design your clothing line from scratch. But this approach is labor-intensive, expensive, and requires expertise that you might not have. The second-best alternative is to source blank apparel. Then, you can brand the clothing with your designs. This way, you can take advantage of the resources and expertise of existing manufacturers and suppliers.

Create Your Designs

Create a few designs that you think your target market will love. The good news is that you don’t necessarily need design experience to create your clothing line. Instead, you can hire a designer to help you bring your vision to life. You can also look at other online clothing stores for design ideas and inspiration. Just be mindful not to copy anyone’s designs.

Choose a Manufacturer

There are a few considerations that go into choosing a private label manufacturer. First, many businesses prefer dealing with domestic manufacturers. These manufacturers offer short shipping times, faster communication, and good-quality products.

You’ll also need to collect quotes from prospective manufacturers. Again, price shopping will help you find the best deal. However, price isn’t everything. You get what you pay for, so make sure not to sacrifice quality for low prices.

Most suppliers also have a minimum order quantity. Make sure that you can meet your suppliers’ minimum order requirements. Many suppliers also offer discount rates for larger orders. Finally, be sure to ask about the shipping turnaround time and payment terms.

It’s also a good idea to ask for samples from different manufacturers before committing to a partnership. These samples are often inexpensive and allow you to judge the quality of the production.

Run a Small Production

It’s a good idea to start small to avoid dead stock. You also want to test the market before investing any more resources than you have to. Your manufacturer’s minimum order quantity should be sufficient to test the market.

Step 5 – Finish Setting Up Your Online Store

Now that you have your physical products, it’s time to finish setting up your clothing store.

Choose a Business Name

Your name is usually the first point of contact with prospective clients. Therefore, you’ll need to make your business name impactful if you hope to leave a mark in the business. You can start by listing your values, what you wish your brand to represent, as well as any potential names you have in mind.

Next, look up synonyms for your ideas and see if anything catches your eye. Alternatively, you can enter your ideas or keywords into a business name generator. Shopify has an excellent brand-name generator that you can use. The generator even checks the domain availability for your business names.

There are still a few things to consider before you settle on a business name. First, you’ll want to make sure that the name isn’t already trademarked or used by another business. Second, you may also want to confirm that the name isn’t derogatory or inappropriate when translated to a different language. This measure is critical if you hope to sell internationally.

Create a Logo

Your logo doesn’t need to be complicated. Some of the memorable logos are simple. Some examples here include the McDonald’s golden arches or the Nike swoosh. Your logo will be the face of your brand, so it needs to represent what you have to offer accurately.

There are a few things to think through before designing your logo. These include:

  • Why did you start your business?
  • What are your company’s values?
  • What sets you apart from the competition?

The answers to these questions will help you identify your brand’s most distinguishing features. Also, look through as many logos as you can. Save the ones you like and consider what makes them appealing to you. This is a great way to gain inspiration if you don’t have a solid idea for a logo.

You can use a free logo maker to help you design your logos. Hatchful by Shopify is an excellent example of a popular free logo maker. You don’t even need to be a Shopify merchant to use it. The tool comes with an intuitive design studio. You can easily add icons, customize colors, and edit layouts to create your unique logo. 

Hatchful also offers industry-specific logos. Here, you can enter your brand values, and the tool will help you design a relevant logo. Alternatively, you can hire an experienced designer if you have the budget for it.

Add Your Products

Adding your products to Shopify is very easy. Simply go to Products > Add Product to create your product listing.

You’ll be able to add product titles, product descriptions, images, and more. Showcase your products and remember to describe them in detail. You’ll also want to include product keywords in your descriptions.

Include high-quality photos of your clothes. Be sure to capture different angles of your clothing to give customers a good idea of what they are buying. If possible, have images of real people wearing the clothes and not just on a hanger or mannequin. 

Step 6 – Start Selling

All your hard work is about to pay off. In just a few more steps, you’ll finally be able to start selling. Hopefully, this will be a profitable endeavor to scale up as you gain more business experience and build a loyal customer base.

Price Your Products

Product pricing affects every part of your business. Therefore, you’ll need to think long and hard about how to price your pieces. Some factors to consider when pricing your clothes include target audience, expenses, profit margin, and sales tax. Try to walk the line between attracting your customers and funding your production costs. Look at what other stores are selling similar products for and make sure your prices are competitive.

Sort Out Shipping

You’ve put in a lot of work so far. However, a poor shipping experience can quickly undo all your hard work. There is a lot to cover when coming up with a shipping strategy. Some of the factors to consider include:

  • Whether you’ll offer flat-rate shipping, free shipping, or pass the shipping cost on to the customer
  • Packaging
  • Product weight

You can save yourself a lot of hassle by using Shopify Shipping. This service lets you enjoy up to 88% off shipping from major carriers, including UPS, USPS, and DHL. You’ll also be able to buy and print shipping labels and fulfill orders right from your dashboard.

Market Your Clothing Business

Brand awareness is part and parcel of running a successful clothing store. There are multiple channels where you can successfully market your store, including Instagram, Facebook ads, influencer marketing, email marketing, and search engine optimization (SEO). The goal of your marketing strategy is to set yourself up as the go-to store in your niche.

Setting up your clothing store with Shopify also comes with marketing advantages. You’ll get access to the Shopify App Store, which is packed with more than 4,000 marketing and sales apps. Most of these apps don’t require you to have any marketing experience and easily integrate into your store.

Cutouts

Ahmad Shadeed dug into shape “cutouts” the other day. Imagine a shape with another smaller shape carved out of it. In his typical comprehensive way, Ahmad laid out the situation well—looking at tricky situations that complicate things.

The first thing I’d think of is CSS’ clip-path, since it has that circle() syntax that seems like it a good fit, but no!, we need the opposite of what clip-path: circle() does, as we aren’t drawing a circle to be the clipping path here, but drawing all the way around the shape and then up into that second smaller circle and back out, like a bite out of a cookie. That puts us in clip-path: path() territory, which mercifully exists, and yet!, doesn’t quite get there because the path() syntax in CSS only works with fixed-pixel units which is often too limiting in fluid width layouts.

So that puts us at clip-path: url("#my-path"); (referencing an <svg> path), which is exactly where Ahmad starts this journey. But then he explores other options like a clever use of mask-image and a direct use of SVG <mask> and <image>, which turns out to be the winner.

Ideas like this have a weird way of entering the collective front-end developer consciousness somehow. Jay wrote up a very similar journey of wanting to do a shape cutout. Again, the problem:

clip-path defines a visible region, meaning that if you want all but a tiny chunk of the button to be visible, you need to define a path or polygon which is the inverse of the original. Here’s a demo of what I mean, using Clippy:

Jay Freestone, “Cutouts with CSS Masks”

In this case, polygon() has potential because it supports % units for flexibility (also, don’t miss Ana’s idea where the unit types are mixed within the polygon for a some-fixed-some-fluid concept).

Jay’s conclusion is that SVG has the most benefits of all the options:

[…] my overall impression is that mask-composite remains the more flexible solution, since it becomes trivial to use any SVG shape as the mask, not just a triangle or a simple polygon. The likelihood is that you’ll want to simply export an SVG and drop it in. Engineering the inverse result as clip-path is likely to get pretty hairy quickly.

Direct Link to ArticlePermalink


The post Cutouts appeared first on CSS-Tricks. You can support CSS-Tricks by being an MVP Supporter.

HTML is Not a Programming Language?

HTML is not a programming language.

I’ve heard that sentence so many times and it’s tiring. Normally, it is followed by something like, It doesn’t have logic, or, It is not Turing complete,.so… obviously it is not a programming language. Like it’s case-closed and should be the end of the conversation.

Should it be, though?

I want to look at typical arguments I hear used to belittle HTML and offer my own rebuttals to show how those claims are not completely correct.

My goal is not to prove that HTML is or is not a programming language, but to show that the three main arguments used for claiming it is not are flawed or incorrect, thus invalidating the conclusion from a logical point of view.

“HTML is a markup language, not a programming language”

This statement, by itself, sounds great… but it is wrong: markup languages can be programming languages. Not all of them are (most are not) but they can be. If we drew a Venn diagram of programming languages and markup languages, it would not be two separate circles, but two circles that slightly intersect:

A markup language that operates with variables, has control structures, loops, etc., would also be a programming language. They are not mutually exclusive concepts.

TeX and LaTeX are examples of markup languages that are also considered programming languages. It may not be practical to develop with them, but it is possible. And we can find examples online, like a BASIC interpreter or a Mars Rover controller (which won the Judges’ prize in the ICFP 2008 programming contest).

While some markup languages might be considered programming languages, I’m not saying that HTML is one of them. The point is that the original statement is wrong: markup languages can be programming languages. Therefore, saying that HTML is not a programming language because it is a markup language is based on a false statement, and whatever conclusion you arrive at from that premise will be categorically wrong.

“HTML doesn’t have logic”

This claim demands that we clarify what “logic” means because the definition might just surprise you.

As with Turing-completeness (which we’ll definitely get to), those who bring this argument to the table seem to misunderstand what it is exactly. I’ve asked people to tell me what they mean by “logic” and have gotten interesting answers back like:

Logic is a sensible reason or way of thinking.

That’s nice if what we’re looking for is a dictionary definition of logic. But we are talking about programming logic, not just logic as a general term. I’ve also received answers like:

Programming languages have variables, conditions, loops, etc. HTML is not a programming language because you can’t use variables or conditions. It has no logic.

This is fine (and definitely better than getting into true/false/AND/OR/etc.), but also incorrect. HTML does have variables — in the form of attributes — and there are control structures that can be used along with those variables/attributes to determine what is displayed.

But how do you control those variables? You need JavaScript!

Wrong again. There are some HTML elements that have internal control logic and don’t require JavaScript or CSS to work. And I’m not talking about things like <link> or <noscript> – which are rudimentary control structures and have been part of the standard for decades. I’m referring to elements that will respond to the user input and perform conditional actions depending on the current state of the element and the value of a variable. Take the <details>/<summary> tuple or the <dialog> element as examples: when a user clicks on them, they will close if the open attribute is present, and they will open if it is not. No JavaScript required.

So just saying alone that HTML isn’t a programming language because it lacks logic is misleading. We know that HTML is indeed capable of making decisions based on user input. HTML has logic, but it is inherently different from the logic of other languages that are designed to manipulate data. We’re going to need a stronger argument than that to prove that HTML isn’t a form of programming.

“HTML is not ‘Turing complete’”

OK, this is the one we see most often in this debate. It’s technically correct (the best kind of correct) to say HTML is not Turing complete, but it should spark a bigger debate than just using it as a case-closing statement.

I’m not going to get into the weeds on what it means to be Turing complete because there are plenty of resources on the topic. In fact, Lara Schenck summarizes it nicely in a post where she argues that CSS is Turning complete:

In the simplest terms, for a language or machine to be Turing complete, it means that it is capable of doing what a Turing machine could do: perform any calculation, a.k.a. universal computation. After all, programming was invented to do math although we do a lot more with it now, of course!

Because most modern programming languages are Turing complete, people use that as the definition of a programming language. But Turing-completeness is not that. It is a criterion to identify if a system (or its ruleset) can simulate a Turing machine. It can be used to classify programming languages; it doesn’t define them. It doesn’t even apply exclusively to programming languages. Take, for example, the game Minecraft (which meets that criterion) or the card game Magic: The Gathering (which also meets the criterion). Both are Turing complete but I doubt anyone would classify them as programming languages.

Turing-completeness is fashionable right now the same way that some in the past considered the difference between compiled vs. interpreted languages to be good criteria. Yes. We don’t have to make a big memory effort to remember when developers (mainly back-end) downplayed front-end programming (including JavaScript and PHP) as not “real programming.” You still hear it sometimes, although now faded, mumbled, and muttered.

The definition of what programming is (or is not) changes with time. I bet someone sorting through punched cards complained about how typing code in assembly was not real programming. There’s nothing universal or written in stone. There’s no actual definition.

Turing-completeness is a fair standard, I must say, but one that is biased and subjective — not in its form but in the way it is picked. Why is it that a language capable of generating a Turing Complete Machine gets riveted as a “programming language” while another capable of generating a Finite State Machine is not? It is subjective. It is an excuse like any other to differentiate between “real developers” (the ones making the claim) and those inferior to them.

To add insult to injury, it is obvious that many of the people parroting the “HTML is not Turing complete” mantra don’t even know or understand what Turing-completeness means. It is not an award or a seal of quality. It is not a badge of honor. It is just a way to categorize programming languages — to group them, not define them. A programming language could be Turing complete or not in the same way that it could be interpreted or compiled, imperative or declarative, procedural or object-oriented.


So, is HTML a programming language?

If we can debase the main arguments claiming that HTML is not a programming language, does that actually mean that HTML is a programming language? No, it doesn’t. And so, the debate will live on until the HTML standard evolves or the “current definition” of programming language changes.

But as developers, we must be wary of this question as, in many cases, it is not used to spark a serious debate but to stir controversy while hiding ulterior motives: from getting easy Internet reactions, to dangerously diminishing the contribution of a group of people to the development ecosystem.

Or, as Ashley Kolodziej beautifully sums it up in her ode to HTML:

They say you’re not a real programming language like the others, that you’re just markup, and technically speaking, I suppose that’s right. Technically speaking, JavaScript and PHP are scripting languages. I remember when it wasn’t cool to know JavaScript, when it wasn’t a “real” language too. Sometimes, I feel like these distinctions are meaningless, like we built a vocabulary to hold you (and by extension, ourselves as developers) back. You, as a markup language, have your own unique value and strengths. Knowing how to work with you best is a true expertise, one that is too often overlooked.

Independent of the stance that we take on the “HTML is/isn’t a programming language” discussion, let’s celebrate it and not deny its importance: HTML is the backbone of the Internet. It’s a beautiful language with vast documentation and extensive syntax, yet so simple that it can be learned in an afternoon, and so complex that it takes years to master. Programming language or not, what really matters is that we have HTML in the first place.


The post HTML is Not a Programming Language? appeared first on CSS-Tricks. You can support CSS-Tricks by being an MVP Supporter.

How to Fix the “Sorry, You Are Not Allowed to Access This Page” Error in WordPress

Are you frustrated by the “Sorry, you are not allowed to access this page” error in WordPress?

This error usually displays when you’re trying to see a page in your WordPress dashboard that your user role doesn’t have permission to see.

However, you might see the error sometimes even when you’re supposed to have access to that page. This error can be caused by lot of different reasons which makes it tricky for beginners to troubleshoot.

In this article, we’ll show you how to fix the “Sorry, you are not allowed to access this page” error in WordPress.

How to Fix the 'Sorry, You Are Not Allowed to Access This Page' Error in WordPress

What Causes the “Sorry, You Are Not Allowed to Access This Page” Error in WordPress?

WordPress user roles and permissions define what your users can and can’t do in WordPress. For example, an author on your site wouldn’t be able to edit the post of another author, only their own posts.

If someone gave an author the link to edit someone else’s post, then they would see the “Sorry, you are not allowed to access this page” WordPress error when following the link.

However, sometimes you might see “Sorry, you are not allowed to access this page” when you should have access to view the page.

If you’re not the site owner or administrator, and you’re seeing this error, then you should contact the site owner or admin to let them know. They can explain why you don’t have access to the page, or they can change your role to grant you access.

If you are the site owner or have an admin role, but you’re still seeing the “Sorry, you are not allowed to access this page” error when trying to log in to your own website, then something has gone wrong with the permissions.

Maybe there was an issue with a WordPress update. Maybe there was a problem when a theme or plugin was updated. Or maybe something has gone wrong with your configuration.

If you’re seeing this error when you try to log in, then you won’t be able to fix the error by changing your WordPress settings in the dashboard. You’ll have to work with the files and databases directly.

This can be tricky for beginners and making a mistake could make things worse. As a precaution, we recommend you first make a complete backup of your WordPress website.

You could also start by contacting your hosting provider. They may be able to fix the problem for you.

That being said, here are some steps you can follow to troubleshoot and fix the “Sorry, you are not allowed to access this page” error in WordPress.

Checking You Have the Correct WordPress Role

If you’re able to log in to the WordPress dashboard, but can’t access specific pages, then the issue could be that your WordPress user role was changed, and you’re no longer an admin.

From the WordPress dashboard, you can see your user role by visiting the Users » All Users page, and looking under the ‘Role’ column.

View all users and user roles in WordPress

If you don’t have access to the Users page, then this means that you are not an administrator.

If you or someone else accidentally deleted your administrator account or changed your user role, then you can add a new admin user with phpMyAdmin.

Checking for a Corrupt .htaccess File

If you have an admin user role, and you’re still seeing the “Sorry, you are not allowed to access this page” error, then it could be caused by a corrupt .htaccess file. We can check this by renaming the file.

You will need to use an FTP client or the file manager feature in your WordPress hosting account. If you haven’t used FTP before, then you may want to see our guide on how to use FTP to upload files to WordPress.

Using your FTP client, you need to navigate to the root folder containing all your WordPress files. Once you find the .htaccess file you need to rename it to something else, such as .htaccess.old.

Right Click to Rename .htaccess

If you cannot find your .htaccess file, then see our guide on how to find .htaccess in WordPress.

Once you rename the file, try logging onto your WordPress site to see if that has fixed the problem. If it hasn’t, then rename it back to .htaccess and move on to the next step.

If you can log in, then you fixed the problem. The next step is to generate a new .htaccess file. To do that, navigate to the Settings » Permalinks page in WordPress.

Click Save Changes

Simply click on the Save Changes button at the bottom of the page and WordPress will generate a fresh .htaccess file.

Checking for Incorrect File Permissions

While you have your FTP client open, we’ll check to make sure there isn’t a problem with your file permissions. File permissions control who can access files and folders on your website.

The following settings are recommended for most users:

755 for all folders and sub-folders.
644 for all files.

Using your FTP client, you need to navigate to the root folder containing all your WordPress files and select the wp-admin, wp-content and wp-includes folders. Then you need to right click and select ‘File Permissions’.

Right Click to Select File Permissions

This will bring up the file permissions dialog box.

Now you need to enter 755 in the numeric value field. After that, you can click on the ‘Recurse into subdirectories’ checkbox and then select ‘Apply to directories only’ option.

Folders Should Have Permissions of 755

Click on the OK button to continue. Your FTP client will start setting file permissions to folders and sub-folders. You will need to wait for it to finish.

Next, you need to select all files and folders in the root folder of your WordPress site and then right click to select file permissions.

Right Click to Select File Permissions

The file permissions dialog box would appear.

This time you need to enter 644 in numeric value. After that you need to click on ‘Recurse into subdirectories’ checkbox and then select ‘Apply to files only’ option.

Files Should Have Permissions of 644

Click on OK to continue and your FTP client will now start setting file permission to all files on your WordPress site.

Once you’ve done this, try logging into your WordPress website again. If you’re successful, then you’ve fixed the problem. If not, then move on to the next step.

Deactivating All Plugins Using FTP

If the steps above haven’t resolved the issue, then our next step is to check whether a faulty WordPress plugin is causing the error. We’ll do that by temporarily deactivating all plugins.

First, you need to connect to your website using an FTP client. Once connected, you need to navigate to the /wp-content/ folder.

Right Click to Rename the Plugins Folder

Once there, you will see a folder called plugins. This is where WordPress stores all plugins installed on your website.

You need to right click on the plugins folder and select Rename. Next, you should type in a different name. We will call it ‘plugins.deactivate’.

The Folder is Now Named plugins.deactivated

All of your plugins have been deactivated. Now try to log into your WordPress site to see if this has fixed the problem.

If you still receive the “Sorry, you are not allowed to access this page” error, then the problem isn’t caused by a plugin. You’ll need to rename the ‘plugins.deactivate’ folder back to ‘plugins’ and move on to the next step.

If you can now log in, then you know that one of the plugins is causing the error. We just have to find out which one.

Using your FTP client, rename the ‘plugins.deactivate’ folder back to ‘plugins’ then navigate inside the plugins folder. Now rename the first plugin to something like ‘plugin-name.deactivate’.

Now go back to your site to see if you can log in. If you can’t, then change the plugin’s name back and move on to the second plugin. Repeat the process until you find the one that caused the issue.

Once you’ve found the faulty one, you can switch to a different plugin that doesn’t cause the problem. Or you can contact the plugin author and work with them to come up with a solution.

Activating the Default Theme Using FTP

If the plugin solution didn’t work for you, then we’ll need to check if your WordPress theme could be causing this issue.

This step is similar to deactivating your plugins. You’ll need to connect to your website using an FTP client and navigate to the wp-content folder.

Right Click to Rename the Themes Folder

Once there, you will see a folder called themes. This is where WordPress stores all themes installed on your website.

This time you need to right-click on the plugins folder and select Rename. We’ll call it ‘themes.deactivate’.

This will activate the default theme. Now try to log into your WordPress site to see if this has fixed the problem.

If you still receive the “Sorry, you are not allowed to access this page” error, then the problem isn’t caused by a theme. You need to rename the ‘themes.deactivate’ folder back to ‘themes’ and move on to the next step.

If you can log in, then the previous theme caused the problem and you can start to troubleshoot. You could try using a different theme or reinstall the same theme and carefully configure it.

If the error returns, then report it to the theme author. They may be able to help you solve the problem or fix a bug in the theme.

Final Troubleshooting Steps

If you’re still reading, then unfortunately the other steps haven’t solved your problem. Here are a few more things you can try.

Check Error Log

You may be able to check an error log for clues about what went wrong. Your hosting provider may be keeping logs, or you may have previously set WordPress up to keep them.

For more details, check our guide on how to set up WordPress error logs, or contact your hosting provider.

Update to Latest PHP

If your WordPress site is running an older version of PHP, then it may be causing problems. Upgrading to the latest version may be helpful.

For more information, check our guide on how PHP updates by your web host impact your WordPress site, or contact your hosting provider.

Restore Your Most Recent Backup

If you’ve made a recent backup of your WordPress website, then restoring it to an earlier version is likely to fix the “Sorry, you are not allowed to access this page” error.

The problem is, you will lose any changes to your settings and content made after the backup.

For more information, check our beginner’s guide on how to restore WordPress from backup.

Contact Your Hosting Provider

If you are unable to fix the error on your own, then you should contact your WordPress hosting company to see if there is anything they can do.

Many providers offer excellent technical support and may be able to solve the problem for you.

For example, they may be able to check their server error logs or have created their own backups of your WordPress site. They will be able to advise you on how they can help and what you should do next.

For the best results, make sure you check our guide on how to properly ask for WordPress support and get it.

We hope this tutorial helped you learn how to fix the “Sorry, you are not allowed to access this page” error in WordPress. You may also want to bookmark our ultimate troubleshooting guide of the most common WordPress errors, or see our guide on how to get a free email domain.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Fix the “Sorry, You Are Not Allowed to Access This Page” Error in WordPress appeared first on WPBeginner.

Simple code: Version control commits

Currently the most popular version control system is git and I'll be writing this based on git and it's functionalities and capabilities.

Git is often seen as a way to enable distributed programming i.e. multiple programmers can work on the same code repository quite easily without disturbing each others work (much). In addition to that just like other VCS's it's also a log of work but to my experience that part is often unfortunately neglected. What I will be focusing this time is the log part because I think it deserves more attention.

Why to create a meaningful log?

The git log should consist from small meaningful changesets where each commit addresses a single problem. By dividing the log to small commits it enables resilient way of working. Being resilient enables simple and fast procedures to rollbacks, reviews, tags, branching etc.

Lets say that a developer is implementing a REST API. The API needs a web layer that receives the HTTP requests, it probably has some sort of logic layer to do data transformations and validations and maybe some calculations and finally it has a data storage where the data is persisted. There are options how to record this work to the log. One option would be to implement the API and record a single commit or squash the commits before pushing the changes to remote so it would become a single commit. Another option would be to record commits every now and then while developing and finally push those commits as is to the remote repository. Yet another way would be to carefully pick what is recorded per commit in order to have a set of meaningful commits that each address a single issue.

Example of the first approach would be something like this: