The 7 Best DNS Servers to Block Internet Ads

https://static1.makeuseofimages.com/wordpress/wp-content/uploads/2023/05/ads-anthony-rosset-unsplash.jpg

DNS servers are one of the best ways to protect yourself as you browse, and also one of the ways that big companies can get a hold of your information. But they can also help you to avoid online ads you find intrusive or particularly invasive.

If you want to protect your privacy or block internet ads as you browse, then ad blocking DNS servers are a great way to do so–no matter what device you’re using. Here, we take a look at seven of the best servers you can use to block ads.

MAKEUSEOF VIDEO OF THE DAYSCROLL TO CONTINUE WITH CONTENT

First up on this list, we have NextDNS. With over 130 different server locations and trusted as the DNS of choice by Mozilla, NextDNS is certainly one of the more popular entries onto this list.

At its core, NextDNS aims to protect its users from a wide variety of security threats while simultaneously blocking ads and trackers on websites and apps across the internet. Setting up and configuring a custom DNS with NextDNS is easy, and only takes a couple of minutes.

On top of this, NextDNS provides extensive analytics and logging information that you can use to measure how effectively you are protecting your privacy. This can be an effective way to see what websites and trackers you’re stopping, and if you’d prefer not to be logged, you can always toggle it off.

If you have children, then NextDNS is a great choice here as well. NextDNS comes with in-built parental control options that you can toggle on and adjust to your liking. This includes setting a recreation time, where certain games and sites are available, as well as options to permanently restrict certain types of content.

Next up, we have AdGuard DNS. AdGuard DNS uses several strong filters to target ads and trackers on any device connected to your wireless network.

This means that you won’t be seeing ads on any device you browse on, and on top of this, AdGuard also comes with a range of other handy features that you can use to keep you and those around you safe while they use the internet.

The easiest way to achieve this is by looking through the extensive statistics information that AdGuard provides. You can filter DNS requests by device, and find breakdowns of each device’s usage.

From here, you can alter your DNS filtering rules on the fly to better protect yourself. This, in conjunction with customized filtering options and strong parental control options, means that you can have a lot of control over what information you’re giving away.

If you’re looking for a DNS that you can use not only to block ads on any device, but also to help circumvent censorship, then LibreDNS is an excellent option.

LibreDNS uses a crowdsourced list of known advertising and tracking domains that it uses to block ads. On top of this, LibreDNS keeps no logs of any kind, and only keeps the minimum amount of data required in order to function.

This means that LibreDNS is not just a DNS server that blocks ads, but that it’s also a DNS server that keeps you safe.

Beyond this, LibreDNS is relatively simple. All you need to do is learn how to change your DNS settings, and you should be good to go.

Next up on this list comes Control D. Control D is a free DNS service that stops ads, malware, and trackers from having unrestricted access to your computer.

Control D is an interesting ad-blocking DNS server in that it aims to do more than just block ads. Control D doubles up as a productivity and pseudo-VPN tool as well.

There are plenty of ways to hide or fake your location in your browser, but Control D allows you to do so with no VPN application or extra programs to install. All you have to do is use Control D and you can set a different default location to your actual location.

If you’re looking for a feature-rich ad-blocking DNS server, then DeCloudUs may be the ideal solution for you. DeCloudUs is a DNS server that blocks ads, trackers, malware, phishing, and more.

On top of this, DeCloudUs is highly customizable, and includes a full suite of features such as parental controls, full DNS customization, custom filtering lists, and more.

The biggest downside with DeCloudUs, however, is that a lot of these features are locked behind premium plans. For more server options, custom DNS profiles, DNS statistics, and more, then you will need a premium account. You can use DeCloudUs entirely for free, but this will limit you to a single server in Germany and cut off access to many other features as well.

BlahDNS is a hobby project that aims to create a serious DNS server that can block ads with the best of them. The UI and layout leave a little to be desired, but the ad-blocking DNS server itself couldn’t be more different.

BlahDNS filters ads, trackers, malware, and more. It stores no logs, which is great if you’re concerned with privacy, though a downside if you like to track and optimize your ad filtering. When it comes to figuring how to block ads using DNS, BlahDNS is a pretty solid option in that once it’s set up you don’t need to think about it much, if at all.

Finally, we have AhaDNS Blitz. AhaDNS Blitz is a highly configurable cloud DNS firewall that blocks ads, trackers, malware, and more.

AhaDNS Blitz is built with security at its forefront. It uses multiple servers to make sure that there are few downtimes, and all traffic that is sent is entirely encrypted. On top of this, AhaDNS Blitz blocks ads and trackers so that you don’t have to worry about any annoying ads as you browse.

Block Ads No Matter Where You Browse

As you can see, blocking ads is easy. Once you learn how to set up your DNS, you won’t even need an ad blocker anymore. All you’ll need is the right DNS server for you, and you’ll be good to go. Before delving into any of these options, make sure you’re familiar with how to change your DNS settings.

MakeUseOf

The Legend of Zelda: Tears of the Kingdom review: A familiar but fresh adventure

https://s.yimg.com/os/creatr-uploaded-images/2023-05/ce4a3d10-ef74-11ed-abbb-2d0a18df043b

Games like The Legend of Zelda: Breath of the Wild don’t come along often. The 2017 title came 31 years into the franchise’s history and somehow felt familiar while simultaneously remixing or entirely removing core tenets of the series. To put it mildly, the changes worked. Breath of the Wild is the biggest-selling Zelda game of all time and was an unqualified success with critics and players alike.

What in the world do you do for an encore?

Internally, Nintendo decided to get right on that, announcing a direct sequel was in development only two years after Breath of the Wild arrived. The result is The Legend of Zelda: Tears of the Kingdom, a game that is not a complete reinvention. Instead, after successfully blowing up the Zelda format, Nintendo is giving players even more – more of Hyrule to explore, and more freedom to dream up how to tackle the many, many challenges the game throws at them.

Perhaps even more than its predecessor, though, Tears of the Kingdom demands patience. There’s an overwhelming amount of things to do, locations to see, puzzles to solve and enemies to defeat here. And as I tried to play through it as quickly as possible, to see as much of the world as I could for this review, I ended up more frustrated than satisfied. Fortunately, I then decided to slow down and indulge my curiosity, a decision that made the game far more rewarding and made me eager to explore at my own pace, without worrying about getting to the end.

Screenshots from Nintendo's The Legend of Zelda: Tears of the Kingdom.
Nintendo

