Shelf Life of .22 Rimfire Ammunition: Test of 65+ Year Old Ammo

https://www.ammoland.com/wp-content/uploads/2021/08/Pre-1956-22-Remington-Cache-at-Don-Cowling-storage-taken-2018-1000-e1631728879319-500×345.jpg

Ammunition as stored at 5809 Taft Street in Middleton, Wisconsin

U.S.A.-(AmmoLand.com)- How long can ammunition be stored before it degrades? Much depends on the storage conditions. With reasonable care, ammunition has a shelf life of many decades, as verified by tests done with military centerfire cartridges.

But how long does .22 rimfire last before it starts to degrade? There has not been much systematic long-term storage testing of .22 rimfire. It tends to be used as an expendable item. Some people have found an old box or two of ammunition and checked it for viability.

This correspondent was able to obtain a large cache of 65+-year-old .22 rimfire ammunition with a good pedigree. The bulk of the ammunition was Remington Standard Velocity .22 Long Rifle ammunition made before 1956.

I met the owner at the University of Wisconsin in 1970. We started a friendship that lasted 48 years, to his death in 2018. The friend was Don Cowling from Middleton, Wisconsin. He is the world record rat hunter who this correspondent wrote about in 2016, when I became aware of the provenance and extent of the ammunition cache.

From that article:

The .22 ammunition has been in the jars for over 60 years.  He allowed me to crack the seal on a mason jar that had been filled before I entered first grade.  I anticipated an odor of acetone, as you often find in old smokeless powder.  I could not detect any, nor could my friend.  There was a faint hint of old wax, barely noticeable.

My friend gave me an even two dozen rounds to test to see if it had been degraded.  I shot the ammunition out of a Mossberg target rifle of similar age.  I fired the rounds at my brothers long established range behind the garage on family land in Northern Wisconsin.  Every round fired as though it were new.  I fired four five-shot groups at 50 feet from a rest.  The first was the largest at .56 inches, center to center.  The rest were .32, .31 and .31 inches. Not enough to win matches, perhaps, but perfectly good for hunting. My brother fired the last four shots offhand.

Don treasured his privacy, so his name was not mentioned in the 2016 article. The ammunition was mentioned, with a picture. Don knew I would reveal his name after he died, and did not object.

Don was a star handgun competitor at the University of Wisconsin. A top handgun competitor can easily run through 50,000 to 100,000 rounds a year. Don told me the ammunition was put in the quart jars before or during 1956.  Don was on the University of Wisconsin Varsity ROTC pistol team when they won the regional championships in 1955. Don always paid for things in cash, or in trade or barter. I suspect the ammo was obtained in a special deal.

Placing the ammunition in quart jars sealed it from the atmosphere. It likely helped keep the bullet lubrication from oxidizing.

Ammunition obtained later was so noted in his records. His records showed the pre-1956 ammunition to be Remington Standard Velocity. His records match the ammunition headstamps.

Article from Wisconsin State Journal, March 21, 1953.

Don kept meticulous records. After he died in 2018, this correspondent had access to his lifelong records and journals.

I was able to purchase his .22 ammunition cache of tens of thousands of rounds of ammunition from his estate. Over 20 thousand rounds of the cache was Remington standard velocity ammunition obtained in or prior to 1956, transferred to quart jars from boxes by 1956. It was stored for 15-17 years in an attic in Madison, Wisconsin, then underground from 1970-72 to 2018 in a basement in Middleton, Wisconsin. After the ammunition was purchased from the estate, it was moved across the country, then stored in a secure underground location.

The ammunition was purchased to conduct rigorous long-term storage testing of .22 rimfire ammunition. If there are other caches containing significant amounts of 65+-year-old .22 rimfire ammunition, they are unknown to this author.

The initial test procedure used a control of 500 rounds of CCI Standard Velocity 22LR Ammunition, lot H05S, manufactured on August, 5th 2012. The ammunition was tested in a Mossberg 702 semi-automatic Rifle with factory 10 round magazines. The rifle is expected to be used throughout the long-term test.  The rifle was purchased new in anticipation of the ammunition test.

A few hundred rounds were expended through the rifle before the test, from various manufacturers. The same rifle was used with the old Remington ammunition, to limit test variables. Accuracy testing was done at 25 yards. Velocity testing was done with a Caldwell Chronograph G2 eight feet from the muzzle.

