Simulation May Finally Explain Why Knuckle Cracking Makes That Awful Sound

For decades, scientists have debated the cause of the popping sound when we crack our knuckles. Using computer models, a research team from France may have finally reached the answer.

As the authors state in the new paper published today in Scientific Reports, the sound of knuckles cracking is caused by a “collapsing cavitation bubble in the synovial fluid inside a metacarpophalangeal joint during an articular release.” More simply, it’s the sound of microscopic gas bubbles collapsing—but not fully popping—inside the finger joint. Scientists first proposed this theory nearly 50 years ago, but this latest paper used a combination of lab experiments and a computer simulation to bolster the case.

Advertisement

Seems weird, but scientists have been investigating this bodily quirk since the early 1900s, and they haven’t been able to reach consensus on the cause of the popping sound. The seemingly endless debate is the result of unconvincing experimental evidence, and the difficulty in visualizing the process in action: The whole phenomenon takes only about 300 milliseconds to unfold. What scientists have agreed upon, however, is that knuckle cracking is not something everyone is able to do, not every finger can produce the popping sound, and it takes about 20 minutes before a knuckle can be cracked again.

To help clear things up, and to add more support to existing experimental data, V. Chandran Suja and Abdul Bakarat from École Polytechnique in France took geometric representations of the metacarpophalangeal joint (MCP), where the popping happens, and converted them into mathematical equations that powered computer simulations of knuckle cracking. Or more specifically, computer simulations that showed what goes on in our fingers just prior to that popping sound.

“Mathematical modeling is particularly useful because [real-time] imaging is not sufficiently rapid to capture the phenomena involved,” Bakarat told Gizmodo. “Another advantage of the modeling is that it allows varying one parameter at a time and therefore permits determining which parameters are truly important in determining the behavior. In this regard, we found that the parameter that has the most effect on the sound generated by knuckle cracking is how hard you pull on the knuckle. How fast you pull, the geometry of the joint, and the viscosity of the fluid (which changes with age) do not have a very strong effect.”

Research from a 2015 study showing the joint before (left) and after (right) knuckle cracking.

The models showed that when the joint undergoes a certain amount of stress, the resulting pressure changes in the joint fluid causes the collapse of microscopic gas bubbles within the synovial joint fluid. This theory was first proposed by scientists from the University of Leeds in 1971, but in 2015, a PLoS One paper led by Greg Kawchuk from the University of Alberta’s Faculty of Rehabilitation Medicine used MRI scans to show that gas bubbles remained in the fluid even after the knuckles were cracked. So instead of collapsing bubbles causing the popping sound, Kawchuk’s team said it was the sudden growth of bubbles that produced the noise.

Advertisement

But as Suja and Bakarat show, this is not a deal-breaking contradiction. According to their models, only a partial collapse of the bubbles is needed to make the pop, and that’s why bubbles can still be seen even after knuckle cracking. And to prove their point even further, the researchers recorded the sound of knuckles cracking from three test subjects, and compared the digital acoustic waves to those mathematically produced by the computer simulation. The two acoustic waveforms were extremely similar, suggesting that Suja and Bakarat’s model is providing an accurate representation of knuckle cracking, and that the cause of the popping noise is indeed the sound of bubbles collapsing.

In terms of limitations, Bakarat said his team made a number of assumptions in the study, including the presence of only a single bubble, that the bubble is perfectly spherical, that the joint has an idealized, common shape, among others. “Furthermore, a limitation of the study is that we do not model the formation of the cavitation bubble in the synovial fluid but only bubble collapse,” he said. “A possible future direction of this work is to extend the modeling to include the phase of bubble formation.”

Greg Kawchuk, the lead author of the 2015 paper, said Suja and Barakat “should be congratulated” for designing a mathematical model that creates a theoretical pre-existing bubble. He thought it was interesting that other phenomena may be involved in between the frames of the MRI video published in his earlier study. But he believes the new study doesn’t completely solve the knuckle cracking mystery.

Advertisement

“First, it must be emphasized that the work presented in this new study is a mathematical model that has not yet been validated by physical experimentation—we do not yet know if this occurs in real life,” Kawchuk told Gizmodo. “Second, although the authors of the paper demonstrated that the theoretical sounds produced by a theoretical bubble collapse were similar to actual sounds produced in knuckle cracking, the authors did not test the opposing circumstance proposed previously in the literature by asking, ‘what acoustics could be generated from bubble formation?’”

Which is an excellent point—one that Bakarat himself admitted was a limitation to the research. For all we know, rapid bubble formation may be producing a very similar knuckle-cracking sound, but the new study didn’t go there.

“As such, the impact of this new study is diminished by having investigated only one possibility (collapse of a pre-formed bubble) and disregarding other alternative phenomenon such as bubble formation, multiple formation/collapse events and the lingering issue of large volumes of gas in the joint following sound production that have been visualized by many investigators,” said Kawchuk.

Advertisement

This topic may seem trivial, Kawchuk said, but he believe this issue has potential importance to healthcare—it could reveal insights into preserving joint health and joint mobility on account of disease and increasing age.

As to whether or not knuckle cracking is unhealthy, this latest study doesn’t speak to that (and neither Bakarat nor Kawchuk were comfortable in answering this question). But in 2015, Robert D. Boutin from the University of California, Davis did some research showing that the habit produced no immediate pain, swelling, or disability among habitual knuckle crackers, nor among those who rarely, if ever, do it. Boutin added that “further research will need to be done to assess any long-term hazard—or benefit—of knuckle cracking,”

So for you knuckle crackers out there, you probably don’t have to worry about contracting arthritis or anything like that, but just remember that many of us non-knuckle crackers find your habit to be absolutely revolting. So stop it.

[Scientific Reports]


via Lifehacker
Simulation May Finally Explain Why Knuckle Cracking Makes That Awful Sound

Intercom raises $125 million to take on Salesforce

Intercom raises $125 million to take on Salesforce

When it comes to sales software, Salesforce isn’t the only game in town.

