This Week in Spring: Runtime, Debugging, and Boosting Microservices Performance

Hi, Spring fans! Welcome to another installment of This Week in Spring! This week, I’m in... I’m home! Look at that! I’m home for the epic SpringOne Tour San Francisco event. I’m super excited to be here in this amazing weather with an amazing community. It’s been a busy week though! Last week, I returned from Spain for my kid’s graduation, and I am still so so proud. Tomorrow, I fly to Cork, Ireland, for the Cork JUG, and then, it’s off to London for a wedding. So, lots of travel, but a bit of a lighter load.

We’ve got a lot to cover, so let’s get to it!

Reverse Engineering of a Not-So-Secure IoT Device

The Internet of Things is coming! It started out as overused marketing hype with no real use case (who needs internet-connected fridges? And who wants the internet-connected toilet paper?).

New ‘things’ start to pop up, whether useful or not: from smart bulbs (Philips Hue), thermostats (Nest), smart TVs (Samsung and others), to voice assistants (Alexa, Cortana, Google). You might even have installed one of these, right? What about temperature and humidity sensors? There is probably nothing wrong with that?

Using FIFO Queues to Order Messages in Mule 4

Objective

Very often we come across requirements to maintain the order of messages that flow through the integration layer. For example, if Source System A updates a record, it needs to be updated accordingly in Target System B, but when there are multiple consecutive updates in System A, those need to be updated in the Target System B in the correct order. In a distributed multi-threaded environment, there is always a chance of a race condition where an older record may overwrite a newer record.

Scenario

If the status of an entity in Source System A, say #1234 is updated as “In-Progress” and subsequently updated again to “Complete”, the Source System A invokes an API implemented in Mule every time there is a status update to sync the record with Target System B. Most of the time, we would prefer implementing an asynchronous flow with queues in between to sync the records between the two systems. If the API invokes a publisher flow which publishes the messages into a Queue (say in Anypoint MQ) and there is a subscriber flow picks up the messages and updates the Target System B, then we can not guarantee the order of messages. Considering this scenario, there is always a chance that the status of “Complete” gets overwritten by “In-Progress” in the Target System B. The below diagram explains the scenario.

WPWeekly Episode 355 – Food Poisoning Is No Joke

In this episode, John James Jacoby and I discuss Joost de Valk’s decision to step down as WordPress’ Marketing Lead. I shared my recent encounter with food poisoning and some of the lifestyle changes I’m making to improve my health. We also talk about a new experimental plugin by Automattic that aims to provide full site editing and FreeCodeCamp’s decision to migrate away from Medium to Ghost.

Stories Discussed:

Joost de Valk Steps Down as WordPress Marketing Lead

FreeCodeCamp Moves Off of Medium after being Pressured to Put Articles Behind Paywalls

Automattic is Testing an Experimental Full Site Editing Plugin

WPWeekly Meta:

Next Episode: Wednesday, June 12th 3:00 P.M. Eastern

Subscribe to WordPress Weekly via Itunes

Subscribe to WordPress Weekly via RSS

Subscribe to WordPress Weekly via Stitcher Radio

Subscribe to WordPress Weekly via Google Play

Listen To Episode #355:

A Course About CSS Layout and Animations

Christina Gorton just released a new course called CSS Layout and Animations as a part of Design+Code, which is a $9/month. That includes a ton of video training on everything from stuff like this to React to Sketch to iOS development... and beyond!

Christina approaches the course with my favorite way to learn this stuff: by starting from a lovely design and then pulling it off with code.

That's Figma as the design tool, which is another tool I love.

Of course, what I really love is that:

  • The course is full of CSS trickery and modern HTML & CSS features, like using flexbox and grid in practical ways.
  • She uses CodePen to prototype everything — the perfect place to get started with a project like this, in my humble opinion.

Direct Link to ArticlePermalink

The post A Course About CSS Layout and Animations appeared first on CSS-Tricks.