Tears of the Kingdom kicks things off in a fashion that’ll be familiar to anyone who played Breath of the Wild. A quick prologue reveals the dark wizard Ganondorf and a calamity known as the Upheaval – events that leave Link grievously injured and Zelda missing (stop me if you’ve heard this one). The twist comes when Link awakes in a sky kingdom populated by ancient and powerful technology, courtesy of the Zonai clan. Lest you think, like me, that Nintendo just invented a new mysterious culture with a new set of powers to replace the Guardians from Breath of the Wild, the Zonai were actually briefly mentioned in the previous game.

The first few hours of the game take place entirely in the sky, a fascinating setting with a host of new challenges and enemies. But here the game retreads the prior entry here as you need to journey to a handful of shrines to get a new set of abilities, just like you did on the Hyrule plateau in Breath of the Wild. Once that’s done, you’re able to descend to Hyrule proper and get exploring.

Screenshots from Nintendo's The Legend of Zelda: Tears of the Kingdom.
Nintendo

Tears of the Kingdom gently guides you towards a few locations to get you started – but you can go anywhere you want, if you’re intrepid enough to try. The game definitely doesn’t hold your hand, and it took me a surprisingly long time to get my bearings and feel confident against the many monsters you’ll come across. At the start, Link is woefully underpowered, which makes finding the dozens of shrines dotting Hyrule crucial, as this is the quickest way to get more hearts, stamina and learn new fighting techniques.

I was also eager to find the numerous towers that dot the land, as those are how you reveal more of the Hyrule map. Six years later, Hyrule still feels positively massive, and navigating it without filling in the map is an exercise in frustration. In retrospect, though, I probably was too aggressive about journeying beyond the first few areas the game reveals to you, as I ran into numerous enemies I was simply not powerful enough to take on. My advice: stick to the game’s script and focus on the first few quests it gives you before going into full explorer mode.

In addition to the many shrines, the game will quickly implore you to search out four regions of Hyrule to investigate disturbances affecting the areas. (If you played Breath of the Wild, you can surely guess where those areas are.) This is where you’ll find the game’s four areas that harken back to the dungeons in Zelda games of yore. Just like before, you’ll need to help the citizens of each region before you can advance – but to keep things fresh, all the big dungeons are in the sky.

As much as I enjoyed revisiting the vast Hyrule overworld, the different gameplay elements and scenery of the sky areas made this feel novel. These main dungeons feel more similar to the Divine Beasts from Breath of the Wild than the levels found in Zelda games of old, but this time out they’re more visually distinct and connected to the region of Hyrule you’re visiting. The bosses of each are also a lot more creative and interesting than the variations of Calamity Ganon from last time out, too.

Screenshots from Nintendo's The Legend of Zelda: Tears of the Kingdom.
Nintendo

Another thing that will be familiar to Breath of the Wild players is the game’s presentation. As a direct sequel, there’s no noticeable change to how Hyrule and its inhabitants are rendered this time. Obviously, the sky islands and underground caverns were not present in BotW, so those areas gave the designers a chance to come up with impressive new visuals. The sky areas were particularly striking to me, though the underworld has a creepy, alien atmosphere that adds a whole new vibe to the game.

Nintendo’s art direction is impeccable, as usual, but six years on from Breath of the Wild it’s fair to say I sometimes wanted a bit more. I’ve been playing the Horizon Forbidden West expansion Burning Shores – that series has a similarly vast open world to these recent Zelda games, and having that in the back of my mind made me imagine what Hyrule could look like on more powerful hardware. I’m not saying I want a fully photorealistic Zelda game; the semi-cartoonish style has always been part of the charm. But it’s hard not to imagine just how spectacular this game could look on more powerful hardware. Of course, that’s not Nintendo’s strategy and it hasn’t been for years – but one can dream.

That said, the Switch hardware does show its age in one significant area. Frame rate drops are a bit more common in Tears of the Kingdom than I’d like. To be clear, this isn’t a major issue that renders the game unplayable by any stretch of the imagination. Generally, things run solidly at 30 fps, but the more advanced physics at play here occasionally causes some stutters. You’ll also get some dropped frames if too much is happening on screen, like big battles with multiple enemies in the rain. I never felt like these problems were enough to keep me from playing, but they are noticeable and show that Nintendo is pushing the Switch as hard as it can here.

Screenshots from Nintendo's The Legend of Zelda: Tears of the Kingdom.
Nintendo

You may be wondering what makes Tears of the Kingdom more than just a Breath of the Wild remix. There are two major components that make it stand out. First are the two new areas above and below Hyrule proper. Both the sky islands and underworld add completely new challenges and gameplay elements. For example, one set of sky islands has less gravity than everywhere else in the game, so jumps carry you further. It may sound like a little thing, but it actually changes the way you go about fighting enemies – for example, a jumping slash attack can deliver multiple blows as you slowly float back to the ground. But it also leaves you more vulnerable, since you can’t pull out your shield in the middle of this move. If you time it wrong, you can take serious damage in a counter-attack.

The underworld areas are perhaps the most treacherous you can visit in Hyrule. That’s thanks to the persistent gloom enveloping those regions, something that makes the monsters below even more powerful. If you get hit, not only do you lose hearts from your health bar, but those hearts actually “break” – they can’t be refilled unless you use a special elixir or visit particular waypoints scattered throughout the map. Naturally, since it’s pitch-black underground, navigating is a challenge as well. You’ll want to come well-stocked with brightbloom seeds, which can be found in caves throughout Hyrule. Dropping those illuminates the area, and you can also take special potions that make you glow on your own.

The underworld quest line provides a second set of tasks beyond the ones found in the Hyrule overworld. There aren’t any dungeons underground as there are up in the sky, but there are still significant quests and enemies to find below the surface. And from what I’ve played so far, these aren’t just side quests – they intersect with the main goal of finding Zelda. It’s easy to forget about the underworld while journeying through Hyrule proper, looking for shrines and helping residents in all corners of the map, but you’ll gain valuable skills and progress the story in major ways by diving underground as well. If you’re getting stuck or running out of steam, delving into the deeps is a good way to change things up.

Screenshots from Nintendo's The Legend of Zelda: Tears of the Kingdom.
Nintendo

But easily the most significant change is in the abilities Link has, thanks to his “Purah Pad” (a new name for the Sheikah Slate from BofW). Two of the abilities, Ascend and Recall, are useful but don’t fundamentally change the way the game is played. Ascend lets you dive straight upwards through roofs or rocks to reach new areas quickly, while Recall rewinds time on specific objects to move them backwards. They can be handy for sure, but you’ll need to master the other two powers to get anywhere in Tears of the Kingdom. One is called “Fuse,” which lets you stick objects you find around the world onto your weapons or arrows to enhance them. This is a requirement, because most of the weapons you find in the world have been decayed by Ganondorf’s emergence.