A number of startups have emerged to target the sales industry, with roughly $3 billion per year getting invested into marketing startups. Now one of the largest players is Intercom.

The seven-year-old startup is now announcing a $125 million Series D round led by Kleiner Perkins, with participation from Google Ventures. Veteran investor Mary Meeker will also be joining the board.

The valuation is $1.275 billion, meaning that the company is considered a “unicorn.” The round brings the total amount raised to $241 million. Existing investors include Bessemer Venture Partners, Index Ventures, Jack Dorsey and Mark Zuckerberg.

Intercom is the “next generation customer database that’s specifically built for internet businesses,” co-founder and CEO Eoghan McCabe said in an interview with TechCrunch. “Salesforce is not built for internet businesses.”

“When a business uses the Intercom Messenger, they see conversation rates increase,” McCabe claims. Intercom says that customer sales go up an average of 82%.

The startup touts its “messaging-first approach,” helping its clients with customer acquisition and support. It says it powers 500 million conversations per month across its 25,000 customers. Atlassian, New Relic and Shopify use Intercom.

Intercom says it will use the funding to further develop its customer platform. It plans to double its research and development teams. Says McCabe, Intercom is “putting our foot on the pedal.”

Intercom, which has a strong presence in both the United States and Ireland, hopes to use the capital to expand its workforce beyond 500 employees.

It also would like to further expand its geographic footprint, adding customers across Europe and Asia.

via TechCrunch
Intercom raises $125 million to take on Salesforce

New MySQL 8.0 innodb_dedicated_server Variable Optimizes InnoDB from the Get-Go

MySQL 8.0 innodb_dedicated_server

MySQL 8.0 innodb_dedicated_serverIn this post, we’ll look at the MySQL 8.0 innodb_dedicated_server variable.

MySQL 8.0 introduces a new variable called innodb_dedicated_server. When enabled, it auto tunes innodb_buffer_pool_size, innodb_log_file_size and innodb_flush_method at startup (if these variables are not explicitly defined in my.cnf).

The new MySQL 8.0 variable automatically sizes the following variables based on the RAM size of the system:

innodb_buffer_pool_size:

    • <1G: 128M(default value if innodb_dedicated_server is OFF)
    • <=4G: Detected Physical RAM * 0.5
    • >4G: Detected Physical RAM * 0.75

innodb_log_file_size:

    • <1G: 48M(default value if innodb_dedicated_server is OFF)
    • <=4G: 128M
    • <=8G: 512M
    • <=16G: 1024M
    • >16G: 2G

The variable also sets the following:

innodb_flush_method: 

    • Set to O_DIRECT_NO_FSYNC if the setting is available on the system. If not, set it to the default InnoDB flush method

These new default values are very reasonable, and the changes to these three variables show considerable performance improvements from the get-go than using the old default values. As stated in the worklog of this feature, the current MySQL version (5.7) only uses around 512M RAM with the default settings. With the new feature, these variables can easily adapt to the amount of RAM allocated to the server for the convenience of the system/database administrator.

With that said, you can achieve the best setting for these three variables by tuning it to your workload and hardware.

For InnoDB buffer pool size (based on this article), consider allocating 80% of physical RAM for starters. You can increase it to as large as needed and possible, as long as the system doesn’t swap on the production workload.

For InnoDB log file size, it should be able to handle one hour of writes to allow InnoDB to optimize writing the redo log to disk. You can calculate an estimate by following the steps here, which samples one minute worth of writes to the redo log. You could also get a better estimate from hourly log file usage with Percona Monitoring and Management (PMM) graphs.

Finally, for innodb_flush_method, O_DIRECT_NO_FSYNC prevents double buffering between the OS cache and disk, and works well with low-latency IO devices such as RAID subsystem with write cache. On the other hand, in high-latency IO devices, commonly found on deployments where MySQL is stored in SAN drives, having an OS cache with the default flush method fsync is more beneficial.

All in all, the MySQL 8.0 innodb_dedicated_server variable provides a fairly well-tuned InnoDB configuration at startup. But if it’s not enough, you can still tune these variables based on your workload and hardware. While MySQL 8.0 isn’t released yet, you can take a look at this article that helps you tune the current version (MySQL 5.7) right after installation.

The post New MySQL 8.0 innodb_dedicated_server Variable Optimizes InnoDB from the Get-Go appeared first on Percona Database Performance Blog.

via Planet MySQL
New MySQL 8.0 innodb_dedicated_server Variable Optimizes InnoDB from the Get-Go

These Discounted Lighters Run Off Batteries Instead of Butane

Tacklife Electric Arc Lighter | $10 | Amazon | Promo code TEKPK6SU
Power Practical Sparkr Mini Arc Lighter | $19 | Amazon | Promo code L5IMQBFO

It’s 2018, and your lighter doesn’t need fuel anymore, it just needs to recharge over USB. This flexible neck model is just $10 with code TEKPK6SU, is perfectly designed for lighting candles, and can spark 400 times on a charge from its 220mAh battery.

And in case you missed it last week, our favorite arc lighter, the Power Practical Sparkr Mini, is still down to $19 with code L5IMQBFO. This is an updated model of the Sparkr which fixes an issue that caused the its flashlight to turn on in your pocket, and it also doesn’t make a high-pitched whine like most competing products.



via Lifehacker
These Discounted Lighters Run Off Batteries Instead of Butane

6 Reasons Why The AR-15 Is Actually Ideal For Self-Defense

The AR-15 may well be the most vilified rifle in existence at the moment, possibly even more so than the Soviet-designed AK-47. This is especially true following several incidents where bad people did bad things with the rifle in question.

As per usual following such incidents, politicians begin clamoring for the rifle to be banned. They use all kinds of rhetoric to paint the firearm as some kind of evil murder-death-kill machine that serves no other purpose except to end lives. This usually comes from the same people who claim that the most recent gunman, armed with a Glock, didn’t have a semiautomatic weapon.

Yeah.