10 fouling shots were fired, followed by 5 five-shot groups from a rest at 25 yards. The rifle was equipped with an inexpensive Simmons 4×32 .22 Mag scope.

After accuracy testing, 50 shots were fired to register on the chronograph to obtain average velocity, standard deviation, and extreme spread.

The rest of the 500 rounds was fired for reliability. The manufacturer recommends the rifle be cleaned after firing 200 rounds. The rifle was cleaned at the beginning of the test, and every 250 rounds after that, so test conditions would be the same for both sources of ammunition. Most shots were fired with a few seconds between shots. Nearly all shots were fired from magazines loaded with 10 rounds.

The test is for the ammunition, not the rifle. A semi-automatic rifle was used for uniformity of action.  A semi-automatic is considered a bit more ammunition sensitive than single-shot rifles or manual repeaters. If the ammunition will cycle a semi-automatic action, it should work in manually operated repeaters or single-shot firearms.

The same procedure was used to test 500 rounds of the 65+-year-old Remington Standard Velocity ammunition.

65 Year Old .22 Rimfire Ammunition Test Results:

Accuracy, an average of 5 five-shot groups at 25 yards, measured center to center:

  • CCI Standard Velocity:                    .502 inches
  • Old Remington Standard Velocity   .565 inches

Velocity measurements for 50 rounds, average velocity, Standard Deviation, extreme spread in feet per second (fps).

  • CCI Standard Velocity:   Average 1072.3 fps, SD 17.5, extreme spread 84 fps, 1035 to 1119.
  • Old Remington Standard Velocity: Average 1098.9 fps, SD 19.8, Extreme spread 101 fps, 1041 to 1142.

Reliability for 500 rounds fired:

  • CCI Standard Velocity: 1 failure to fire, round 102, strong firing pin strike, rotated the round, it fired on the second strike.
  • Old Remington Standard Velocity: 1 failure to fire, round 252, second round after cleaning. Very light primer strike (probably a mechanical rather than ammunition failure). The round was rotated. It fired normally with a second strike.
Light firing pin strike before rotation and firing with the second strike.

For practical uses of .22 rimfire ammunition, there is no significant difference between the nine-year-old CCI ammunition and the 65+-year-old Remington ammunition.

This correspondent intends to make this testing a regular event. Data will be collected about the storage life of .22 ammunition, to the point of finding significant degradation, or of running out of ammunition.

There is enough ammunition to extend the test to over 100 years of storage if 500 rounds are fired each year. Alternatively, 500 rounds could be tested every two years, or five years, extending the test even longer!?

Enormous quantities of .22 rimfire ammunition have been purchased in the last two years. Much of it has been stored. If stored at reasonable temperatures in airtight containers, it should be useful for at least 65+ years. As no degradation has been detected in the stored Remington ammunition, the upper limit of storage life is unknown.

The author expects the test project to extend beyond his lifetime. The intention is to find viable candidates to continue testing to at least 2056.


About Dean Weingarten:

Dean Weingarten has been a peace officer, a military officer, was on the University of Wisconsin Pistol Team for four years, and was first certified to teach firearms safety in 1973. He taught the Arizona concealed carry course for fifteen years until the goal of Constitutional Carry was attained. He has degrees in meteorology and mining engineering, and retired from the Department of Defense after a 30 year career in Army Research, Development, Testing, and Evaluation.

The post Shelf Life of .22 Rimfire Ammunition: Test of 65+ Year Old Ammo appeared first on AmmoLand.com.

AmmoLand.com

Getting Started With Fedora Silverblue: A Flatpak-Only Version of Fedora Linux

https://static1.makeuseofimages.com/wordpress/wp-content/uploads/2021/09/fedora-silverblue-gnome-software-updates.png

Fedora Linux is one of the most well-known versions of the Linux operating system. This community-run Linux distribution, sponsored by Red Hat, prides itself on developing and introducing the software that eventually makes its way to other Linux distros.

Fedora Silverblue packages and uses that software in a way different from the traditional Linux desktop model, one that may become the way forward for Fedora and, possibly, other Linux distros. You can already use it today, and here’s why you might want to.

What Is Fedora Silverblue?

Fedora Silverblue is a version of Fedora Linux centered around rpm-ostree and Flatpak. In a nutshell, this provides Linux with the kind of security and app distribution seen on mobile phones and Chromebooks. To understand Fedora Silverblue, it helps to understand these two technologies first:

What Is rpm-ostree?