How to Be a Digital Nomad: Practical Tips

Being a digital nomad in the Philippines would be pretty flippin' fantastic.

You can’t buy happiness, but you can always buy a plane ticket. And if you are secretly dreaming about buying a one-way ticket to Thailand, grabbing a backpack, and never showing up at your cubicle anymore, it’s probably time to take the first step towards your dream of being what is now known as a digital nomad.

Usually, people don’t just abscond from boring offices to settle down somewhere in South East Asia with a laptop. Becoming a location independent professional is a major shift in life, and preparing for it can take years. In this article, we’ve collected advice from people who are successfully managing work and traveling. So, if you, too, want to be a digital nomad, read on. 

Google Adds New Desktop/Mobile Selector to the Rich Results Testing Tool

Google’s rich results testing tool has been updated to include a selector for desktop or mobile so website owners can check their results on both platforms. This tool shows if pages are properly structured for display in Google’s carousels, images, breadcrumbs, events, books, and other types of rich snippets. A glossary is available with images showing what each type of result looks like with the proper structured data in place.

Last week Google announced that it will begin enabling mobile-first indexing (crawling sites with a mobile user-agent) by default for new domains on July 1, 2019. Site owners can select “Googlebot Smartphone” as the user-agent on the rich results testing tool to see if their sites are prepared for mobile-first indexing. The tool is still in beta, so not all rich results and error types are supported yet.

If your page supports rich results, you will see a confirmation and can click through to view the HTML. Certain rich result types will display a preview of how the result might appear in Google Search. If multiple result layouts are available, the tool will also let you drill down into the different layouts for both desktop and mobile.

If you get a result that says “Page not eligible for rich results known by this test” when you know that you have the structured data in place, it could be because the beta version of this tool only supports a subset of rich result types. These currently include job postings, recipes, courses, TV and movie, events, and Q&A pages.

You can also test your page using this tool by putting in a code snippet, in case your content is not publicly accessible or is restricted behind authorization.

Depending on your specific requirements, there are many different WordPress plugins that properly structure data to improve how your content appears in rich results around the web, such as Schema, All In One Schema Rich Snippets, Schema App Structured Data, Rank Math, and Yoast SEO, to name a handful of popular options.

Apple Quietly Reveals iOS 13 Developer Tools

Apple's WWDC keynote showed the company and it's polished best. The 2-hour, 15-minute extravaganza was heavy on user-facing updates to iOS for iPhones, watchOS for wearables, macOS for laptops and desktops, tvOS for Apple TV, and the brand new iPadOS for the iPad.

15 Best Events WordPress Themes

15 Best Events WordPress ThemesThere are tons of awesome WordPress themes out there, but when it comes to an event website, the theme you use needs to have specific features. You want to effectively promote your event, display pertinent dates and times, and offer a registration and payment system to make filling the seats in your venue a breeze. […]

The post 15 Best Events WordPress Themes appeared first on WPExplorer.

TransferMate Introduces Global Payment API

TransferMate, a B2B payment provider, has introduced itsTransferMate Payment API. The API allows users to integrate TransferMate's globally regulated payment technology with third-party apps and systems (e.g. ERP systems, accounting platforms, etc.). The API can facilitate thousands of payments concurrently, greatly reducing administrative workload, payment time, and account reconciliation.

Joost de Valk Steps Down as WordPress Marketing Lead

Joost de Valk has announced that he’s stepped down from the WordPress Marketing and Communications Lead role. The position was created and awarded to de Valk earlier this year. Not only was it a new position, but it also expanded the leadership roles in the WordPress project.

Despite making progress, de Valk didn’t feel as though he was fulfilling the leadership aspect of his role. “My experience over the last few months made me feel that while I was doing things and getting things done, I certainly wasn’t leadership. I don’t want to pretend I have a say in things I don’t have a say in,” he said.