Anyway, many of these folks–including at least one former vice president of the United States–have said that all you need for self-defense in your home is a shotgun.

Unfortunately, this just isn’t the case. The AR-15 is a great weapon for self-defense, and there are a number of reasons why. What follows is one man’s thinking on why the AR-15 is great for home defense and, in a few cases, why it’s far superior to the shotgun.

1. It’s Lightweight

The AR-15 is lightweight. Typically, a stripped down rifle weighs around six pounds or so unloaded. Ammo adds weight, of course, but it’s still not overly heavy.

With that weight comes some serious advantages. For one, it allows you to hold it up as you check out the entirety of your home to find the source of the sound of breaking glass that woke you up. Keeping a weapon at low ready requires a lot more muscle than many people think, and a lightweight rifle helps keep the muscular strain minimal.

That becomes even more important if, God forbid, you have to fire. Muscle fatigue can make your hands unsteady, which could cause you to miss your target.

Further, because of its weight, it’s light enough for almost any member of the family. In my household, my son and wife can both easily handle my AR-15. The only one who can’t is my almost 7-year-old daughter. And even then the problem isn’t the weight, but the size.

That lightweight design makes it a great choice for home defense because it doesn’t matter who needs to grab it, it’s sized about right.

2. It’s Compact

When you have to work around corners inside the average American home, the last thing you want is a long length on your weapon. A longer gun becomes unwieldy, and the AR-15 is a compact design, particularly when taken with the 16″ barrel. This allows you to move through your home without knocking stuff down and creating more problems for yourself.

Further, it’s length is often adjustable. Most AR-15s come with a collapsible stock. While these are restricted in several states, they’re legal most places and they allow you to set the length even shorter if needed. This means it’s not just compact, but adjustable as well.

3. It Has Low Recoil

The .223/5.56 round isn’t known for a hard kick. The recoil is one of the lightest out there for any weapon that’s considered sufficient for dealing with two-legged predators. This does two things.

For one, it means that you can spend more time at the range. There’s nothing worse than having plenty of ammo to shoot, but your shoulder just can’t cut it anymore. More training time means better accuracy.

Additionally, that low-recoil means it’s suited well to be used by almost any member of the family. From the kid built like an NFL linebacker I have in my house to the petite girl running around other homes, if they can hold the weapon properly, chances are they can fire it.

More than that, though, the AR-15 platform’s light recoil also allows someone to make follow-up shots quickly.

When American Rifleman spoke with former special ops sergeant major Kyle E. Lamb, he had similar things to say.

The AR is very easy to shoot. Head out to the range and test my theory. Ask anyone who wants to join in on the fun to try shooting a scored event, under pressure, with a pistol at home-defense ranges. After you see their performance, try the same with an AR, I will bet money you see much better control of the system. Men and women alike just shoot better with a carbine than with a pistol. As long as the carbine is light enough for the shooter to handle properly, the learning curve will be straight-up.

4. Versatility

The AR-15 is ideal for almost any situation, a fact Lamb also points out in his American Rifleman discussion.

The AR is unbelievably versatile, from contact shooting distances out to 300 yds., the carbine will outperform the pistol. Most of us don’t think of 300-yd. shooting as a likely home-defense scenario, and, in many areas, it wouldn’t be. But if given an option of defensive tools, and considering our country’s independent heritage and past experiences, why wouldn’t you want extended-range capabilities?

Personally, I’m inclined to agree with him. While I don’t see me having to make a 300-yard shot–after all, from my yard you can’t actually see 300 yards in pretty much any direction–that doesn’t mean no one else will. And since it’ll also work from one end of my bedroom to another…well, it’s kind of a no-brainer.

Further, if you decide to do a little varmint hunting, the AR-15 is ideal for that.

However, contrary to what many in Washington seem to think, this isn’t a particularly powerful gun. If you’re wanting to shoot something other than coyotes and similar sized critters, you need something with a little more umph. The AR-15 isn’t the cannon it’s made out to be by the press. But it will do the job in protecting your home.

5. Accuracy

The AR-15 is incredibly accurate as a platform. This is greatly important when considering self-defense in the home because rounds don’t just stop when they miss their target. They keep going, and walls aren’t enough to stop them. If you miss your target, where else can be hit?

And that’s true of any firearm, mind you. Even the shotgun runs the risk of a miss penetrating a wall and hurting someone you care about. Plus, the round is great for minimizing the threat of overpenetration. As Sheriff Jim Wilson notes:

However, for in-house use, a 55-grain soft-point load is probably the best choice in order to minimize bullet penetration. If it can be avoided, we don’t want our bullet to punch through walls, into other rooms where family members might be located. And we certainly don’t want the bullet exiting the house, or apartment, and endangering neighbors.

But the AR-platform is accurate right off the shelf, and it can be made even more accurate with practice. Really, though, most people never shoot up to the ability of their rifle, so a stock configuration is plenty for home defense. And you should be glad of it.

Remember, this is a gun that’s capable of 300-yard shots with accuracy. While you should spend some time familiarizing yourself with how you need to adjust aim for different range increments, the fact is you’ll be able to hit what you’re aiming at.

6. Ammo Capacity

But what if you do miss? Contrary to what the loudmouth on that gun forum might say, people miss in real gunfights. Days at the range are easy, low-stress days. The targets (usually) stand still, and you have all the time in the world to make your shot. Once things go sideways, however, things change. Not only are the targets moving, but they’re shooting back at you. Your blood pressure is up and your heart is pounding through your chest like it’s a demolition crew sent to clear out your rib cage for some new condos.

You’re probably going to miss a shot or two.

That means you’re going to need more ammo than one shot per bad guy. That’s something people tend to forget.

When you wake up in the middle of the night, there’s no time to grab extra ammo and stuff it in the pockets of your bathrobe or pajamas. What you have in your weapon is pretty much what you’ve got.

One of the most popular shotguns out there is the Mossberg 500. I like them. I have one. And you know what they list as the ammo capacity of a Mossberg 500? A whopping six shots. If there are three guys in your house, that’s only two shots per bad guy. Do you really want to bank on not missing that much?

