Click-worthy styles in a single class Buttons are made easy with Bootstrap. The team at Bootstrap has taken the guesswork out of button design and has created a set of styles that look modern. Only rarely do I sway away from the default bootstrap design. Buttons were briefly looked at in our previous article. We’ll go into further detail in this section. https://www.dinocajic.com/bootstrap-p3-margin-and-padding/ The btn class must be applied to each button in order to start using bootstrap’s button styles. Let’s see the changes between the default button style and bootstrap’s version. <button>Unstyled</button> <button class=”btn”>Styled with Bootstrap</button> When the btn class is applied to
Tag: Laravel
Stop script injections cold Cross Site Scripting is a common vulnerability in web applications. It’s estimated that 60% of all websites are susceptible to this attack. What is cross site scripting (XSS)? Cross Site Scripting, or XSS, is a technique for injecting malicious code into another website. Persistent Cross Site Scripting Let’s say that an attacker is able to send a piece of JavaScript code through a form on a legitimate website that stores the malicious code within the database of the website. That JavaScript code can then wreak havoc on other users since that JavaScript code is then returned to the
Don’t take the bait—spot phishing fast If you use email, you most likely heard about Phishing attacks. Although it sounds just like Fishing, it’s not as relaxing. If you’ve been phished, you’re going to have a bad day. If you caught a fish, you’re going to be smiling. Why call it phishing? The idea is that the hacker sends a baited email to the target user and hopes that the target takes the bait. Just like the bait in fishing is supposed to resemble something that the fish wants, the bait in phishing is masked as something that the user
When traffic turns into a weapon A Denial of Service (DoS) attack is when an attacker attempts to make a site unavailable to users by sending so much traffic to it that the site cannot respond. The idea is to disrupt the normal operations of a server or network with a cyber attack on that server or network. This cyber attack is coming from one source, such as the attackers computer. There are different types of DoS attacks, including a Distributed Denial of Service (DDoS) attack, which uses multiple sources to attack a network or server. Recently, nearly all DoS
Write, run, repeat Now, I know that we’ve already covered a Python script in the previous article, but that was used simply for testing in order to set our environment up. We’re here to learn Python, so lets take a step back and do this the right way. I like themes with my series, and here are a few that I was thinking about following: Cars (always my favorite) Doom and destruction (seems appropriate with all the AI warning signs going off) Just pure fun (sometimes I go overboard) I think we’ll stick to cars. My hope is to not
Debug inside the container—directly from PyCharm In the previous article, we looked at setting up Python with Docker. We skipped all of the environment headaches. If you’re using PyCharm, you might have noticed that everything is underlined red, like your code is broken. Let’s fix that with Docker again. https://www.dinocajic.com/python-p1-getting-started-with-python-and-docker-compose/ Open up PyCharm and go to your interpreter. It should be at the bottom right of your screen. Select Add New Interpreter and then Docker. We already have a Dockerfile inside of our project so we can simply leave the settings as is. If you don’t see Docker on
Containerize your first Python project in minutes Docker is one of those environments that I can’t live without anymore. It’s interesting that there aren’t many resources that discuss getting a basic Python script going with Docker and docker-compose. Let’s see how simple this is to do with Python. Create a new directory for your project and navigate into it: mkdir python_test cd python_test Create a new file called Dockerfile with the following content: FROM python:3.11-slim-buster WORKDIR /app COPY requirements.txt ./ RUN pip install –no-cache-dir -r requirements.txt COPY . . CMD [ “python”, “app.py” ] This Dockerfile sets up a Python 3.11 environment,
The language that does it all I jumped into this Python tutorial series without explaining why one might want to learn Python in the first place. Python is a high-level, interpreted programming language that was first released in 1991 by Guido van Rossum. It is named after Monty Python, the British comedy group, which explains why many of its tutorials and examples use humorous references. https://www.dinocajic.com/python-p1-getting-started-with-python-and-docker-compose/ Python is designed to be easy to learn and read, with a syntax that emphasizes readability and reduces the cost of program maintenance. Its simple and elegant syntax has made it popular among beginners,
Compose complex layouts with multiple slots In the previous article, we looked at the $slot variable and how to inject content into our components. But what if our component was composed of multiple slots? Make different components you say? We could, but sometimes that’s just not practical. There can be over-segmentation. https://www.dinocajic.com/laravel-p69-blade-slots-intro/ To illustrate this concept, I’ll create a resources/views/components/details.blade.php file. The component will contain the details tag that’s standard with HTML. It just allows for the text to be clicked on and expanded. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details The structure of the details tag is as follows: <details> <summary>Details</summary> Something small enough to escape casual notice. </details> We would like to
Plug content into components with ease Aside from passing attribute data to blade components, sometimes you need to pass a large chunk of data. That data can be displayed through slots. Laravel renders the data by echoing out the $slot variable. https://www.dinocajic.com/laravel-p68-defining-custom-directives-in-blade/ We’ll start by creating a button component. All we want to be able to do with our button component is change the inner-text. It’ll be located in resources/views/components/button.blade.php. <button class=”btn”> {{ $slot }} </button> To use it, we’ll create a new Blade file: resources/views/blade-test/index.blade.php. <x-button> Test </x-button> We just need a route to display it. Route::get(‘/blade-slots’, function () { return view(‘blade-slots.index’); });