Instead of distributing an operating system consisting of hundreds of packages, Silverblue provides your system as a single image. When updates arrive, rather than downloading newer versions of specific packages, such as the system components and libraries that operate in the background, Silverblue provides a single newer image that contains these updates.

This comes with a few big benefits. One is stability. Your system won’t fail to boot or malfunction because a single package is missing or corrupted. Instead, your system is one big all-or-nothing image. But if a problem does arise, you can easily undo the mistake by booting using a previous image that is known to work.

What Is Flatpak?

Flatpak is a universal app format that enables you to install an app on virtually any Linux distro. This is a replacement for traditional packages such as DEB and RPM, which are not universal. A distro that uses DEB packages, such as Debian or Ubuntu, can not install RPM packages, and vice versa.

Flatpaks also come with added security benefits. Each app is a sandbox, isolated from the rest of your system. For an app to access other components, such as your files or your webcam, you must grant it permission.

Getting Started With Fedora Silverblue

Installing Fedora Silverblue works the same way as installing Fedora Workstation. You can head to the same website, getfedora.org, and scroll down until you see Silverblue, or you can go directly to the Silverblue website to download the necessary ISO.

If you’re familiar with the installer in Fedora Linux or Red Hat Enterprise Linux, then you already know what to expect in Silverblue. Newcomers will find the process comparable to installing applications on Microsoft Windows, where clicking the “Next” button often enough will eventually result in the software you want being installed.

Once you reboot into your new system, you will see a pristine GNOME desktop and the GNOME Tour app, which introduces you to the way GNOME works. At this point, you haven’t yet encountered a difference between Fedora Silverblue and Fedora Workstation, but you’re about to.

How to Install Updates


One of the first things you will need to do on your new system is install updates. You can open GNOME Software and try to view available updates, but this may or may not work. For better or worse, this is not an issue specific to Fedora Silverblue. I find GNOME Software to be an unreliable tool for displaying and installing updates on Fedora Workstation as well.

If GNOME Software works, you will see a prompt to “Restart & Update.” Unlike Fedora Workstation, you won’t need to wait, after you restart, for Fedora to install your packages. Instead, Silverblue will simply start back up using the newer system image that you’ve just downloaded.

If you’ve been using Linux long enough, GNOME Software not working may not seem like much of an issue. You may already be accustomed to installing updates through the command line. This is not because it is the only or easiest way to install updates on Linux, but because the command line often does the job faster and with maximum information presented, showing exactly what updates you’re getting.

On Fedora Workstation, you can install updates with:

sudo dnf upgrade

However, this doesn’t work in Fedora Silverblue. Instead, you will need to use the command:

rpm-ostree upgrade

Notice that in Silverblue the command does not require sudo or administrator access. On Silverblue, you don’t need elevated permissions to upgrade your system or install software.

When the upgrade completes, the terminal displays a full list of upgraded packages in the new system image and a command you can run to restart your system, which you need to do before any of the downloaded updates will take effect.

How to Install Apps on Silverblue

At the first launch, GNOME Software will seem more lightly populated than usual. That’s because Fedora Silverblue does not provide all of the apps available as RPMs in the usual Fedora repository. Silverblue instead uses a separate Fedora repository of Flatpak apps known as the Fedora Container Registry. Various GNOME apps, games, and a few key productivity apps like LibreOffice are available, but there’s much to be desired.

To get more software, you will want to head to Flathub and follow the very simple setup instructions. This will greatly expand the apps that are available in GNOME Software.

To install apps from the terminal, you simply use the flatpak install command. Unlike DNF, you do not need to know the exact name of a package. Flatpak will generally guess what you’re looking for or present you with options if the answer isn’t clear.

If a program you want isn’t available as a Flatpak, you still have the option to install RPMs, but here is where things get tricky.

For apps you intend to use often, you will probably want to append them to your system image using the rpm-ostree install command. Follow this command up with the exact name of the DNF package you wish to install. You will need to restart your computer afterward. From then on, your system image will include these apps during upgrades. To remove software, including preinstalled apps like Firefox, use the rpm-ostree override remove command.

The alternative approach is to launch apps from the command line. These apps will not appear in your app drawer, nor will their icons appear on your dock. To go this route, you will need to become familiar with Toolbox.

Working in the Terminal

Fedora Silverblue comes with a terminal, and most of the commands you come across will still work. But if you want to add or remove packages, you will need to turn to a tool called Toolbox.