Not having a clear definition of what marketing means and having people within the project on the same page contributed to his decision.

“There’s a stark difference between where I thought I would be in the organization in this role, and where I am actually finding myself now,” de Valk said.

“Even things that every outsider would consider marketing (release posts, about pages) are created without even so much as talking to me or others in the marketing team. Because I felt left out of all these decisions, I feel I can’t be a marketing lead.”

He also cited a lack of clarity surrounding his position, “I’ve been asked dozens of times on Twitter, Facebook and at WordCamps why I now work for Automattic, which of course I don’t but that is the perception for a lot of people,” he said. “On other occasions, I seem to be the token non-Automattician, which I’m also uncomfortable with.”

Due to taking a toll from failing to fulfill the position, de Valk plans to take an extended vacation during the Summer and when he returns, focus 100% of his efforts on Yoast and his Chief Product Officer role.

Matt Mullenweg commented on de Valk’s article thanking him for being willing to try new things and for his passion, impatience, and drive to improve WordPress.

#224: Community Roundup

Show Description

Cassidy and Marie share some of the fun things CodePen community members are doing around the web including newsletters, Pass the Pen, JSConfEU, and Zdog.

Time Jumps

  • 00:54 Zdog
  • 05:05 Christina Gorton UI Design Course
  • 11:01 Sponsor: Discover.bot
  • 12:00 Taking time to mess around with things
  • 18:21 Andy Bell's newsletter
  • 22:20 JS Conf

Sponsor 11:01: Discover.bot

Discover.bot – a digital space for bot developers and enthusiasts of all skill levels to learn from one another, share stories, and move the bot conversation forward. Want to learn more about building bots? Get started with their Guide to Bot Building Frameworks.

Show Links

CodePen Links

The post #224: Community Roundup appeared first on CodePen Blog.

JAMstack? More like SHAMstack.

I'm a fan of the whole JAMstack thing. It seems like a healthy web movement. I'm looking forward to both of the upcoming conferences.

I feel like the acronym might not be quite doing it justice though. Not that I suggest we change it. Once a thing like that has legs, I find it's best to roll with it. Same deal with serverless. Heck, the name of this website is pretty... not great.

To me, the most important part of JAMstack is rooted in the concept of static file hosting. Static file hosting is the foundation of all the power. It opens up a bunch of doors, like:

  • Everything can be CDN-hosted. "The edge," as they say. Even the HTML (the M in JAMStack also refers to Markup) can be CDN-hosted, which you otherwise can't do. That gives you an amazing base of speed that encourages you to keep that speed as you build.
  • The project feels easier to work with. Git clone, npm install, build. Deployments are git pushes of a dist folder. It's so cool, for example, Netlify gives you a URL for every build, even on branches you're working on. This is made possible by deploys being kind of immutable. A set of files at a particular point in time.
  • Cloud functions are awesome. Because you don't have a traditional server-side language to reach for, you build it with cloud functions when you do need server-side code — which is a cool way to architect things anyway and is very spiritually connected to all this.

Don't think, "Oh, JAMstack is just for Jekyll blogs," or whatever. True, static site generators are extremely JAMstack-y, and JAMstack highly encourages as much prebuilt markup as possible (which is good for speed and SEO and all that), but pre-built markup isn't a requirement.

I'd go so far as to say that a client-side JavaScript-powered app that ships a <div id="root"></div> and a bundle of JavaScript that hits APIs and builds out the site is still a JAMstack site. It's still statically hosted (probably) with cloud functions serving up data.

But as long as you're JAMStack anyway, that encourages you to put more in those static files. In that way, it encourages static content as well, when possible. I'd say "server-side rendered" (SSR) as that's the common term, but it's beyond that. It's not a server side language generating the markup on request; it's built in a build step ahead of time, before deployment. Again it's not required, just encouraged.

