On the Github page for the quixotic project, coder ading2210 discusses how Adobe Acrobat included some robust support for JavaScript in the PDF file format. That JS coding support—which dates back decades and is still fully documented in Adobe’s official PDF specs—is currently implemented in a more limited, more secure form as part of PDFium, the built-in PDF-rendering engine of Chromium-based browsers.
In the past, hackers have used this little-known Adobe feature to code simple games like Breakout and Tetris into PDF documents. But ading220 went further, recompiling a streamlined fork of Doom‘s open source code using an old version of Emscripten that outputs optimized asm.js code.
This fan-made video pays homage to Star Trek II: The Wrath of Khan. Like the Mutara Nebula scene that ILM brought to life in 1982, these spaceships were created without the benefit of CGI. NJM Photo used AMT model kits and a low-budget motion control rig to capture the Starship Enterprise and the hijacked USS Reliant. Check out the BTS video here.
Far and away, Daredevil is one of the best and fondly remembered shows Marvel’s ever put out. Bringing Matt into the MCU proper was an event even before Marvel revealed his story would continue with Daredevil: Born Again, and now we’re not that far off from having our favorite blind ninja lawyer back on our screen once more. Now, we finally get a public sampling of what’s in store, and suffice to say: sign us up.
Born Again finds Matt Murdock (Charlie Cox) back in red, being a lawyer, and hanging with Karen (Deborah Ann Woll) and Foggy (Elden Henson). Wilson Fisk (Vincent D’Onofrio) once more. Last time we saw Fisk, he’d been partially healed of his childhood trauma by his adoptive daughter Echo, which only left him more pissed off. Now he’s looking to run for mayor of New York, but that might be the least of Matt’s worries given everyt there’s a mysterious serial killer on the streets named Muse, another vigilante in White Tiger (Kamar de los Reyes), and both Punisher and Bullseye may be popping back in to make his life even more hell.
So yeah, things are once again crazy for Daredevil, to say nothing of his lawyerly duties. The only thing he can do is punch everyone and brutally kick ass in hallways…and Hell’s Kitchen has a lot of hallways.
Daredevil: Born Again takes us to church Disney+ on March 4.
To figure out what gear we need to survive a civil unrest scenario, we need to identify what that scenario is. Depending on where you live and commute, the threats for those areas will dictate the gear. This is going to be different from person to person.
The following is the gear I’m using for my area of operations. For my area, Northeast Ohio, we’ve had “street takeovers” that have turned violent in Cleveland and surrounding areas. With that, my mindset is, what do I need to safely escape and evade that area if I get caught up in one of these? If I have my wife and daughters with me, it becomes even more critical that I get them to safety.
Aside from that, you’ve likely seen gangs harassing small towns across the United States, breaking and entering apartment complexes, and carjacking.
Not all these scenarios are going to warrant lethal force unless you can, without a doubt, prove your life was in danger. For that reason, I will always have my concealed carry pistol on me, but I will likely be going for the other gear first.
Most of you have heard of the different gear levels, starting with the gear on your person, your belt and/or chest rig, and finally, a backpack. Keeping somewhat with those levels, we will adapt that to the everyday guy or gal. Let’s cover the minimum EDC you should have on your person and then the minimum items to have in a go-bag.
Handheld Flashlight. I have been carrying the Streamlight Protac 1L-1AA light since it was released. I prefer it because its a dual-fuel light meaning I can use with a standard AA battery or a more powerful CR123.
Knife and/or MultiTool. I’ve been through many EDC knives, expensive and cheap, and I always go back to the KA-BAR Dozier folding knife.
Concealed Carry Pistol and spare mag. For me, that’s a Glock 17 carried in a Tier 1 Concealed IWB holster.
Minimum of $100 cash with a recommended amount of $300.
EDC Tourniquet in my back pocket. I’ve carried a SWAT-T Tourniquet for about a decade and, luckily, never used it.
Go-Bag Gear List
Medical Trauma Kit. There are some great pre-made options to purchase. To keep things simple, I built my own kit with the four primary trauma items: tourniquet, hemostatic gauze, compact pressure dressing, and compact chest seal. In addition, I also carry a small pack of first aid items for smaller cuts and scrapes.
Gas mask
Smoke grenades
Bear spray
Water bottle with water
Compact Rain Jacket
Level 3a soft armor backpack insert
I have to give credit where credit is due for a few of my go-bag items. John ‘Shrek’ McPhee recently did a video on his go-bag. After watching that video and thinking about his mindset, I decided to add a gas mask, smoke grenades, and bear spray to my go-bag equipment list. Plus, it’s just cool to have a blacked-out gas mask and smokes. A little intimidation goes a long way. Check it out!
Some of you may have plate carriers with plates and/or chest rigs ready to go. While that may work for your area, it does not work for mine. The same goes for a truck gun. I’ve carried a rifle in my truck from time to time, but I don’t want the risk of someone breaking in and getting it, nor is it practical for the threats in my area. My civil unrest gear is not meant for a Red Dawn invasion but rather to escape and evade a bad situation.
Sound off in the comments with your preferred gear for civil unrest!
About Scott Witner
Scott Witner is a former Marine Corps Infantryman with 2ndBn/8th Marines. He completed training in desert warfare at the Marine Air Ground Combat Center, Mountain Warfare and survival at the Mountain Warfare Training Center, the South Korean Mountain Warfare School in Pohang, and the Jungle Warfare school in the jungles of Okinawa, Japan. He now enjoys recreational shooting, trail running, hiking, functional fitness, and working on his truck. Scott resides in Northeastern Ohio.
With air temperatures as low as -37°F, photographer and filmmaker Drew Simms captured a series of extraordinary images of Yellowstone National Park. In the extreme cold of winter, the park is devoid of tourists, so it provides an extraordinary opportunity to witness the frozen bison, coyotes, mountain goats, and other snow-covered wildlife.
The monkey’s fist knot is a compact ball of interwoven loops. Today, it’s used mostly for decoration, but it has a practical origin. The monkey’s fist knot was originally developed by sailors who needed a weighted end for the heaving lines used to cast ropes from ship to shore or ship to ship.
In this illustrated guide, we walk you through how to tie this nautical staple. Use it the next time you’re captaining a ship or to just create a cool-looking keychain for your kid.
As the new year begins, many of us set recurring goals—daily workouts, weekly meetings, or monthly reflections. Tracking these commitments in life can be tricky, but managing them programmatically doesn’t have to be. Enter Recurr, a powerful PHP library created by Shaun Simmons which is designed to handle recurrence rules (RRULE) with ease. Whether you’re scheduling weekly reminders, monthly events, or anything in between, Recurr simplifies the complexities of recurring dates so you can focus on building your application.
To install Recurr use composer.
composer require simshaun/recurr
Then, in your PHP code, you can instantiate the \Recurr\Rule class:
$timezone = 'America/Jamaica';
$startDate = new \DateTime('2025-01-1 10:00:00', new \DateTimeZone($timezone));
$endDate = new \DateTime('2025-02-12 10:00:00', new \DateTimeZone($timezone)); // Optional
$rule = new \Recurr\Rule('FREQ=WEEKLY;COUNT=6', $startDate, $endDate, $timezone);
echo $rule->getString();
//output: FREQ=WEEKLY;COUNT=6;DTEND=20250212T100000
You can also rewrite the above by chaining methods together for better readability:
$rule = (new \Recurr\Rule)
->setStartDate($startDate)
->setTimezone($timezone)
->setFreq('WEEKLY')
->setCount(6)
->setUntil($endDate);
Once you have a recurrence rule, you can take it a step further by transforming it into human-readable text:
$transformer = new \Recurr\Transformer\TextTransformer();
echo $transformer->transform($rule);
//output: weekly on Wednesday for 6 times
If you need the actual PHP DateTime objects representing the recurrence dates, use the ArrayTransformer class along with the getStart() or getEnd() methods:
You can also specify the days of the week for the recurrence using the setByDay() method:
$rule = (new \Recurr\Rule)
->setStartDate($startDate)
->setTimezone($timezone)
->setFreq('WEEKLY')
->setByDay(['WE','FR'])
->setCount(6)
->setUntil($endDate);
$transformer = new \Recurr\Transformer\TextTransformer();
echo $transformer->transform($rule) . PHP_EOL;
//output: weekly on Wednesday and Friday until February 12, 2025
Recurr also provides advanced features like setting constraints to include or exclude specific dates, applying post-transformation filters, and defining custom intervals.
To explore more about this library and its capabilities, visit the source code on Github.
Did you ever need to determine the performance of a query over time? One of the problems with database query optimizations is that the underlying data is always churning. Add in an increase in the number of users, expanding server demand use, and other items that impact your query. What was optimized is no longer performing as expected.
MySQL added a JSON format option to the output of the EXPLAIN command quite a while ago. More recently, Oracle added the feature of saving the output into a variable (see https://dev.mysql.com/doc/refman/9.0/en/mysql-nutshell.html and https://dev.mysql.com/blog-archive/explain-into-and-explain-for-schema-in-mysql-81-and-82). This provides a way to access the data in that variable and plop it into a database. The saved result can be compared to current or other past responses for analysis.
Every nation’s military relies on secure armories to store and maintain its weaponry, ensuring readiness for any mission.
Without these facilities, the chaos of scattered weapon storage could undermine operations and jeopardize safety. Here’s a closer look at how the US military expertly manages its vast arsenal, ensuring weapons are always combat-ready while maintaining strict safety and accountability protocols.
The Evolution of Armories
Military armories date back to ancient civilizations, starting as simple fortified warehouses. Over time, they’ve evolved into highly secure, state-of-the-art facilities equipped with maintenance workshops, advanced security systems, and climate control. These features preserve sensitive military equipment, optics, and munitions, ensuring operational readiness in even the harshest environments.
The Role of Armory Specialists
Armory specialists,like those in our U.S. Army, are the backbone of these facilities. They oversee weapon accountability, conduct routine inspections, and maintain inventory records. Their responsibilities include ensuring every weapon issued to service members is in perfect working condition and returned safely after use. Rigorous access protocols and ID verification systems prevent unauthorized handling, keeping weapons secure and accounted for.
“This is the job,” one specialist explained. “Whether it’s issuing rifles for training, deploying weapons for an operation, or maintaining equipment, our mission is always to ensure the readiness and safety of our forces.”
Precision and Care in Weapon Management
Every step in weapon handling is meticulous. When troops check out firearms, serial numbers are logged, and the weapons are inspected for safety. After training or missions, returned weapons are cleaned, inspected, and re-logged. Yellow tags mark firearms needing maintenance, ensuring no damaged weapon is inadvertently issued.
One standout example is the 341st Security Support Squadron Armory at Malmstrom Air Force Base. This 24/7 facility supports nuclear security, maintaining weapons used to guard missile fields and base assets. Such facilities are a testament to the military’s commitment to precision and security.
The Art of Maintenance
Maintaining military weaponry requires expertise. Precision weapons, such as sniper rifles, demand especially skilled repair work. Out of 200,000 Marines, only 60 are certified to repair and build these specialized arms, crafting components like barrels from scratch using blueprints and lathes.
Even ceremonial weapons, such as the M1 Garand rifles used by the Marine Corps Silent Drill Platoon, require careful upkeep. These World War II-era rifles endure rigorous use, including being tossed into the air during performances. Repairs involve intricate work to reinforce wooden stocks and ensure functionality without compromising their historical value.
The military’s environmental responsibility extends to recycling brass cartridges. Facilities like Joint Base San Antonio process up to 25,000 pounds of spent casings weekly. This brass is sorted, cleaned, and deformed to prevent reuse as live ammunition, then sold for recycling. The revenue generated—sometimes as much as $40,000 annually—is reinvested into base operations, proving that sustainability can go hand-in-hand with operational efficiency.
A Global Effort
From small arms to powerful air-to-air missiles, the military’s logistical network ensures every piece of equipment is properly stored, maintained, and transported. Bases worldwide, including those in Japan, Germany, and the Middle East, follow rigorous protocols to manage and deploy munitions for training and combat. These efforts exemplify the military’s commitment to readiness, safety, and innovation.
Why It Matters
Military armories operate as more than just storage facilities. They represent the dedication, precision, and ingenuity of the US armed forces. From ensuring weapons are mission-ready to recycling materials for sustainability, these operations highlight a commitment to excellence that keeps service members prepared to defend our freedoms.
So, the next time you hear about the military’s vast arsenal, remember the unseen heroes—the armorers, technicians, and logisticians—working tirelessly to keep those weapons safe, secure, and ready for action.