Toolbox creates containers, or isolated workspaces, where you can install all the packages you want without cluttering your system.

To create a toolbox, use:

toolbox create

Then type:

toolbox enter

Now you can use DNF and install any Fedora packages you wish. When you are done, type exit to exit Toolbox.

Note, Toolbox containers are not isolated in a security sense. Each has access to your home directory and other aspects of your computer. Do not treat them as safe ways to mess with sketchy software.

Managing App Permissions


The Flatpak format does come with some protections against sketchy or compromised software. While you can see some of this when you open System Settings and navigate to Applications, to really take control you need to install a program known as Flatseal.

With Flatseal, you can block apps from gaining access to the network or limit them to only view files in a specific folder on your hard drive, for example. This program is available for any Linux distribution, but since Fedora Silverblue goes all-in on Flatpak, this means you have this level of control over the majority of apps on your system.

Is Fedora Silverblue Ready for Primetime?

Yes, there is already a community of people using Fedora Silverblue as their primary distro. Apps are stable and, for the most part, it looks just like regular Fedora Linux. Once you learn Silverblue’s quirks, you may actually even find it easier to use than a traditional Linux distro.

Fedora Silverblue isn’t alone. If you find this concept exciting, know that there are a few other Linux distros that have also embraced Flatpak for all of their apps. More could be on the way.

MUO – Feed

I’m recording the complete Laravel documentation as video screencasts, and you can join the process of building this platform.

https://protone.media/img/header_social.jpg

I’m recording the complete Laravel documentation as video screencasts, and you can join the process of building this platform.

Today I want to share the birth of a new project with the Laravel community: Artisan School. The primary goal is to provide high-quality Laravel screencasts where I mix the Laravel documentation with real-life examples. Besides the video content, I want to create a place to discover code examples, links to resources, and additional content.

I’ve had the idea to record the complete Laravel documentation as video material for a while now. As you might know, I’m running a YouTube channel where I do live coding sessions now and then. However, due to the development of Launcher and other projects, the weekly schedule was not so weekly anymore, and I feel it’s time to take it to the next level!

Starting next week, you can expect the following:

  • The development of the Artisan School platform in public with live coding sessions
  • Screencasts based on the Laravel documentation with real-life examples
  • Screencasts for related open-source projects, like Inertia, Livewire, and other packages

I’ll upload new videos directly when they’re ready, not waiting until I produce a complete collection of videos.

Artisan School

Want to keep notified about Artisan School? I’ve created a small landing page with a sign-up form. I’ll start publishing the first videos soon, so please leave your email address to stay in the loop! There’s also a new Twitter account where I’ll post the videos as well.

Do you have ideas or suggestions for this platform? Don’t hesitate to send me a message, for example, on Twitter 🙂

Laravel News Links

Skipper is a powerful visual editor for Laravel Eloquent

https://laravelnews.imgix.net/images/skipper18-FEATURED-IMAGE1-1631452140.png?ixlib=php-3.3.1

Engineers are the artists with better tools. They not only use their senses to create a masterpiece, they also use their brains, so they can achieve it smarter.

Imagine you can become a genuine Laravel engineer.

Imagine you can use a tool that allows you to:

  • Create a visual model of your project with just a few clicks
  • Generate all model and migration files from this model without typing any lines of a code
  • Change the model at any time in the future and get updated migrations at the same moment

Sounds too good to be true? Not at all. Skipper is a powerful visual editor for Laravel Eloquent that can do this all. And it brings you much more.

Benefits of Skipper Usage

  • Skipper saves you a huge amount of time.
    At any phase of project lifecycle, it doesn’t matter if you start from scratch or just edit an older project, this is what you always get – a terribly large amount of time, which you can spend in a better way.

  • Skipper decreases the demands on your coders’ skills.
    We all want to have the best employees possible. But sometimes, you cannot find them easily. Skipper reduces their lack of qualification by preventing possible mistakes they could make while coding manually. With the course by Tom H Anderson you will be able to give employment also to junior programmers.

  • It always allows you to perfectly know your model.
    You and your whole team can clearly see and understand the whole project logic and how the data will flow through the system. Last but not least, with the diagram, you can also easily explain it to your customer.

  • It allows understanding and management of the large projects easily
    Skipper can be used for applications with a few or hundreds of tables. Large projects are simply impossible to converse about without a visual model. Can you imagine joining a new project and they give you a SQL dump of the schema and say, “Learn this.” You probably don’t want to. With Skipper this will not be a problem anymore.