So, we've got static-hosted HTML, and all our other files (e.g. CSS, images, etc.) are also static. Then:

  • The J of JAMstack is JavaScript.
  • The A of JAMstack is APIs.

They are sorta kinda the same thing. Your JavaScript files are statically hosted. They run, and they talk to APIs if they need to. A common example might be a GraphQL endpoint coughing up some content.

An interesting twist here is that you can half-and-half this stuff. In other words, you can pre-build some of the markup, and wait for JavaScript and API calls for other parts. Imagine an e-commerce site with a homepage and a dozen other pages you can pre-build entirely, but then a catalog of thousands of products that would be too impractical to statically generate (too slow). They are just a single scaffolded template that flesh themselves out with client-side API calls.

So, if we were to make a new acronym, perhaps we'd include Static Hosting in there and combine the JavaScript and APIs into just APIs, leaving us with...

Static Hosting, APIs, and Markup, or the SHAMstack. Errrrr 😬 maybe not.

The post JAMstack? More like SHAMstack. appeared first on CSS-Tricks.

Self-Host Your Static Assets

Harry Roberts digs into why hosting assets on someone else’s servers (including CDNs) is not such a great idea if we want our websites to be lightning fast.

Harry writes:

One of the quickest wins—and one of the first things I recommend my clients do—to make websites faster can at first seem counter-intuitive: you should self-host all of your static assets, forgoing others’ CDNs/infrastructure.

I think perhaps the most shocking example Harry shows is this one:

...on a reasonably fast connection, hosting these static assets off-site is 311ms, or 1.65×, slower than hosting them ourselves.

By linking to three different origins in order to serve static assets, we cumulatively lose a needless 805ms to network negotiation. Full test. Okay, so not exactly terrifying, but Trainline, a client of mine, found that by reducing latency by 300ms, customers spent an extra £8m a year. This is a pretty quick way to make eight mill.

It’s clear from Harry’s example (as well as the rest of the examples on WPO stats) every millisecond counts when it comes to performance. And, if we can alleviate even a third of a second of latency by moving our assets around, we should probably go do that.

Direct Link to ArticlePermalink

The post Self-Host Your Static Assets appeared first on CSS-Tricks.

Website Builders to Avoid in 2019

So you’re ready to build a website but don’t know how to get started. Don’t worry; we’ve all been there.

One of the first steps is finding the best website builder to meet your needs based on the type of website you’re trying to create. But if you run a Google search for website builders, you’ll quickly realize that there are dozens of options to choose from. This can be a bit intimidating.

If you’ve never built a website before, it might be tough to tell the difference between a good website builder and a platform that’s going to give you nothing but problems.

That’s what inspired me to write this guide. Everyone else out there is telling you what website builders you should be using, but very few people are telling you which ones to avoid.

Before you get started, ask yourself if a website builder, in general, is even your best option.

For those of you who are experts in HTML, CSS, and want complete control and customization from the backend, you might not be happy using a website builder to create your site. This is especially true if you’re trying to create a site that’s intended to become the next Facebook or something like that.

But for everyone else, using a website builder to create your site will likely be your best option.

Website builders are great for small business owners, ecommerce sites, selling services online, photography portfolios, hotels, restaurants, blogs, and personal sites. It’s the perfect way to build a site if you don’t know much about coding, design, HTML, or CSS.

How to evaluate a website builder

Now that you’ve decided that a website builder is your best option, it’s time to figure out which platform to use. Once you start browsing the web, there are specific indicators you should be looking for to determine if a website builder is suitable for you.

At the same time, there are also certain red flags that will tell you if the site builder is one that should be avoided altogether.

These are the factors that need to be taken into consideration when you’re evaluating a website builder.

User experience

In this case, you’re the user who needs to be having a good experience. That’s why you need to pick a website builder that’s very easy to use.

If it has complex navigation, doesn’t offer drag and drop building, and makes it difficult to preview the pages you’re working on, then you’re going to struggle.