Even in magazine restricted states, you get more shots with an AR-15 than you do with a shotgun.

“But the shotgun puts out a cloud of pellets. You won’t need more shots,” someone might argue. And, to a point, they’re right. A shotgun does put out a cloud of shot. A small cloud.

You see, what most people don’t understand is that a shotgun isn’t a man-portable Death Blossom waiting for you to use it. It’s basically artillery grapeshot in a smaller package. It sends out a lot of shot, but you need to hit with at least most of it to stop the threat. That means you can both hit and miss, and that means the bad guy can keep fighting.

And that’s if you don’t outright miss. Contrary to what you may have heard, it is possible to miss with a shotgun. Ask bird hunters about that sometime.

With the AR, however, you’re going to have 10 rounds at least. In free states, you get 30. And believe me, no one ever survived a gunfight and then griped about having all that extra ammo on their person. More ammo is always better.


And just like that, there are a few reasons why the AR-15 is ideal for home defense. However, this isn’t comprehensive by any means.

Nor should any of this be taken to mean that you can’t defend your home with a handgun or shotgun. You can. Plenty of people do, and like everything else in life, there are tradeoffs. However, when people claim the AR-15 isn’t useful for protecting one’s home and family, they don’t know what they’re talking about, and these are the reasons why they’re wrong. Plain and simple.

However, it’s important to remember that having a gun is just part of the equation. It’s an important part, mind you, but still just a part. You also need training and practice, and a lot of it. Don’t feel bad, I say the same thing to veterans returning from war. I write about this stuff and I’m not even close to done with training or practice. It’s an ongoing process.

Get training, get practice, and get armed. That’s the only way to keep your family safe. No matter what the local police chief says, they can’t always protect you. Only you can do that, and the AR-15 is ideal for doing so.

via Bearing Arms
6 Reasons Why The AR-15 Is Actually Ideal For Self-Defense

The Current State Of Email Marketing Programming: What Can And Can’t Be Used

Many people want to create the best email campaigns possible, and this goal can be realized by following best practices for email design and coding and by implementing advanced techniques correctly. This comprehensive guide, for novices and pros alike, delves deep into the nitty gritty of email marketing.

Here’s what you’ll learn:

  • best practices for email design, from creating a theme to designing the footer;
  • how to add images and incorporate rich media (GIFs, cinemagraphs, video) in your emails;
  • how to design responsive emails for a better user experience;
  • email client support for responsive mobile emails;
  • finally, advanced techniques in email design.

Introduction

Emails have transformed from being an ordinary text-based personal communication tool into a future-proof marketing channel. We have moved into a world of visually attractive HTML emails that have the feel of microsites in the inbox.

Getting acquainted with the best practices of email coding is, therefore, imperative if you want to avoid a broken user experience and instead improve user engagement. Moreover, as the digital world becomes more mobile, creating responsive emails is the need of the hour.

In this article, we shall delve deeper into best practices to follow for all email clients, as well as advanced techniques you can include for email clients that support interactive elements.

Let’s start with the basic structure of an email.

Basic Email Structure

As Leonardo da Vinci said, ”Simplicity is the ultimate sophistication.” Accordingly, keep the design of your email simple.

Check out the email design below by Charity: Water. Simple yet engaging.

A simple yet engaging email design by Charity: Water.
View large version

Developers have been coding emails using <table> layouts for a long time now. So, it is recommended that you place your email elements in a grid-based layout, rather than arbitrarily placed. Moreover, any element that might overlap needs to be added to a different layer.

The email shown above by Charity: Water looks like this when exported to a tabular layout:

Email design by Charity: Water divided into a grid.
View large version

Email design is made up of different subelements. Let’s explore them now.

1. Email Theme

The logo is not the only element that reflects your brand’s personality. The overall theme of your email, including the fonts, color scheme and imagery, should be in sync with branding guidelines.

2. Width And Height Of Email Template

Because your subscribers use diverse email clients and devices, your email should be appropriately visible in the preview pane of all email clients. Keep in mind that the email will be displayed according to the display pane of the email service provider or client. Only certain email clients, such as Thunderbird, Apple Mail and native mobile email clients, will display email at full width.

For other email clients, the display boxes have variable sizes. Many service providers, such as MailChimp, go over the basics of HTML email, by recommending, for example, 600 to 800 pixels as a width, so that the full email gets displayed. Remember, that most subscribers never use the horizontal scroll bar in an email.

The height of your email template should usually be long enough to accommodate your copy within two scroll lengths. You can certainly have a longer email template if you have to convey a huge amount of information. However, if your email template gets too long, it might become boring for subscribers, who will be less likely to scroll to the end to check out all of the offers and promotions included.

The height of the preview pane of most email clients (which contains content commonly referred to as “above the fold”) is generally between 300 and 500 pixels. Make the best use of this space, so that the content included above the fold entices the subscriber to scroll down.

Every email developer knows that if an email’s file size exceeds 102 KB, Gmail’s app will clip the email, and they will not be able to track metrics.

Check out the screenshot below to see what an email looks like in Gmail when it is clipped:

Email message, the weight of which exceeds 102 KB, as seen in Gmail, with ‘View entire message’ at the end.
View large version

To avoid Gmail’s clip, make sure your email does not have unnecessary code and is not over-formatted. Go for a minimalist email design, without any shortened URLs. Note that images will not be embedded in the email and, so, will not increase the file’s size. That being said, removing unnecessary images will help to reduce the email size.

For marketers who use predesigned templates, the height and width will already be taken care of. If you want to use your own design, consider the ideal width and height of an email template.

3. Body Of Email

Emails usually begin with a hero image at the top, followed by the main copy, a call to action and then the footer.

Because most people read on screens positioned about 2 to 3 feet away, your h1 title should be around 16 pixels; if your title is short, it could even go up to 20 pixels. A good idea would be to render the h1 title as text, along with an attractive hero image.