The good news is that you can stick all the monster parts you find around the world onto these weapons to greatly increase their power. For example, you can stick bokoblin horns on to your swords to make them stronger, but you can also fuse the tail of an ice lizard to a weapon and get its freezing power. However, these weapons still break far too often, so you’ll constantly want to be stocking up your inventory and investigating what combos of weapons and additional items work best. This goes for arrows, too: instead of being able to find or buy fire arrows, for example, you’ll need to attach a fire fruit to your arrow to set things aflame.

And then there’s Ultrahand. This takes the Magensis power from BotW, which let you move metallic objects around, and supercharges it. Now, you can pick up almost anything you see – and you can stick objects together to build basically anything you want. What really makes your creations useful are the Zonai tools you’ll find around the world, things like fans, wheels, flame-emitting objects and much more. If you have a board and a fan, you can fashion a makeshift hovercraft, for example. Or if you need to reach a far-off location, try building a bridge.

As the game goes on, it does a great job of nudging you towards building more complex and useful tools. The possibilities are near-limitless, and I’m really looking forward to seeing videos of all the ridiculous things that people try to build. (For example, the hilariously flammable war cart that my colleague Sam Rutherford built.) I was initially worried that I wouldn’t be quite creative enough to fully take advantage of the potential that Ultrahand provides, but totally wild creations are rarely required. Usually, it’s a matter of sticking two or three things together to achieve a goal, and the game makes it pretty clear what you need to do. The quick shrines, most of which you can get through in five or 10 minutes, also are good at showing you what kinds of things are useful to combine.

You can also use Fuse to combine Zonai objects together with your weapons and shields. One of my favorite combos is sticking a springboard to a shield – so when enemies hit it, they go flying, giving you a chance to counter-attack or run away. Attaching a fire device to your weapon, meanwhile, lets it spew flames as you swing it. Again, the possibilities are vast, and it’s going to be a lot of fun seeing what kinds of weapons and other contraptions people come up with to suit their own play styles.

Screenshots from Nintendo's The Legend of Zelda: Tears of the Kingdom.
Nintendo

This all adds up to a game that, despite significant shared DNA with Breath of the Wild, feels new and vital. I have fond memories of my time traversing Hyrule in BotW, and I was eager to jump back into the world again. The overworld map may be the same, but plenty of the locations have changed significantly, which provided a distinct feeling of time passing between the games as well as offering new puzzles and challenges. The frequent dips into the sky or underworld, meanwhile, provide plenty of fresh, all-new areas to explore and challenges to overcome.

All this said, I also would be remiss if I didn’t mention the difficult, sometimes unforgiving challenge this game can occasionally present. Since there’s minimal guidance as to where you can and should go, it’s easy to find yourself in enemy encounters where you’re totally overmatched. And while most of the shrines are well done, there are some that are absurdly difficult for no apparent reason.

My “favorite" so far is one where you lose all your items and armor and have to figure out how to defeat enemies with just the tools provided to you. In this case, there were about eight high-powered machines, and while there were some little war machines to create, there’s also no shield in the shrine. Even with 10 hearts, making two mistakes was enough that I would die and lose my progress. It was incredibly frustrating, and there was no reason for it to be so hard.

And the impact of Fuse and Ultrahand cannot be overstated. These new tools make experimentation a hallmark of Tears of the Kingdom in a way it hasn’t been before. Now, in addition to exploring every corner of Hyrule, you’ll also need to try lots of different combinations of tools, weapons, found objects and Zonai devices to find the solution a puzzle demands. Or you can fritter away hours making contraptions from whatever you find laying around. In a lot of ways, Breath of the Wild was already a creative sandbox that let gamers tackle the various adventures it offered in any order and any fashion they chose. In Tears of the Kingdom, that’s even more true.

If you want to spend all your time spelunking in the underworld, feel free. If you’d rather hunt down shrines at the expense of all else to maximize your stamina and hearts, that works too. If you only want to engage in building objects with Ultrahand when the game requires it, that’s fine – it makes it clear when you need to build various contraptions to advance. There’s enough guidance to set you on your path when you get started, but you can also ignore that and just roam the wilds. Do so at your own risk, though – it’s rough out there.

Tears of the Kingdom isn’t the series reinvention that we got in 2017, but that’s OK. There’s more than enough here to justify revisiting the Hyrule that we first saw with Breath of the Wild — I’ve "only" put in about 35 hours at this point, and there’s no end in sight to my journey. If you’re one of the millions who delighted in that game’s freedom, chances are you’ll love Tears of the Kingdom too.

This article originally appeared on Engadget at https://www.engadget.com/the-legend-of-zelda-tears-of-the-kingdom-review-a-familiar-but-fresh-adventure-120035307.html?src=rssEngadget

Langchain Python Tutorial: Quick and Easy Guide for Beginners

https://s.w.org/images/core/emoji/14.0.0/72×72/1f4a1.png

4/5 – (1 vote)

Are you looking to harness the power of language models for your applications? LangChain, a Python framework, offers a fantastic solution to build applications powered by large language models (LLMs). In this tutorial, we’ll guide you through the essentials of using LangChain and give you a firm foundation for developing your projects.

You’ll begin your journey by learning how to install and set up LangChain, ensuring you have the most up-to-date version. Next, we’ll dive deeper into the core concepts of creating chains, adding components, and running them. By understanding the fundamentals of sequential and custom chains, you’ll be well-equipped to tackle more advanced use cases surrounding LLMs.

By the end, you’ll have a solid understanding of LangChain and be ready to confidently implement it in your Python projects. So, let’s get started to unlock the potential of language models together!

Getting Started with Langchain

Installation

To begin your journey with Langchain, make sure you have a Python version of ≥ 3.8.1 and <4.0. To install the Langchain Python package, simply run the following command:

pip install langchain

This will install the necessary dependencies for you to experiment with large language models using the Langchain framework.

You should also set up Python’s OpenAI integration if you want to use the GPT language models: ????

???? Recommended: Python OpenAI API Cheat Sheet

Setup and Configuration

  1. API Key: Before diving into Langchain tutorials, you’ll need to secure your OpenAI API key. This key allows you to access language models like ChatGPT in various environments. Store your openai_api_key safely, as it’s essential for using tools and modules within Langchain.
  2. Imports: Import the necessary Langchain modules to start working with large language models in your Python code. Some commonly used imports include:
from langchain import ConversationChain, Tool
  1. Creating tools: Tools are functions designed to interact with LLMs (Large Language Models) and handle tasks like Google Search or Database Lookup. You can create custom tools as well:
def custom_tool(input_text: str):
  # Your code goes here
  1. Model Configuration: Specify the model name for your application, such as chatgpt, and configure settings like memory, which control the context size and model performance.
model_name = "chatgpt"
memory = 4096
  1. ConversationChain: Harrison Chase devised the ConversationChain module to leverage the power of LLMs within a conversation context. You can create instances of this module and use it in various applications like chatbots or generative question-answering.
chain = ConversationChain(model_name=model_name, memory=memory)

With these steps completed, you’re now equipped to explore the world of Langchain and build applications powered by large language models.

Working with LangChain Components

In this section, we will explore various components of LangChain to help you better understand how to effectively use them while working with Large Language Models (LLMs).

Prompt Templates

When working with LangChain, prompt engineering is an essential aspect to get the desired outputs from your LLMs. One important method is to use Prompt Templates. A Prompt Template is a skeleton that structures your input for the language model, making it easier to produce the desired output.

You can define prompt templates by creating a PromptTemplate object and specifying its input_variables. Here’s a simple example:

from langchain import PromptTemplate, utils

template = PromptTemplate("Translate the following text from English to French: ",
                          input_variables=['text'])
translated_text = template.fill({"text": "Hello, how are you?"})

This will generate a translation prompt for the English text input.

Conversation Chains

LangChain also simplifies the creation and management of conversation chains with LLMs. Conversation Chains are designed to make interactions with your LLM more coherent and engaging. You can create a conversation chain using the LLMChain class:

from langchain import LLMChain, ConversationInput

chain = LLMChain(prior_messages=[])
chain.add(ConversationInput(role="user", content="What is the meaning of life?"))

Adding a new input to the chain is as simple as using the add method, and you can provide either user input or system responses to build an interactive conversation experience.

Language Model Session

While working with LangChain, you’ll often need to manage interactions with the LLM. LangChain makes it easy to maintain a consistent context throughout the session. You can create a new session using the LLMSession class:

from langchain import LLMSession, utils

llm_session = LLMSession(tokenizer=utils.get_language_tokenizer("en"))

When using a session, remember to update the context object with the chosen LLM responses. You can extract tokens, texts, or semantic completions depending on your application needs.

Building Functional Chatbots

Building chatbots with LangChain is a great way to leverage powerful tools like OpenAI’s large language models (LLMs) in your Python applications. In this section, you’ll learn about customizing chat models and improving chatbot responsiveness.

Chat Model Customization

To stand out, your chatbot needs its unique touch. You can customize chat models by importing the langchain package and configuring the ConversationChain module, which provides a convenient interface to manage conversational flow.

Here are some customization options:

  • Adjust temperature: By tweaking the model’s temperature value, you can control the randomness of your chatbot’s responses. A lower value makes your chatbot more focused and deterministic, while a higher value increases creativity.
  • Limit response length: Manage the length of replies by setting a max_tokens limit. This ensures the chatbot provides concise responses, but be cautious not to set it too low, or the output may be cut off and appear nonsensical.

For example, here’s a Python snippet for customizing your chatbot:

import langchain

conv_chain = langchain.ConversationChain(
    temperature=0.7,
    max_tokens=100
)
# ... continue with chatbot implementation

Improving Chatbot Responsiveness

LLMs can sometimes be verbose or slow, so some techniques can improve your chatbot’s responsiveness:

  1. Use context: Keep track of previous turns and adjust the context for better responses. This can be achieved using the ConversationChain module, which maintains a history of interactions and feeds them to the model as needed.
  2. Optimize prompts: Craft more specific prompts for better guidance, focusing the model to generate appropriate replies.
  3. Cache results: To speed up interactions, consider caching previous query results, which saves time by avoiding repetitive calculations.

In short, integrating LangChain’s ConversationChain module into your Python projects helps you to build powerful and customizable chatbots while utilizing OpenAI’s agents and large language models. With a little customization, your chatbot can provide unique and engaging conversations for users.

Enhancing LLM Capabilities

In this section, we will explore how to enhance the capabilities of Language Learning Models (LLMs) using LangChain. We will discuss memory management and expanding language models.

Memory Management

One of the essential aspects of working with LLMs is managing their memory usage. As you work with large models, such as those from Hugging Face or the OpenAI SDK, you might encounter memory limitations. To help with this, LangChain provides several tools.

First, consider using smaller language models when possible. For example, instead of using OpenAI’s text-davinci-003 model, choose a more compact version that still provides good performance.

If memory constraints persist, look into leveraging FAISS (Facebook AI Similarity Search) to perform indexing and search on large text datasets. This allows you to retrieve relevant information from the dataset without loading the entire model.

Expanding Language Models

As you develop your LLM-powered applications, you might want to expand their capabilities by incorporating additional language models. LangChain allows you to easily do this by integrating with platforms like HuggingFace Hub and the OpenAI SDK.

To add a new language model, follow these steps:

  • Choose a suitable model from the HuggingFace Hub or the OpenAI SDK based on your application requirements.
  • Import the chosen model into your LangChain project.
  • Adjust your prompt function to work with the new model.

By exploring different LLMs, you can enhance the capabilities of your application while keeping memory usage under control.

Remember, it’s essential to stay up-to-date with the latest developments in the world of LLMs, so keep learning and experimenting with new models and techniques. And as always, stay curious and have fun exploring the vast possibilities of LLMs with LangChain!

Real-World NLP Use Cases

Question Answering Applications

You can leverage large language models (LLMs) and LangChain, a python library, to build question-answering applications for various domains such as finance, healthcare, or education. These applications can process natural language queries and generate responses by analyzing unstructured text data from multiple sources like Google Search or document loaders.

Structuring input and output data into embeddings helps improve the application’s performance. Use the LangChain library to seamlessly integrate Python REPL and other programming language modules with your custom-built application.

Summarization and Content Generation

Another exciting use case for LLMs and LangChain in real-world NLP is content generation and summarization. Whether it’s creating personalized news feeds or automatically generating high-quality articles, you can achieve this by utilizing LangChain’s capabilities.

To make your application generate comprehensive yet concise summaries, consider using reinforcement learning techniques, data sources, and pre-built text splitters. Your application can even produce real-time content tailored to user preferences, making it a game-changer in the content creation industry.