On the flip side, you don’t want to go with a website builder that has been simplified to the point where you lose the ability to complete certain functions.

I always recommend starting with a free trial of a website builder before you commit. The week or two that they give you for free will be a good indication of the builder’s ease of use.

If you’re experiencing too much friction, it’s in your best interest to explore other options.

Support

Once you decide on an option, it doesn’t automatically mean that you’re going to become an expert at building websites overnight. There’s a good chance that you’re going to have some questions that require assistance along the way.

So make sure you pick a website builder that offers great customer support.

For example, Wix has exceptional support pages.

Wix Support

These are all of the guides and articles they offer related to the editor basics. They also have extensive guides about:

  • Plans
  • Domains
  • Site management
  • Mailboxes
  • Mobile editor
  • Wix stores
  • Technical difficulties
  • Marketing tools
  • SEO

The list goes on and on. Furthermore, Wix offers 24/7 support if you need additional assistance that requires the help of a customer service representative.

As one of the top website builders on the market, you can always refer to Wix support and compare it to the builder that you’re evaluating to see how it stacks up. See if the other option provides tutorials or access to representatives when you’re in a bind and need help right away.

Features

I briefly mentioned this before when we were discussing ease of use. You don’t want to pick a website builder so simple that you end up losing features.

You need to make sure that everything you want to do on your site is available.

Right now your site might be something basic, like a blog. But in the future, you may want to expand and add things like a shopping cart to build an ecommerce website.

  • Mobile-friendly design
  • Image gallery for portfolios
  • Templates
  • SEO checker
  • Profiles for site visitors
  • Password protection for pages and content
  • Connect your domain name (even if you didn’t buy the domain directly from the builder)

For those of you who haven’t purchased a domain yet, you can check out my guide on the best domain registrars.

Quality

At the end of the day, you don’t want the process of building and managing your website to interfere with your final product.

The people who land on your website don’t care what builder you’re using or how difficult it was for you to create it. First impressions matter. All they want to see is a professional site that’s legitimate and user-friendly.

First Impression

You can’t afford to overlook this reality as a new website.

Think about it from the perspective of people landing on your site.

How can get you them to stay on your site and keep coming back in the future? If your website builder is making your site look unprofessional or untrustworthy, you’re going to struggle with this.

Furthermore, you don’t want to have a website that looks basic and cookie-cutter.

Performance

Website speed and uptime are two factors that can’t be overlooked when you’re evaluating a website builder.

load time

83% of people expect a web page to load in three seconds or less.

Most website builders will claim to have 99.9% uptime and lightning fast loading speed. But you can’t always take their word for it.

Like any other product or service you buy online, you should read reviews. See if other website owners are complaining about the website builder and the performance of their sites.

While nearly every website builder will have some negative reviews, it’s definitely a red flag if you see more bad reviews than good ones for a particular builder.

Price

When it comes to picking the best website builder, cheaper isn’t always better. But at the same time, the most expensive options don’t always equate top quality.

It’s all about value.

Find a website builder that has different options based on your specific needs.

Look for transparent pricing. Some builders will try to fool you by signing you up at a promotional rate. Then all of a sudden six months later you’re paying triple the price that you initially agreed to. So make sure you read all of the fine print before you pay for anything.

Webs

One of the first website builders that I’d avoid is Webs.

Webs

At first glance when you’re browsing through they’re site and what they offer, everything appears to be in order.

They have affordable pricing with plans starting at:

  • $5.99 per month
  • $12.99 per month
  • $22.99 per month

Webs even offers a 30-day money back guarantee. Custom domain names and emails are included in all of their plans.

However, Webs definitely has its fair share of flaws.

The building process is actually pretty simple, but you’re going to be extremely limited in terms of your design options. The builder itself feels outdated, and your final product can end up feeling the same way.

Some browser extensions won’t work with this website builder either. Overall, the interface just feels awkward when you’re using it.