Your descriptive text should not be smaller than 12 pixels. It should be easily readable across all email clients and devices. Moreover, the alignment of paragraphs and paragraph size also play an important role.

4. Call To Action

The primary objective of email marketing is to persuade customers to take action. To do that, your call to action (CTA) should have engaging, actionable verbs. Use convincing and actionable text, like “Start the free trial,” rather than drab phrases like “Click here.”

An interesting study by ContentVerve, “10 Call-to-Action Case Studies With Takeaways and Examples From Real Button Tests”,” shows that use of the first-person perspective in CTAs increase clicks by 90%, regardless of the product. For example, “Get my free copy” converts better than “Get your free copy.”

Create a sense of urgency in CTAs and get higher click-through rates by adding the word “now.”

This email from 'Alice and Olivia' has a CTA in bright pink, contrasting with the white background.
View large version

Campaign Monitor, in one of its guides, “10 Tips to Optimize Your Calls to Action,” emphasizes that a CTA button should always contrast strongly with the background color, so that it doesn’t blend in and that it grabs the subscriber’s attention. Based on your target audience, your industry and the message to be conveyed, including CTAs at regular intervals can increase email conversions and the desired subscriber action. Its height should be at least 30 pixels, and it should be easily tappable with a thumb on mobile devices.

Check out the email below from Asana. It places a CTA strategically above the first fold and also follows the CTA best practices discussed above.

Email by Asana strategically places CTA above the first fold.
Email by Asana strategically places CTA above the first fold. (View large version)

5. Images And Interactive Elements

If you are putting images or rich media in your email, add relevant alternative (alt) text, so that the purpose of the email is preserved even when the visuals are blocked by the email client. This is also greatly helpful with accessibility, because screen readers will be able to read the alternative text and convey your message.

Most email marketers tend to send emails consisting of a single image, which is first of many common HTML mistakes compiled by MailChimp. It recommends a text-to-image ratio of 80 to 20, to make sure that emails do not get trapped in spam filters. According to a recent study by MailChimp, 200 words per image yield a good click-through rate.

Using linked images in your email ensures an optimum file size. Load images from an external server using <img> tags.

The main advantage of this technique is that you can change images even after sending the email. It makes the email light and reduces the time taken to send the email. The disadvantage is that subscribers will have to download the images from the external server, which will incur download costs for those on metered connections, and the images might also get blocked by some email services.

Rich media elements, such as GIFs, cinemagraphs and video, are becoming popular in email these days.

You can add a GIF or cinemagraph in an email simply by uploading the file to the server that stores your images. Then, copy the URL and use the following HTML:

<pre class="lang:default decode:true" title="Code for adding GIFs or Cinemagraphs in Email"><img src="/wp-content/uploads/thefiletobeinserted.gif">
</pre>

Test the email to make sure that the GIF works properly.

Embedding video is a very adaptable technique of web development, but unfortunately, it’s not supported in email. Therefore, opt for HTML5 video.

To add a video in email, use the code below:

<pre class="lang:default decode:true" title="Code for including video in email"><video width="400" height="200" controls poster="http://www.art.com/images/blog_images/Imagefiles/2017/html5_video/valentinesday.jpg"><br/><source src="http://www.videofile.com/htmlfiles/movie-14thfeb.mp4" type="video/mp4"><br/><!-- fallback 1 --><br/><a href="http://www.xyz.com" ><br/><img height="200" src=" http://www.art.com/pictures/important/Imagefiles/2017/html5_video/valentinesday.jpg " width="400" /><br/></a><br/></video><br/><br/><br/>
</pre>

HTML5 primarily supports the MP4, OGG and WebM video formats.

Pro tip: Apple supports the MP4 video format in its email clients and browsers.

Some points to remember:

  • Make sure that the server configuration you use can output the right MIME type, so that the email client identifies the correct video format when retrieving the video.

  • If you are using an Apache web server, add this entry to the .htaccess file: Add Type video/mp4.mp4 m4v.

6. Number Of Email Folds

Your email should have just two folds, as mentioned earlier. The first fold should capture your brand and include the h1 title with a relevant CTA. If your email template exceeds two scrolls, then the third scroll should cross-sell your products. The idea is to change up the content and keep subscribers hooked by providing interesting information.

7. Footer

The footer is the most overlooked part of any email. However, it probably has information that subscribers are looking for, such as the company address, social sharing buttons and contact details. In order for your email to be CAN-SPAM compliant, the footer should have some additional elements.

An “Unsubscribe” link should allow subscribers to opt out of your mailing list easily and will reduce spam complaints.

Your contact details should link back to your company website and should include your postal and email address.

Additionally, you can have ancillary links, such as “Forward to a friend” and “View in Browser.”

As stated in “The Best Practices of Footer Design” by Bee, the fine print of your email should have the following sections:

  • Explanation of why the recipient got this email
    Your subscribers have probably subscribed to numerous mailing lists. Subtly remind recipients of the reason they received the email, to maintain your reputation as an emailer and to minimize spam complaints.
  • Copyright
    Include the copyright mark, along with the current year and your business name.
  • Privacy policy
    Link to your privacy policy, because subscribers should know where that information is stored. This is critical for e-commerce retailers.
  • Terms of use
    If you are sending out a promotional email highlighting discount offers, share the terms of use that govern the deals.
Designing The Footer

Cramming information into the footer sounds tempting, but you should determine the most important information for your business and restrict the footer to the minimum. Stuffing it with too much information could lead readers to dismiss it entirely because they will not be able to figure out which links to click.

Check out the footer below by Cotton on Body. Although it is well organized, it could be overwhelming for the subscriber who is scanning the email.

The Cotton on Body email footer, which is too lengthy.
View large version

Have a look at the footer below by Alice and Olivia. It is simple, and it maintains a visual hierarchy according to the actions they want subscribers to take.

Alice and Olivia's email footer is concise and designed with all good practices in mind.
View large version

The footer by HSN below is clean and makes good use of padding and white space. It is not overwhelming, yet it conveys important information that readers might be looking for.