All right, until now we’ve been talking only about the comfort and the work that you can save. It might all sound like a nice marketing talk. So, do you wonder what Skipper really does in terms of Laravel coding? We understand that, let’s go through this.

Skipper Features

ORM-based Entity-Relationship Diagramming (not just database design)

  • Editing of all objects (entities, modules, associations and indexes) through an intuitive and easy-to-use interface.
  • In-built value advisors, validators, and assistants.
  • Regions and color management for a well-arranged model.

Export of models to abstract classes allowing Skipper to manage them

  • Export of Laravel migrations sequentially as your schema changes.
  • Exported migrations are in a standardized and ready-to-use format.
  • Migrations and abstract models are updated during each export, concrete models are exported one time and prepared for your customization

Import of existing projects

  • Smart wizard guides you step by step through the project import from the database.
  • You get a project model in just a few clicks.

Perfect tool for project documentation

  • Exported migrations, with a complete ERD, give perfect referential integrity.
  • Enables clear schema communication across the entire development team.
  • Data stored as XML files for better readability and versioning support.

Wide range of customization options

  • Support for your own templates, behaviors, custom properties, or data types.
  • Allows you to connect Skipper with other external tools.

Well documented

  • Comprehensive documentation covers every topic of Skipper usage.
  • To get into Skipper really quickly and smoothly, check the section “Course” in this article.

Support for Eloquent and other frameworks

  • Eloquent for Laravel.
  • Doctrine (1 and 2) and Propel for Symfony and Zend.
  • CakePHP and MongoDB ODM.
  • Customized and in-house frameworks.

More than 10.000 satisfied customers

  • Maybe you know some of them. Apple, eBay, Lidl, Avast, Hostwinds, SuddenLink, University of Kentucky… And this is just the tip of the iceberg.
  • Stable and well-tested software with more than 10-year history.

The course

The course Designing Entity Relationship Diagrams in Laravel, created by erd.design, teaches you how to start using Skipper in your project today with guides on importing existing projects, starting projects from scratch, exporting to models and migrations, and how to create a readable ERD.

The course was built with the cooperation of Skipper and Tom H Anderson. The course also influenced the Laravel Framework, Illuminate, with new functionality added to allow changing of DateTime schemas.

All this was done to share the beauty of development that Skipper catalyzes. With 10 years of Skipper experience, erd.design is in a unique position to teach ERDs with Skipper and, through this ever-improving course, bring better Eloquent ORM engineering to a wider audience. Use the coupon code LARAVELNEWS for and you will get 25% price reduction.

Skipper Licensing

During 14-day long evaluation period, you can try for free all Skipper features and functions.

You can buy a lifetime license for €395 ($495) which also includes all updates for a 1-year period. After that, there is an annual maintenance agreement of €139 ($169) which gives you constant access to updates for the next 1 year.

If you like Skipper and have some ideas you could share with us, we would be happy for your feedback. In exchange, we want to offer you 10% off the price for your purchase. Write to us to support@skipper.com and we will provide you with your price-cut coupon.

Laravel News

Making Movie Natural Disasters

https://theawesomer.com/photos/2021/09/making_natural_disaster_movies_t.jpg

Making Movie Natural Disasters

Link

Movies and TV shows use a mix of practical, optical, and digital visual effects to simulate natural disasters. Insider compiled behind-the-scenes footage from eight movies where VFX pros brought storms, earthquakes, tsunamis, and other acts of Mother Nature’s fury to life.

The Awesomer

Understanding the magic of Laravel macros


Using Laravel macros is a powerful way to extend default behavior of many classes in Laravel, such as Collections, Stringables and Reponses. In this article I’m going to explain how these macros work under the hood.

What are macros?

Using macros, you can extend default methods in a class. Take for example this macro:

Collection::macro('insertBetweenEach', function ($value) {
    return $this->flatMap(fn ($item) => [$item, $value])->slice(0, -1);
});

Now if you run this code:

collect([1, 2, 3])->insertBetweenEach(4)->dd();

You’ll get this output:

[1, 4, 2, 4, 3]

As you can see, it’s very simple to add macros and thus extend classes like Collection, Str, Stringable and Response. And if you would try to change the core classes in the vendor folder, you would loose all methods when updating or deploying.

The Macroable trait