Natural Language Understanding

Building a deeper understanding of natural language in your application is crucial for numerous NLP tasks. With the help of LLMs and LangChain, you can enhance natural language understanding (NLU) to improve sentiment analysis, customer support automation, or even personal assistant applications.

Efficiently combine information from unstructured text sources to identify patterns and provide better solutions in a user-friendly environment. By incorporating the capabilities of LangChain’s python library, you can significantly enhance your application’s performance in various natural language processing tasks.

Advanced Techniques and Applications

In this section, we will explore advanced techniques and applications of LangChain that will help you harness the full power of language models for your projects. We will discuss Environmental Context Injection and Math and Reasoning Puzzles in more detail.

Environmental Context Injection

With Environmental Context Injection, you can provide context to your language models, such as with bloom or llama, to improve their understanding and responses. To leverage this feature, use LangChain’s prompt management and prompt templates for easier and more efficient context management.

For example, if you want to look up information from a database, you can use a combination of database lookup and prompt templates to automatically generate the correct prompt for your language model. This can be done with a zero-shot-react-description or by using a vector store such as vectorstore.

Math and Reasoning Puzzles

LangChain can also help you create and solve math and reasoning puzzles using built-in memory capabilities. To create a math puzzle, follow these steps:

  • Design a prompt template to describe the puzzle that your language model should solve.
  • Use the prompt management system to add any necessary context or information needed to solve the puzzle.
  • Leverage the powerful memory capabilities of your language model to come up with a solution.

Here’s an example of a simple math prompt template:

Solve the following mathematical problem:

1. Problem: 2 x (3 + 4)
2. Target Answer: 14

Can you show the step-by-step solution to this problem?

In this example, the language model will provide you with the step-by-step solution to the problem. By utilizing LangChain for math and reasoning puzzles, you can create engaging applications that harness the cognitive abilities of advanced language models.

With these advanced techniques and the right prompt management approach, you can unlock a wide range of possibilities for integrating LangChain into your projects, from answering questions based on database lookups to devising creative problem-solving scenarios. Enjoy exploring these powerful features and enhancing your language-based applications.

Resources and References

Langchain Documentation

For a comprehensive guide on LangChain, you can refer to its official documentation, which provides valuable information on installing, setting up your environment, and working with this useful Python framework. The documentation covers various components, like different supported models for machine learning, memory management, and more.

APIs and Third-Party Integration

LangChain allows you to integrate with various APIs, such as OpenAI’s GPT-3 and other LLM providers.

???? Recommended: 11 Best ChatGPT Alternatives

For instance, you can connect it with Flan-T5 for tasks like summarization. To interact with GPT-3 and GPT-4, you can connect it to the ChatOpenAI API. This integration helps you to build powerful language processing applications.

Additionally, LangChain works with external data sources like SerpApi for retrieving search engine result pages, and supports data management with various databases. Persistent state storage is possible through the ConversationBufferMemory component.

Indexes and Vector Databases

LangChain can also integrate with vector databases, like Pinecone’s vector database, to provide efficient and scalable storage for high-dimensional vectors. This is useful when working with LLMs as it enables advanced use cases such as similarity search or clustering.

Setting up your environment to work with LangChain, including the required environment variables, is crucial for smooth operation. Make sure to follow the Langchain installation guide to set up the required environment variables and input parameters.

Feel free to also check out our cheat sheets by subscribing to our email newsletter (100% free):

OpenAI Glossary Cheat Sheet (100% Free PDF Download) ????

Finally, check out our free cheat sheet on OpenAI terminology, many Finxters have told me they love it! ♥

???? Recommended: OpenAI Terminology Cheat Sheet (Free Download PDF)

Be on the Right Side of Change

How Apple Recycles iPhones

https://theawesomer.com/photos/2023/05/apple_recycling_iphones_robot_t.jpg

How Apple Recycles iPhones

Link

Given the environmental impact of making electronics, Apple wants to make more of its tech using recycled and recyclable components. Fully Charged Show host Robert Llewellyn toured an Apple facility to see its Daisy recycling robot. It can identify 23 different iPhone models and tear them apart to extract their materials.

The Awesomer

The Founders Knew About and Had No Problem with ‘Stabilizing Braces’

https://www.ammoland.com/wp-content/uploads/2023/05/borschardt-500×459.jpg

A 19th Century pistol with an attachable stock inspired an inquiry into what was available to citizens in the Founding Era a century earlier. It turns out quite a bit. (Photo: Maureen Codrea)

U.S.A. —  “Borchardt Lowe. #1062, cased w/ accessories,” the placard for the historical arm on display at April’s NRA Annual Meeting in Indianapolis read. “Borchardts were customarily sold as a cased ensemble that included a shoulder stock with attached holster, a cheekpiece, four matching magazines…”

“Designed by Hugo Borchardt and manufactured by Ludwig Lowe of Berlin between 1893 and 1899, the Borchardt was the first successful automatic pistol design,” a description from Rock Island Auction Company explains. “The distinctive Borchardt design features a toggle action, centrally located trigger, grip and eight-round magazine and detachable wooden stock that attaches to a lug on the rear of the pistol receiver.”

Not being a collector of older firearms, curios, or relics, or even passingly informed on them, this was new to me. And for those who might balk at the word “automatic,” friend and firearms designer Len Savage of Historic Arms, LLC helped clear that up in a report on AR-15 sales actually predating the M16 being issued to military units.

“In 1968 firearms industry terminology ‘automatic rifle’ means the same as ‘auto-loading rifle,’ i.e., a rifle that loads itself for the next shot,” Savage recalled. “Even in 1979-1980 when I took my hunters’ safety course the State of Michigan used the two terms interchangeably throughout the course.”

Back to the Borchardt, seeing a semiauto and a pistol with an attachable stock from the Nineteenth Century being accepted at the time without hysteria makes it fair to wonder what all the outrage is about today, and the answer, of course, is that it’s all being drummed up for effect. Still, I wondered, with the current ridiculous overreach by ATF to issue a rule banning stabilizing braces because they can act like an extension that when shouldered somehow magically transitions a handgun into a short-barrel rifle, what could we learn from history that might be useful in fighting back such unconstitutional power grabs?

In light of the Bruen decision, where “text, history, and tradition” of the Second Amendment at the time it was written is what informs us as to what the Founders understood the right to protect, I couldn’t turn to the Borchardt – that would play right into the hands of the gun prohibitionists, who, unable to identify Founding-Era infringements have tried turning to later laws, including post-Civil War edicts intended to keep freed blacks disarmed.