HSN's footer is clean; padding and white space are used appropriately.
View large version

Mobile Responsive Emails

Most subscribers will check email on their phone. Owing to this trend, your emails ought to be responsive. Responsive design includes several elements, such as media queries, fluid grids and fluid images, so that users can view the email as intended, regardless of screen size or device. The basics of responsive email design include the table element, easily stackable sections and full-width CTAs.

If your subscriber list consists of many mobile users, then avoid overlapping layouts. Hide non-primary sections, such as navigation and email advertisements, to cater to mobile subscribers. Mobile-specific email elements such as a navigation menu and image sliders can also be used.

Responsive email design is supported in these email clients:

  • iOS Mail app
  • Windows Phone 7.5
  • Android 4.x Email (OEM) app
  • BlackBerry Z10
  • BlackBerry OS7
  • iPhone Gmail app

The following email clients do not support responsive email:

  • Android Yahoo Mail app
  • iPhone Yahoo Mail app
  • BlackBerry OS 5
  • Windows Phone 7
  • iPhone Mailbox app
  • Windows Phone 8
  • Android Gmail app
  • Windows Mobile 6.1

Responsive design enables you to do the following:

  • change hierarchy,
  • modify navigation,
  • enlarge fonts,
  • change layout,
  • scale images,
  • add padding,
  • change or hide content.

Designing Responsive Email

To make their emails responsive, developers use a media query that is commonly referred to as @media. It is a special set of CSS styles, included in the header, that work as conditional statements or dynamic rules.

The point of media queries is to identify the screen size of the device being used and to execute various rules according to that screen size. The challenge is that media queries do not work in all email clients and might need detailed planning and testing compared to other design techniques.

Have a look at the media query below:

<pre class="lang:default decode:true" title="Structure of Media Query">@media only screen and (min-width:479px) and (max-width:701px) {
.em_main_table {
     width: 100% !important;
}

.em_hide {
     display: none !important;
}
}
</pre>

When this email is accessed on a device whose screen is between 479 and 701 pixels wide, the email’s width will be 100%, according to the width: 100% !important; attribute. The !important function forces this attribute in email clients such as Gmail, where it might be ignored.

The styles in the CSS rule block should specify the container or element type that the styles will dictate. Assign these rules in the HTML if you want them to work.

Here is the CSS:

<pre class="lang:default decode:true" title="Code for CSS"> td[class="body-header"]{ font-size: 18px !important; }

And here is the HTML:

<pre class="lang:default decode:true" title="Code for HTML"><td align="left" class="body-header">
</pre>

It is important that the element (td) and the class (body-header) added in the CSS and HTML match each other.

Advanced Techniques

With the advent of advanced email clients, such as Apple Mail, which is based on Webkit, email developers can even play around with keyframe animation, interactive elements such as carousels, and live feeds.

Conditional coding for different email clients (such as for Outlook and for Samsung and Apple devices) has also become possible.

Conditional coding for Outlook and for Samsung and Apple devices
View large version

Wrapping Up

If you follow these simple tips, you will surely be able to create awesome email marketing campaigns that convert, whether you are a novice or pro at email programming. In the end, aim to create a good user experience and make subscribers look forward to your emails. Happy emailing!

Smashing Editorial
(da, ra, yk, al, il)

via Smashing Magazine
The Current State Of Email Marketing Programming: What Can And Can’t Be Used

Database Audit Log Monitoring for Security and Compliance

We recently conducted a webinar on Audit Log analysis for MySQL & MariaDB Databases. This blog will further provide a deep dive into the security & compliance surrounding databases.

Database auditing is the tracking of database resources utilization and authority, specifically, the monitoring and recording of user database actions. Auditing can be based on a variety of factors, including individual actions, such as the type of SQL statement executed, or on a combination of factors such as user name, application, time, etc.  Performing regular database log analysis bolsters your internal security measures by answering questions like who changed your critical data, when it was changed, and more. Database auditing also helps you comply with increasingly demanding compliance requirements.

The purpose of this blog is to outline the importance of audit log analysis using MariaDB and Enterprise MySQL as examples.

Auditing Requirements

The requirement to track access to database servers and the data itself is not that new, but in recent years, there has been a marked need for more sophisticated tools. When auditing is enabled, each database operation on the audited database records a trail of information such as what database objects were impacted, who performed the operation and when. The comprehensive audit trail of executed database actions can be maintained over time to allow DBAs, security staff, as well as any authorized personnel, to perform in-depth analysis of access and modification patterns against data in the DBMS.  

Keep in mind that auditing tracks what a particular user has done once access has been allowed. Hence, auditing occurs post-activity; it does not do anything to prohibit access. Of course, some database auditing solutions have grown to include capabilities that will identify nefarious access and shut it down before destructive actions can occur.

Audit trails produced by intrusion detection help promote data integrity by enabling the detection of security breaches.  In this capacity, an audited system can serve as a deterrent against users tampering with data because it helps to identify infiltrators. Your company’s business practices and security policies may dictate being able to trace every data modification back to the initiating user. Moreover, government regulations may require your organization to analyze data access and produce regular reports, either on an ongoing basis, or on a case-by-case basis, when there is a need to identify the root cause of data integrity problems.  Auditing is beneficial for all of these purposes.

Moreover, should unauthorized, malicious, or simply ill-advised operations take place, proper auditing will lead to the timely discovery of the root cause and resolution.

The General Data Protection Regulation

On April 27, 2016, the General Data Protection Regulation (GDPR) was adopted by the European Parliament and the council of the European Union that will be taking effect starting on May 25, 2018.  It’s a regulation in EU law governing data protection and privacy for all individuals within the European Union. It introduces numerous security and compliance regulations to all organizations worldwide that handle, process, collect or store personal information of EU citizens. This means that organizations that work with personal data will have to elevate security measures and auditing mechanisms when handling Personal Identifiable Information (PII) of EU citizens.