All classes that offer macro-functionality, use the Illuminate\Support\Traits\Macroable trait. You can even add this to your own classes too!

The trait adds a protected property to the class, called $macros. When you register a macro using the macro() method, it will be saved in this array.

// vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php

trait Macroable
{
    protected static array $macros = [];

    public static function macro(string $name, object|callable $macro): void
    {
        static::$macros[$name] = $macro;
    }
}

Calling methods

When you call a method that does not exist on a method, PHP will check for a __call() method and runs that instead of throwing an exception. In this method Laravel will check if there is a macro registered and run that.

// vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php

trait Macroable
{
    protected static array $macros = [];

    public static function macro(string $name, object|callable $macro): void
    {
        static::$macros[$name] = $macro;
    }
    
    public function __call(string $method, array $parameters): mixed
    {
        if (!isset(static::$macros[$method])) {
            throw new BadMethodCallException(sprintf('Method %s::%s does not exist.', static::class, $method));
        }

        $macro = static::$macros[$method];

        if ($macro instanceof Closure) {
            $macro = $macro->bindTo($this, static::class);
        }

        return $macro(...$parameters);
    }
}

This method exists of four parts:

  1. It checks if the macro exists, and if not it throws an exception
  2. It finds the corresponding macro
  3. If the macro is callable (a Closure), it will bind the callback to the current class, so if the macro calls $this it works as expected
  4. It will run the macro

Static methods

When a static method is called that does not exist, PHP will execute the __callStatic() method instead of __call(). This will basically do the same thing as __call(), except not binding the callback to the current instance.

// vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php

trait Macroable
{
    protected static array $macros = [];

    public static function macro(string $name, object|callable $macro): void
    {
        static::$macros[$name] = $macro;
    }
    
    public function __call(string $method, array $parameters): mixed
    {
        if (!isset(static::$macros[$method])) {
            throw new BadMethodCallException(sprintf('Method %s::%s does not exist.', static::class, $method));
        }

        $macro = static::$macros[$method];

        if ($macro instanceof Closure) {
            $macro = $macro->bindTo($this, static::class);
        }

        return $macro(...$parameters);
    }
  
    public static function __callStatic(string $method, array $parameters): mixed
    {
        if (!static::hasMacro($method)) {
            throw new BadMethodCallException(sprintf('Method %s::%s does not exist.', static::class, $method));
        }

        $macro = static::$macros[$method];

        if ($macro instanceof Closure) {
            $macro = $macro->bindTo(null, static::class);
        }

        return $macro(...$parameters);
    }
}

Conclusion

Although Laravel macros may seem hard to understand, they are actually very simple to understand and use.

Laravel News Links

80% Lowers & Kit Sales Spike in 2021

https://www.pewpewtactical.com/wp-content/uploads/2020/03/Food-TP-Bullets-1024×683.jpg

I don’t think that anybody would argue that the past year and a half has been absolutely insane for gun sales.

I mean, seriously, we should all make congratulatory t-shirts or something. Part of the chaos of 2020-2021 has revolved around the gun industry as well.

Food TP Bullets
This just about sums up 2020 and 2021.

We all know that firearms, ammunition, black powder, and other components have virtually disappeared from shelves throughout the nation.

And President Biden has positioned the Department of Justice to tackle topics like pistol braces and 80% receivers.

Older AR-15 Pistol Braces
Pistol braces also came under fire.

But we wanted to know what kind of impact the past year and a half has had on the world of 80% receivers.

So, if you’ve been curious about how 80% receivers have fared recently, keep reading to learn more.

80% Arms GST-9 Parts
GST-9 Parts

80% Receiver Sales Spike

Since 2020 when guns began disappearing off gun store shelves, more Americans began turning to 80% receivers as it was one of the few options available.

As a result, people began buying them in droves. While Pennsylvania-based JSD Supply was already planning on expanding their capabilities before 2020, last year pushed them into expansion even further – almost accidentally, CEO and owner Jordan Vinroe stated.

Starting Pilot Hole, 80% Arms
Starting Pilot Hole

JSD Supply is primarily geared towards the do-it-yourself firearm maker, with a host of products revolving around the DIY sector — including 80% AR-15 lowers, AR-10 lowers, and the like.

Vinroe said business was booming. But what caused this increase?

Executive Actions

“It’s most certainly due to government overreach. Anytime people try to restrict a right, people exercise that right as much as they can.”