The question to be answered: Was there a counterpart at the time the Bill of Rights was ratified?

The first person I thought to ask was Jeff John of Art in Arms Press, my editor for years beginning at Guns and Ammo in 1999, then on to Handguns and, until a few years back, Guns. A researcher, writer, and photographer, Jeff does know historical firearms, and I’ve let AmmoLand readers know about his authoritative books in articles including “Book Explores How War for Independence Revolutionized Firearms Technology,” “‘Weapon of War’ a Subject of Historic Interest and Contemporary Relevance,” and “‘FG42’ Profiles Revolutionary, Near-Forgotten Classic in Words and Pictures.”

“On the European front, I found this,” John replied, linking to a Bonhams international auction house entry featuring:

“An Unusual Pair Of Liège Flintlock Blunderbuss-Pistols With Spring Bayonets And Detachable Shoulder-Stocks Signed Gosuin, Liège, Late 18th Century.”

Bingo. And there was more.

“On the British front, this one has a stock looking just like today’s brace,” he remarked, referencing another Bonhams offering:

“A Fine And Rare Cased 28-Bore Flintlock D.B. Travelling Pistol With Attachable Shoulder-Stock.”

Armed with this knowledge, I approached Stephen Stamboulieh, the attorney representing me and other plaintiffs in several cases and Freedom of Information Act efforts involving bump stocks, Hunter Biden’s 4473, State Department Fast and Furious communications, the Sutherland Springs killer’s court-martial records, and more.

I shared what I’d found out so far and asked “Do you know any attorneys arguing pistol braces based on the Bruen standard who are submitting information like this?”

“I’ll have to send you our brace complaint. We have tons of stuff in there,” he replied. I should have known he’d be on top of it.

“Here ya go.  Yes, we go back to the Founding,” he followed up, attaching a complaint by parties including the State of Texas, Gun Owners of America, Gun Owners Foundation, and private citizen/FFL Brady Brown against ATF. “The pics start on page 70.”

“It is a massive case,” he advised.  “We are currently waiting for the judge to rule on whether or not to grant a preliminary injunction.”

He wasn’t kidding. The complaint, embedded below is a treasure trove of examples from even before the Second Amendment was written, presenting photographic examples including:

  • 1720 Flintlock Pistol with Stock
  • 1750 Flintlock Pistols with Stocks
  • 1760 Flintlock Grenade Launcher
  • 1780 Flintlock Pistol w Stock
  • 1760-1820 Flintlock Pistol Carbine with detachable stock
  • 1790 Flintlock Blunderbuss Pistols – w detachable stocks (and bayonets)
  • 1795 Flintlock Blunderbuss – 15” barrel

“Such weapons continued after the ratification era, through the incorporation of the Fourteenth Amendment,” the complaint continues, presenting further examples from 1820 through to the 1940s, with the notation:

“Such firearms were never restricted with respect to who could possess them and were never required to be registered until passage of the NFA. See Bruen at 2137 (“[P]ostratification adoption or acceptance of laws that are inconsistent with the original meaning of the constitutional text obviously cannot overcome or alter that text.”).”

The Founders knew about pistol braces and had no problem with them. And not to put too fine a point on things, but short barrels weren’t an issue with them either. Banning them today imposes infringements the government is expressly forbidden to make.

That’s not just unconstitutional. It’s deliberately in-your-face tyrannical.


About David Codrea:David Codrea
David Codrea is the winner of multiple journalist awards for investigating/defending the RKBA and a long-time gun owner rights advocate who defiantly challenges the folly of citizen disarmament. He blogs at “The War on Guns: Notes from the Resistance,” is a regularly featured contributor to Firearms News, and posts on Twitter: @dcodrea and Facebook.

AmmoLand Shooting Sports News

Ballistic Nylon – What It Is, Its History, and Why I Need It

https://www.alloutdoor.com/wp-content/uploads/2023/05/flak-jacket-first-ballistic-nylon-issued-gear.jpg

Nearly every range bag, tactical backpack, plate carrier, and soft gun case worth buying is typically advertised as being fabricated from a rugged, do-it-all material called ballistic nylon. Sometimes it’s called “Cordura” or “ripstop”. But what are these materials? Having a deeper understanding of the gear you trust is what separates a professional shooter from the amateurs, so today, we’re taking an in-depth look at tactical gear’s favorite fabric: Ballistic nylon. What is it? How’s it rated? Why is it so good? Let’s find out.

Ballistic Nylon: A Quick History

Ballistic Nylon

This image, that of a typical G.I. deployed in Vietnam, illustrates one of the first modern uses of ballistic nylon. Ballistic protection was nothing new the mid-20th century. Examples of hard armor made to deflect projectiles can be found in history as early as the 16th century. But it wasn’t until the 19th century that Japanese manufacturers made the first “soft armor” using woven silk. While silk armor could manage well enough against the ball rounds and black powder of the time, it would quickly be made obsolete, thanks to the invention of gunpowder and modern bullets.

Enter Synthetic Threads

After President McKinley was assassinated in 1901, the U.S. Military began exploring this new method of bulletproofing one’s self with soft material. But expensive silk wouldn’t cut it against the new, high-velocity rounds employed by most armies of the time. Development of a soft body armor required using a then-new and cutting-edge material: Nylon. Developed by American chemist Wallace Carothers in 1935, this synthetic weave was already being used to create more reliable parachutes for paratroopers. DuPont refined the production, creating a new type of fabric that had been engineered to provide incredible resistance to abrasion. It could also withstand cutting and tearing forces from high-velocity impacts.

This new, ballistic material was employed to protect aircraft personnel bombing German forces from the deadly flak and airborne fragmentation they would suffer over enemy territory. This protective flak jacket marks the first official deployment of ballistic nylon. By the Vietnam war, the U.S. military had fully embraced the stuff: All issued gear was made from it, including rucksacks, helmet covers, bags, belts, weaved kit, and the first plate carriers.

What Makes Nylon “Ballistic?”

Fast-forward today, and you see nylon and its counterpart, Cordura, being used in a plethora of civilian and law enforcement tactical gear, range bags, and gun cases. While regular nylon is a popular material for other, less “militaristic” products, including typical clothing, ballistic nylon meets certain specifications and it must be fabricated and woven in a certain way to provide the necessary level of performance you’re looking for in tactical kit.

Denier Ratings Explained