Furthermore, organizations will have to ensure that only people which should have access to the personal information of EU citizens are granted  access, and in case of unauthorized access, organizations must have mechanisms to detect and be alerted on any such incident in order to resolve any possible issues in an expeditious manner.  Following a data breach, organizations must disclose full information on these events to their local data protection authority (DPA) and all customers concerned with the data breach in no more than 72 hours so they can respond accordingly.

Failing to comply with GDPR standard could result in heavy fines for up to 4% of the offending organization’s global revenue, or up to €20 million (whichever is greater). With this in mind, it is crucial for all affected organizations to make sure that they implement adequate log monitoring on their databases, as defined by the standard.

How Databases Implement Auditing

There is no set standard that defines how a database should implement auditing, so vendors and Database Administrators (DBAs) differ in their approach.  Some employ special tables while others utilize log files. The two DBMSes that we’ll be looking at here today, MariaDB and MySQL, employ log-based auditing.

The MariaDB Audit Plugin

Prior to MariaDB 5.5.20, in order to record user access, you would have had to employ third-party database solutions. To help businesses comply with internal auditing regulations and those of various regulatory bodies, MariaDB developed the MariaDB Audit Plugin.  The MariaDB Audit Plugin can be used also with MySQL, but includes some unique features that are available only for MariaDB.

In MariaDB, the Audit Plugin logs detailed information for any type of access from users to your database server and tables, including:

    • Timestamp
    • Server-Host
    • User
    • Client-Host
    • Connection-ID
    • Query-ID
    • Operation
    • Database
    • Table
    • Error-Code

Installation

Getting the Maria Audit Plugin installed, configured and the auditing activated is fairly simple.  In fact, you only need a few minutes to enable auditing for your database. A restart of the Server is not needed, so you do not need to plan any downtime for the installation of the plugin.  The only requirement is that you are running MariaDB or MySQL Server with version 5.5 or newer (MySQL 5.5.14, MariaDB 5.5.20).

If you installed MariaDB from its official packages, you probably already have the plugin on your system, even though it’s neither installed nor enabled by default. Look for a file called “server_audit.so” (in Linux) or “server_audit.dll” (in Windows) inside your plugins directory.  The file path of the plugin library is stored in the plugin_dir system variable. To see the value of this variable and determine the file path of the plugin library, execute the following SQL statement:

SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
+---------------+--------------------------+
| Variable_name | Value |
+---------------+--------------------------+
| plugin_dir | /usr/lib64/mysql/plugin/ |
+---------------+--------------------------+

If you don’t find the plugin file inside your plugins directory, download it from the MariaDB site and place it in the plugins directory manually. (In Linux, ensure that the MariaDB server can read the file by giving it 755 permissions and root user ownership.)

Next, install the plugin using the command:
INSTALL PLUGIN server_audit
SONAME 'server_audit.so';

To confirm the plugin is installed and enabled, run the query show plugins;. You should see it appear in the results list:

+-----------------------------+----------+--------------------+-----------------+---------+
| Name | Status | Type | Library | License |
+-----------------------------+----------+--------------------+-----------------+---------+
| SERVER_AUDIT | ACTIVE | AUDIT | server_audit.so | GPL |
+-----------------------------+----------+--------------------+-----------------+---------+

The MariaDB Audit Plugin comes with many variables to let you fine-tune your auditing to help you better concentrate on just those events and statements that are important to you. You can see the currently set variables with the command show global variables like "server_audit%";:

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE "server_audit%";
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| server_audit_events | |
| server_audit_excl_users | |
| server_audit_file_path | server_audit.log |
| server_audit_file_rotate_now | OFF |
| server_audit_file_rotate_size | 1000000 |
| server_audit_file_rotations | 9 |
| server_audit_incl_users | |
| server_audit_logging | ON |
| server_audit_mode | 0 |
| server_audit_output_type | file |
| server_audit_syslog_facility | LOG_USER |
| server_audit_syslog_ident | mysql-server_auditing |
| server_audit_syslog_info | |
| server_audit_syslog_priority | LOG_INFO |
+-------------------------------+-----------------------+

These variables should be specified in the MariaDB server configuration file (e.g /etc/my.cnf.d/server.cnf) in the [server] section in order to be persistent between server restarts. For example, to have the variable server_audit_logging set to ON, add the line server_audit_logging=ON to the file:

[server]

server_audit_logging=OFF

Here is a quick rundown of some of the most important variables:

  • server_audit_logging – Enables audit logging; if it’s not set to ON, audit events will not be recorded and the audit plugin will not do anything.
  • server_audit_events – Specifies the events you wish to have in the log. By default the value is empty, which means that ALL events are recorded. The options are:

    • CONNECTION (users connecting and disconnecting)
    • QUERY (queries and their result)
    • TABLE (which tables are affected by the queries)
  • server_audit_excl_users, server_audit_incl_users – These variables specify which users’ activity should be excluded from or included in the audit. server_audit_incl_users has the higher priority. By default, all users’ activity is recorded.
  • server_audit_output_type – By default auditing output is sent to a file. The other option is “syslog”, meaning all entries go to the syslog facility.
  • server_audit_syslog_facility, server_audit_syslog_priority – Specifies the syslog facility and the priority of the events that should go to syslog.

Understanding the Log File Entries

Once you have the audit plugin configured and running, you can examine the log file, (e.g. /var/lib/mysql/server_audit.log). There you will find all the events that have been enabled by the server_audit_logging variable. For example, CONNECTION entries will show you the user and from where connects and disconnects occur:

20140901 15:33:43,localhost.localdomain,root,localhost,5,0,CONNECT,,,0
20140901 15:45:42,localhost.localdomain,root,localhost,5,0,DISCONNECT,,,0

Here are some example TABLE and QUERY entries:

20140901 15:19:44,localhost.localdomain,root,localhost,4,133,WRITE,video_king,stores,
20140901 15:19:44,localhost.localdomain,root,localhost,4,133,QUERY, video_king,'DELETE FROM stores LIMIT 10',0