Vinroe noted that when politicians talk about guns, gun sales always increase exponentially. History has proven that politicians often make the best gun salesmen.

In April, President Biden issues several Executive Actions targeting both braces and 80% kits. (You can read more about that here.)

Biden Signs
President Joe Biden, joined by Vice President Kamala Harris, signs the American Rescue Plan Thursday, March 11, 2021, in the Oval Office of the White House. (Official White House Photo by Adam Schultz)

“We’ve been expecting (and preparing) for legislation and regulation to come to the national stage for a while now, and today’s press conference from the White House confirms it. 80% Lowers are the main target of an aggressive executive push to undermine the community of home builders,” 80% Arms said in a statement shared with Pew Pew Tactical at the time.

“We believe the best way to ensure 2nd Amendment rights is to provide a method that allows citizens to manufacture their own firearms at home,” the company added.

80% Arms GST-9 Parts

Following the Executive Actions, the ATF issued a 115-page set of proposals attempting to reclassify a firearm’s “frame or receiver.” You can read more about that in our ATF’s Proposed Rules on Firearms, Receivers [Guide].

Nathan Deters of Anderson Manufacturing explained his company saw a significant increase in 2021 in 80% lower purchases. He said it was “definitely due to the recent ATF proposed rule changes on 80% lowers.”

Best Value
50

at Brownells

Prices accurate at time of writing

Prices accurate at time of writing

Demand for 80% lowers reached such heights in 2021 that Anderson Manufacturing moved some production capacity over to 80% lowers.

Anderson Manufacturing also noted an uptick in jig kits and complete lowers as well.

Ghost Gunner also saw a massive spike starting in April 2021. Cody Wilson attributes this to when “Biden made his ghost gun rule press conference.”

80% AR-15 Lowers, All Sides
80% AR-15 Lowers, All Sides

As a result, the company struggled to keep enough .308 and AR-15 style receivers in stock. They’re flying off shelves as soon as they get them in.

“We sell every Polymer80 frame we can get in stock. People are aware of the state and federal doors closing on this activity,” Wilson stated, as well as noting that they’re seeing a spike in the sales of jigs for 80% lowers as well.

80% Arms GST-9 Complete
GST-9 Complete

Akin to the other manufacturers I contacted, Ghost Gunner has also seen certain areas ordering more products than others.

Wilson noted that the demographics for sales have largely remained the same for the past five years. But said that California and cities such as Baltimore are overrepresented within his business.

30

at 80% Arms

Prices accurate at time of writing

Prices accurate at time of writing

Riots & Unrest

JSD Supply’s Vinroe explained that in addition to politics, cities hit with riots often saw customers calling JSD Supply “almost frantic” due to their inability to find a gun in local stores.

Missouri, in particular, saw an uptick in sales after riots broke out.

Portland Riot Police 2
Portland Riot Police

As far as customers themselves, JSD Supply said a large number of first-time gun owners purchased products and a significant number of burglary victims who believe that their homes were targeted as a result of local riots as well.

According to Vinroe, every product JSD Supply offers experienced an increase in sales over the past year and a half.

Conclusion

It should come as no surprise that 80% receiver sales are up. Virtually every item within the entire gun industry has seen spectacular sales for the past year and a half.

CMMG Lower Parts Kit and 80% Arms Completed Receiver
CMMG Lower Parts Kit and 80% Arms Completed Receiver

Driven both by civil unrest and politics, it seems as if the 80% trend isn’t slowing down anytime soon.

What do you think about 80% kits and lowers? Let us know in the comments below. Read up on 80% kits at What Are 80% Lower Receiver Kits and the Best 80% Receivers, Jigs & Frames.  

The post 80% Lowers & Kit Sales Spike in 2021 appeared first on Pew Pew Tactical.

Pew Pew Tactical

How To Automatically Apply the Laravel-PHP Coding Style (For Free)


If you work inside a team, do yourself a favor – decide on a coding style and get the entire team to use it.

Why Stick To a Standard Code Style?

Making all your teammates’ code look the same will make the codebase so much easier to review, merge and maintain:

  • it’ll be easier for you to judge only how the code works, without being distracted by how it looks;
  • you won’t have PRs bloated by striping spaces, removing spaces, converting tabs to spaces, moving parentheses on the next line… and so on; less to think about during review; fewer conflicts to fix;
  • even if you work solo – I’d argue it’s still very a good idea to do it; adopting PSR-12 in particular will make your code look the same as most well-maintained PHP projects; so when you go look at their code, it’ll actually start looking… a little more familiar; so it’ll be a little easier to learn from them;
  • plus, I bet you will adopt PSR-12 one day, so if you start now… you’ll thank yourself later on; be kind to your future self!