Webs is definitely not ideal for ecommerce websites and can get expensive when you start adding on those features.

For those of you who are considering the cheapest plan starting at $5.99, the only way to reach customer support is via email. That’s not ideal if you need help right away. Their middle-priced plan offers live chat in addition to email, but only the top tier plan comes with phone support.

The response time for email support is slow, according to reviews. You can usually expect an answer in about two days. I couldn’t imagine having to wait two days to get an answer about something important related to my website.

While Webs might be affordable and easy to use, it’s just underwhelming. With outdated themes, you’re going to be pretty limited with the type of website you can build using this platform.

Doodlekit

Doodlekit is another option that I’d avoid at all costs.

DoodleKit

Normally, I don’t like to bash or badmouth websites, products, or services. But truthfully, Doodlekit has more negatives than positives to talk about.

It’s not user-friendly in any stretch of the word. It’s also very difficult to edit their templates.

I have lots of experience using website builders, and I found myself frustrated and confused trying to make what I thought would be simple changes.

Doodlekit has over 100 themes, but quantity doesn’t always translate to quality.

The themes are so outdated that adding them to your website would be a huge mistake. Customizing and making changes to these themes feels impossible.

Doodlekit has a free website builder, which might sound appealing for some of you who are trying to save some money. But I wouldn’t recommend that either. Their other plans range from $10 to $40, assuming you get billed on an annual basis. The month-to-month plans start at $14.

If you don’t want to take my word for it, give the free option a spin. But I’d say you should avoid the hassle altogether and find a better website builder instead.

Yola

Similar to Webs, Yola is actually pretty easy to use.

Yola

However, that ease of use comes at the cost of being very limited. While the building process isn’t challenging, it gets tedious after a while.

The templates are outdated and feel rigid.

You end up having to make so many changes to the templates that it pretty much defeats the purpose. They have more than 250 themes, but the themes look like they belong on websites that were being built ten years ago.

That’s definitely not ideal when you’re competing with websites that have responsive designs and videos playing in the background.

Yola has affordable pricing, including a free plan. But the free plan has a Yola subdomain and only lets you create three pages. Obviously, you can’t build a legitimate website like that. The sole benefit of the free plan is that it gives you a chance to sign up and test the builder out before you have to pay.

Pricing ranges from $5 to $20 per month based on annual contracts or $7 to $30 for month-to-month contracts.

All plans, with the exception of the free option, give you a custom domain. You can also add a Yola store for $10 per month to any of the paid plans.

While this sounds appealing, I don’t think you’ll end up being happy with the user experience or final website product. That’s why I have Yola on my avoid list.

Jimdo

In terms of performance and ease of use, Jimdo is actually pretty decent. You can get your website up and running fairly quickly.

Jimdo

But with that said, Jimdo is very limited.

They have less than 20 themes for you to choose from. You’ll be able to change the color scheme, add text, and add images. But beyond that, building a unique website that’s fully customized with Jimdo will be a challenge.

Your final site will feel very cookie-cutter and basic once you’re done.

Jimdo offers more pricing options than every other site on this list.

  • Free
  • $9 per month
  • $15 per month
  • $19 per month
  • $39 per month

They also have ecommerce options. With Jimdo, you get a free domain for a year, but then it will cost you an additional $20 per year after that promotional rate expires.

While Jimdo isn’t awful, the lack of customization options and themes hurts it in my mind. There are better choices out there for you to consider.

Conclusion

There are lots of website builders on the market today. Like any other product or service, some options are better than others.

That’s why you need to know how to evaluate a website builder.

  • User experience
  • Support
  • Features
  • Quality
  • Performance
  • Price

These are all factors that need to be taken into consideration.

Based on these criteria, there are definitely website builders that you should avoid, like the ones that I mentioned in this guide.

Now that you know what to avoid, check out my list of the best website builders to steer you in the right direction.