The first entry shows that there were WRITE operations on the database video_king and the table stores. The query that made the WRITE changes follows: DELETE FROM stores LIMIT 10. The order of these statements will be always the same – first the TABLE event and then the QUERY event that caused it.

A READ operation looks like this:

20140901 15:20:02,localhost.localdomain,root,localhost,4,134,READ,video_king,stores,
20140901 15:20:05,localhost.localdomain,root,localhost,4,134,QUERY,stores,'SELECT * FROM stores LIMIT 100',0

MySQL Enterprise Audit

MySQL Enterprise Edition includes MySQL Enterprise Audit, implemented using a server plugin named audit_log. MySQL Enterprise Audit uses the open MySQL Audit API to enable standard, policy-based monitoring, logging, and blocking of connection and query activity executed on specific MySQL servers. Designed to meet the Oracle audit specification, MySQL Enterprise Audit provides an out of box auditing and compliance solution for applications that are governed by both internal and external regulatory guidelines.

Installation

The plugin is included with MySQL Enterprise Audit, so you simply need to add the following to your my.cnf file to register and enable the audit plugin:

[mysqld]

plugin-load=audit_log.so (keep in mind the audit_log suffix is platform dependent, so .dll on Windows, etc.)

Alternatively, you can load the plugin at runtime:

mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';

Auditing for a specific MySQL server can be dynamically enabled and disabled via the audit_log_policy global variable. It uses the following named values to enable or disable audit stream logging and to filter the audit events that are logged to the audit stream:

  • “ALL” – enable audit stream and log all events
  • “LOGINS” – enable audit stream and log only login events
  • “QUERIES” – enable audit stream and log only query events
  • “NONE” – disable audit stream

Another global variable, audit_log_rotate_on_size, allows you to automate the rotation and archival of audit stream log files based on size. Archived log files are renamed and appended with a datetime stamp
when a new file is opened for logging.

The MySQL audit stream is written as XML, using UFT-8 (without compression or encryption) so that it can be easily formatted for viewing using a standard XML parser. This enables you to leverage third-party tools to view the contents. You may override the default file format by setting the audit_log_format system variable at server startup.  Formats include:

  • Old-style XML format (audit_log_format=OLD): The original audit logging format used by default in older MySQL series.
  • New-style XML format (audit_log_format=NEW): An XML format that has better compatibility with Oracle Audit Vault than old-style XML format. MySQL 5.7 uses new-style XML format by default.
  • JSON format (audit_log_format=JSON)

By default, the file is named “audit.log” and resides in the server data directory. To change the name of the file, you can set the audit_log_file system variable at server startup.

MySQL Enterprise Audit was designed to be transparent at the application layer by allowing you to control the mix of log output buffering and asynchronous or synchronous disk writes to
minimize the associated overhead that comes when the audit stream is enabled. The net result is that, depending on the chosen audit stream log stream options, most application users will see little to no difference in response times when the audit stream is enabled.

Monyog MySQL Monitor

While reading the audit log file is great for a quick casual look, it’s not the most practical way to monitor database logs. Chances are you’ll be better off using the syslog option or, better still, taking advantage of tools that report on the audit log and/or syslogs.  There, you can process entries to focus on certain type of events of interest.

One such tool is Monyog MySQL Monitor.  Version 8.5.0 introduces audit log analysis for MySQL Enterprise and MariaDB.  This feature parses the audit log maintained by the server and displays the content in clean tabular format.

Monyog accesses the audit log file, the same way it does for other MySQL log files, including the Slow Query, General Query and Error log.

Figure 1: Audit Log Options

You can select the server and the time-frame for which you want the audit log to be seen from.  Then, clicking on “SHOW AUDIT LOG” fetches the contents of the log. The limit on the number of rows which can be fetched in one time-frame is 10000.

Figure 2: Audit Log Screen

The section on the top gives you quick summary of the audit log in percentage like Failed Logins, Failed Events, Schema changes, Data Changes and Stored Procedure. All these legends are clickable and shows the corresponding audit log entries on clicking. Furthermore, you can use the filter option to fetch audit log based on Username, Host, Operation, Database and Table/Query. There is also an option to export the fetched audit log content in CSV format.

Conclusion

In this blog, we outlined the importance of audit log analysis using MariaDB and Enterprise MySQL as examples.  

In recent years, there has been a marked need for more sophisticated tools due to increased internal and external security and auditing policies.  

A properly audited system can serve as a deterrent against users tampering with data because it helps to identify infiltrators.  Once an unauthorized, malicious, or simply ill-advised operation has taken place, proper auditing will lead to the timely discovery of the root cause and resolution.

Both MariaDB and MySQL implement auditing via native plugins.  These are fully configurable and may record database activities in a variety of formats.  The resulting log files may be read directly or analyzed by a tool such as the Monyog MySQL Monitor.  It provides a summary of Failed Logins, Failed Events, Schema changes, Data Changes and Stored Procedure, as well as fields such as Username, Host, Operation, Database and Table/Query, all within an easy-to-read tabular format.

Download a 14-day free trial of Monyog MySQL monitor. Here’s the complete video for all those who couldn’t attend the webinar.

The post Database Audit Log Monitoring for Security and Compliance appeared first on Monyog Blog.

via Planet MySQL
Database Audit Log Monitoring for Security and Compliance

The X-Force Awakens in This Great New Deadpool 2 Trailer

May the X-Force be with you.
Image: 20th Century Fox

You almost don’t realize there have already been two trailers for Deadpool 2. That’s because one was in a Bob Ross joke and the other one was about Cable. Well, now, here’s the film’s third trailer and it’s got a whole lot of action and fun for us.

Check it out.

There is so much awesome here, not the least of which is that epic X-Force drop.

The highly anticipated sequel, which has reportedly been getting very favorable test screenings, opens May 18. It’s directed by David Leitch and stars Ryan Reynolds, Josh Brolin, Zazie Beetz, and Julian Dennison as that kid.

[YouTube]

via Gizmodo
The X-Force Awakens in This Great New Deadpool 2 Trailer