Which Code Style to Choose?

Fortunately, thanks to PHP-FIG, it’s easy to choose a standard to start from – PSR-12. Digging a little deeper though, the Laravel ecosystem has pretty much decided on a few rules on top of that. Personally I don’t agree with all of them… but… that’s normal. Ask 10 developers what they like and… you’ll get 10 different answers. So in this case, I found it’s better to just… stick to the Laravel standard. You don’t like X in particular, your coworker doesn’t like Y, and so on, but… you each give in a little bit, for the sake of standardization. Everybody compromises, nobody has a reason to make a fuss… it’s the fair way to go, if you ask me. But hey… you do you 😀

How Do I Automatically Enforce It?

There are quite a few ways to do this automatically:

Option 1. Use StyleCI

If you can use StyleCI, use that. This is why it exists, and it does an excellent job. When someone pushes code to the repo, StyleCI comes in and formats it, by changing their PR to match the code style. It’s simple and brilliant. In fact, we use StyleCI for all the public-source Backpack packages and it’s worked wonders. Just follow the prompts to set it up, then you can forget about it.

If your code is open-source, this is such a good option, that you don’t need to read any further!

However… if your code is closed-source (not public)… you might find your particular company/setup can’t use StyleCI. You might develop A LOT of private projects, that are not under continuous development or maintenance… so you don’t want to pay for a maintenance fee for legacy projects… we get it, we got there too. In that case, the StyleCI pricing won’t make sense for you. In that case…

Option 2. Use PHP-CS-Fixer in Your Editor/IDE

Use php-cs-fixer locally, on each developer’s computer. There are plug-ins for every major editor and IDE, so it should be easy to do. You can store a configuration file in your project root, to make sure you all enforce the same rules.

However, this does assume you can tell your developers “do this, we all need to use the same code style“. In most teams, you can. But even if they do, most developers switch editors, forget to install the plugin, so unstyled code does go through, sometimes. For that reason alone, I don’t trust this method alone. So what I prefer is to…

Option 3. Use PHP-CS-Fixer Inside a Github Action

If none of the above float your boat, there’s one super-simple solution that you can implement, then forget about. It has most of the benefits of StyleCI (it’s implemented where the code is stored, on Github) and most of the benefits of PHP-CS-Fixer (it’s free).

You can implement a Github Action. Every time code is pushed or a pull request submitted, you can run php-cs-fixer on that code and fix whatever is needed. That way, no matter what developers submit, the code will be styled according to the standard.

To be honest, this is the entire reason this article exists – so I get to document how I did this 😀 Hopefully it’ll save you some time (and future me too). Here’s how to go about it:

Step 1. Create a configuration file for PHP-CS-Fixer (.php-cs-fixer.dist.php in your root directory). Here’s the content we use for it, after digging quite a bit. Note that if you don’t have a directory mentioned at the end, you should comment them out, otherwise PHP-CS-Fixer will fail. If you have any comments/improvements on the code style, please suggest them in my gist, it’s open for improvements.

Step 2. Add .php-cs-fixer.cache to your .gitignore file.

Step 3. Add a PHP-CS-Fixer as a dev requirement: composer require --dev friendsofphp/php-cs-fixer

Step 4. Add a Github action/workflow for it, by creating a .github/workflows/format_php.yml file:

name: Apply PHP Code Style

on:
    push:
        branches:
            - 'master'
    pull_request:
        paths:
            - '**.php'

jobs:
    php-cs-fixer:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/[email protected]
              with:
                  ref: $

            - name: Install
              run: composer install

            - name: Run php-cs-fixer
              run: ./vendor/bin/php-cs-fixer fix

            - uses: stefanzweifel/[email protected]
              with:
                  commit_message: Apply php-cs-fixer changes

That should be it. Once you push code to your repo, a new commit should automatically be created, fixing the style. This works particularly well if you work with PRs, because then you squash and merge them and you won’t bloat up your git history.


I hope this will be helpful to you. If you have a better way of doing this, let me know in the comments. I know there are a lot of ways, but this is what I found to be the best for us, in Sep 2021.

Laravel News Links