Shop for any range bag or other tactical gear made of ballistic nylon, and you’ll often find a number (“600D”, for example) listed. Denier is the unit of measure which describes the thickness of a fabric’s individual strands. Thickness doesn’t directly translate into strength; the weave pattern is just as important when considering overall ruggedness, but we’ll touch on that next. Take a close look at the image below, and you’ll see the difference in material thickness.

The ballistic nylon weaves shown above are noticeably thicker within each overlapping strand. This makes the fabric less flexible (which may be beneficial for tactical gear like a gun case), but it greatly enhances its ability to withstand cuts, tearing, and abrasion. Softer, standard nylon canvas (shown right) is more flexible and less robust, making it better suited for light-duty gear or as a general-purpose fabric.

Denier ratings are universal. That means a cotton fabric with a 600D rating will have the same thickness as nylon. For reference, most standard fabrics used in clothing and bedding are 40D to 80D. Heavy duck canvas — often found on older military gear and tents — can range between 100D and 600D. Most range gear and bags made of ballistic nylon sport a denier rating of 400D or higher.

Ballistic Nylon: Official Military Specifications

Ballistic Nylon

The original military specification for ballistic nylon requires that it measure 1,050D in thickness, with a 2×2 basket weave structure (explained below). MIL-C-12369F also lists the endless military requirements for this fabric, not discussed here. Today, however, advances in nylon production have shown that ballistic fabric measuring 400D to 600D still provides excellent performance while also remaining water-resistant.

Ballistic vs. Standard Weave Structure

Denier ratings and thickness are just half the equation when it comes to figuring out why ballistic nylon is so tough. The construction and layering of the individual strands is just as important.

The overlapping weave is what truly provides ballistic nylon with its strength. By doubling up the perpendicular strands, this weave offers excellent resistance to wear in all directions. The basket weave is nicknamed the “ballistic weave” for this reason — it’s also used to fabricate body armor made from Kevlar and Aramid, two other synthetic fibers.

IMPORTANT NOTE: Not all range gear will be constructed with a ballistic weave, and this does not mean the gear in question is of low quality. Range backpacks, for example, may use a high-denier fiber (1,000D to 1,200D) with a standard 1×1 weave. This is meant to provide a lower cost. The standard weave may also provide better flexibility and comfort where it’s needed most.

Cordura vs. Ballistic Nylon

Ballistic Nylon

These two fabrics are often used interchangeably when tactical gear and range bags are created. But it’s important to know that while both Cordura (almost always 1,000D or 1,050D) and ballistic nylon look and feel the same and provide similar performance and strength, they are different. Cordura is made of texturized woven nylon, while ballistic nylon uses filament strands. Filament fabrics comprise numerous individual, smaller strands tightly bound to form one, larger strand. Ballistic nylon thus produces a smoother, slicker material. Cordura has a more rough or “fuzzy” appearance with greater surface area.

  • Cordura has a higher abrasion resistance. 
  • Ballistic nylon has a greater tear resistance. 

This doesn’t matter much, though — both materials have such high denier and overall strength ratings that either will typically outperform whatever you put your gear through. Cordura boasts one minor advantage: Its texture makes it much easier to dye or stain. This means that, typically, range gear with some color in the fabric (OD Green, Desert Tan, or Coyote Brown, for example) will be made of Cordura. Ballistic nylon is typically black for the opposite reason (it’s more difficult to dye).

Ripstop Nylon: Overview & Use

Ballistic Nylon

Ripstop fabric tends to have a slight “sheen” to them. It’s often lighter and thinner then Cordura or ballistic nylon, and it has a unique square-stitched pattern of another overlapping fabric. Ripstop nylon provides some unique benefits: As the name implies, the extra stitched squares greatly improve the material’s tearing and abrasion resistance without the need for a high denier rating.

Ripstop fabric is most often found in long-range shooting bags and backpacks, as hunters and sportsmen need to count every ounce they’re carrying on those long-mile treks. Bags and packs made of ripstop fabric will typically sport a Denier rating of 400D to 600D, while affording strength and performance which approaches that of a 1,000D-nylon bag constructed with a traditional weave pattern. Because ripstop uses thinner, “slicker” fibers, it’s much less prone to catching sharp objects and fraying or tearing. This is a perfect material for the interior lining of many soft range bags and backpacks where equipment, muzzles, iron sights, ammo, and other pointy bits may take their toll on the fabric.

Fun fact: Ripstop was employed before any other type of ballistic nylon in WWII. Paratroopers’ chutes utilized ripstop fabrics and patterns to make the chutes more flexible and lighter. The reinforced pattern also prevented the chutes from tearing under the extreme stress of opening in mid-air at high velocity during jumps.

The post Ballistic Nylon – What It Is, Its History, and Why I Need It appeared first on AllOutdoor.com.

AllOutdoor.com

New video destroys media narrative about Jordan Neely’s death: other passengers PRAISED the Marine?

https://www.louderwithcrowder.com/media-library/image.png?id=33620195&width=980

I don’t know how to tell you this, but there is a new video that provides CONTEXT to the Jordan Neely’s subway death. I know, right? Democrats and the media (but I repeat myself) tend to wait for facts to come in before trying to start a race war. They NEVER take an already volatile situation and douse it with gasoline. But this ONE time, they did.

The story we were given, based on one video, is that a white Marine murdered a black unhoused Michael Jackson impersonator and was released after being questioned by the police. Details like his 40+ priors or him telling subway passengers he was ready to die? Didn’t matter. The narrative was cast.

And now it’s been busted.

We see that after subduing Neely, the Marine put him in what’s called the "recovery position." It’s done to open the airways and help the person regain consciousness. You can also see Neely still moving after being put in the recovery position. Now, if those two things don’t lead you to believe that this wasn’t a cold-blooded racist murder, maybe this third point will.

THE OTHER PASSENGERS THANKED THE MARINE FOR SUBDUING NEELY.

That would lead a rational person to believe Neely wasn’t performing "Billie Jean" as much as he was making the subway car feel unsafe. You know, what with the way he was screaming "I’m not afraid to die" and New York City being New York City.

What happened BEFORE Neely was put in the chokehold, as of now, is unclear. That would provide additional context. Though not do anything to convince protestors who have already been given their marching orders. Maybe social media influencers like Rep. AOC will tweet they were wrong and apologize.

><><><><><><

Brodigan is Grand Poobah of this here website and when he isn’t writing words about things enjoys day drinking, pro-wrestling, and country music. You can find him on the Twitter too.

Facebook doesn’t want you reading this post or any others lately. Their algorithm hides our stories and shenanigans as best it can. The best way to stick it to Zuckerface? Bookmark LouderWithCrowder.com and check us out throughout the day! Also, follow us on Instagram and Twitter.

Louder With Crowder

Python for Beginners: If vs Elif vs Else If in Python

We use conditional statements in Python to control the execution flow of a program. In this article, we will discuss if vs elif vs else if in Python to get an understanding of how these conditional statements work.

If Statements in Python

If statements are used to execute certain Python statements when a particular condition is True. The syntax for if statements in Python is as follows.

#statements outside if block before the if statement 
if condition: 
    #statements in if block 
#statements outside if block after the if statement

Here, the condition evaluates to a boolean value i.e. True or False. If the condition is True, the statements in the if block are executed. Otherwise, the statements outside the if block are executed. You can observe this in the following code.

marks=50
if marks>40:
    print("Pass")

Output:

Pass

Else Statement in Python

We use the else statement along with the if statement when we have to execute a task whenever the condition inside the if statement is False. It has the following syntax.

#statements outside if block before the if statement 
if condition:
    #statements in if block 
else: 
    #statements inside the else block 
#statements outside the if block after the if statement

Here, when the condition in the if block is False, the statements in the else block are executed. You can observe this in the following example.

marks=34
if marks>40:
    print("Pass")
else:
    print("Fail")

Output:

Fail

Elif Statement in Python

We use elif statements in Python if we have to execute code based on multiple conditions. It has the following syntax.

if condition:
    #statements in if block
elif condition1:
    #statements in elif block 1
elif condition2:
    #statements in elif block 2 
.
.
.
elif condition N:
    #statements in elif block N
#statements outside the if block after the if and elif statement

Here,

  • If the condition inside the if block is True, the code in the if block is executed and the rest of the code in the elif blocks is skipped.
  • When the condition inside the if block is False, the first elif block is executed. If condition1 inside elif block 1 is True, the statements inside elif block 1 are executed and the rest of the code is skipped. 
  • When the conditions inside if block and elif block 1 are False, the second elif block is executed. If the condition2 inside the elif block 2 is True, the statements inside elif block 2 are executed and the rest of the code is skipped. 
  • This process continues until one of the conditions in the if-elif blocks are true or all the conditions are false.

You can observe this in the following example.

marks=65
if marks>90:
    print("A+")
elif marks >80:
    print("A")
elif marks>70:
    print("B+")
elif marks>60:
    print("B")
elif marks>40:
    print("Pass")
else:
    print("Fail")

Output:

B

If all the conditions in the if and elif blocks are false, the codes written inside these blocks are not executed. You can observe this in the following code.

marks=23
if marks>90:
    print("A+")
elif marks >80:
    print("A")
elif marks>70:
    print("B+")
elif marks>60:
    print("B")
elif marks>40:
    print("Pass")
print("Outside if elif statements.")

Output:

Outside if elif statements.

You can also add an else block with if and elif blocks in the code. If none of the conditions in the if and elif blocks are True, the statements in the else block are executed as shown below.

marks=23
if marks>90:
    print("A+")
elif marks >80:
    print("A")
elif marks>70:
    print("B+")
elif marks>60:
    print("B")
elif marks>40:
    print("Pass")
else:
    print("Fail")
print("Outside if elif statements.")

Output:

Fail
Outside if elif statements.

If Else If Statement in Python

We cannot use the else if statement in Python in a single statement. We can only use else-if statements in Python if we have to use nested conditional statements. For this, you can use the following syntax.

If condition:
    #statements in if block
Else:
    If condition 2:
        #statements in the inner if block
    Else:
        #statememts in the inner else block

Here, if the condition in the outer if block is False, the code in the else block is executed. Again, if condition2 inside the inner if block is true, the code inside the inner if block is executed. Otherwise, the code inside the inner else block is executed. You can observe this in the following example.

marks=-34
if marks>40:
    print("Pass")
else:
    if marks>0:
        print("Fail")
    else:
        print("Negative Marks")

Output:

Negative Marks

If vs Elif vs Else If in Python

After discussions in the previous sections, we can conclude the following remarks for If vs Elif vs Else if in Python.

  1. The If statement is used to execute a single conditional statement whereas elif statements are used with the if statement to execute multiple conditional statements. 
  2. We use the if statement to execute code when a condition is True. On the other hand. We can use the else statement to execute code when the condition inside the if statement is False.
  3. We use elif statements in Python to execute multiple conditional statements whereas the else if blocks are used to execute nested conditional statements. 

Conclusion

In this article, we discussed how to execute If vs Elif vs Else if statements in Python. To read more about Python programming, you can read this article on working with toml files in Python. You might also like this article on Python finally keyword.

I hope you enjoyed reading this article. Stay tuned for more informative articles.

Happy Learning!

The post If vs Elif vs Else If in Python appeared first on PythonForBeginners.com.

Planet Python

Dad Sits Down Son To Have ‘The Talk’ About The Star Wars Sequel Trilogy

https://media.babylonbee.com/articles/645405e15c3f6645405e15c3f7.jpg

BLUE SPRINGS, MO — A local father determined the time had come to sit his young son down and officially have “The Talk”…about the Star Wars sequel trilogy. The man reportedly knew he couldn’t avoid it any longer once the boy began to talk about how great The Last Jedi was.

“He’s at the age where he needs to know the truth,” Cody Callow said. “I mean, his name is Lucas, after all. He can’t be allowed to go on maturing without knowing how the world really works and why the sequel trilogy really isn’t very good. Letting him enter manhood under the impression The Last Jedi was an acceptable entry into Star Wars canon would be shirking my responsibility as a father.”

Cody said young Lucas Callow was coming dangerously close to feeling the sequel trilogy was the best representation of the Star Wars franchise, a philosophy that could lead him down a dark path in life. “Sure today he ‘harmlessly’ enjoys Riann Johnson’s destruction of Luke Skywalker’s character,” Cody said, “but the next thing you know, he’ll be claiming Rey was actually ‘The Chosen One’ who brought balance to the Force. I can’t, in good conscience, let that happen. He’s my son!”

Later, Lucas was playing with his Rose Tico action figure when his father entered the room to start the difficult but important conversation by saying “Lucas, I am your father…”

At publishing time, the conversation was reported to have gone well, with the young man now fully understanding that the real Star Wars trilogy has been over since 1983.


Use these foolproof ways to defend yourself even when you don’t have a gun.

Subscribe to our YouTube channel for more tactical instruction

Babylon Bee