teleren/devto huggingface dataset:
WordPress 6.5 Beta 1 is ready for download and testing!
Tags: webdev, beginners, wordpress
Published: 2024-02-14 00:05:58


WordPress 6.5 Beta 1 is ready for download and testing!

This beta version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites.
 Instead, you should evaluate Beta 1 on a test server or site.

Test WordPress 6.5 Beta 1 in four ways:
The current target date for the final release of WordPress 6.5 is March 26, 2024. Your help testing this version is key to ensuring everything in the release is stable.
Get an overview of the 6.5 release cycle, and check the Make WordPress Core blog for 6.5-related posts in the coming weeks for further details.



Roadmap to 6.5:
https://make.wordpress.org/core/2023/12/07/roadmap-to-6-5/
WordPress 6.5 is set to be released on March 26th, 2024. This release brings greater design control and optionality, more robust block capabilities with new APIs, access to current block theme functionality for classic themes, and the start of the new admin redesign. More specifically, these significant features include the Font Library for easy global font management, support for Appearance Tools in Classic Themes for more expansive design options, and more robust revisions across the editing experience (including revisions for template parts and templates). New APIs like Interactivity, Custom Fields, and Block Binding expand block capabilities and underpin features like partial sync patterns, and PHP compatibility work ensures alignment with PHP versions. Rollback for plugin and theme updates enhances safety, and bug fixes address various components for an improved user experience. The first taste of the admin redesign as part of phase 3 efforts are planned for this release in an iterative and contained way by bringing a new experience to the template, template part, and pattern lists within the Site Editor.


Adam:  New Game Changing Feature Coming To WordPress - Your Page Builder Can't Do This!
https://www.youtube.com/watch?v=wTNfnf5mq4o
This is going to be the most game changing feature to be added to WordPress in a very long time!. It is going to make websites faster and easier to build, manage, and maintain.
Most likely the page builder you are using to build websites does not offer this. Its insane that all WordPress users will get this feature as just part of WordPress in 2 short months.
Now the feature is easy to understand if you have built a website, but it’s hard to explain. 


Anne McCarthy: Explore a game changing feature for synced patterns in WordPress 6.5
https://www.youtube.com/watch?v=q53XXJdZXtY&t=13s


Anne McCarthys Channel
https://www.youtube.com/@AnneMcCarthy
Free Tools for Aspiring Developers: Unpacking GitHub's Student Pack
Tags: discuss
Published: 2024-02-14 00:00:00

---
published_at : 2024-02-14 00:00 +0000
---
Has anyone explored GitHub's free student dev pack? How has it benefited your development journey? Share your thoughts on this and other free tools for aspiring developers.
<br>
Follow the DEVteam for more discussions and online camaraderie!
{% embed [https://dev.to/devteam](https://dev.to/devteam) %}
Major version updates are just removing deprecated code
Published: 2024-02-16 20:37:28

---
title: Major version updates are just removing deprecated code
published: true
date: 2024-02-14 00:00:00 UTC
tags: 
canonical_url: https://www.oliverdavies.uk/archive/2024/02/14/major-version-updates-are-just-removing-deprecated-code
---

Today, I've been watching the new [Upgrading & What's in Symfony 7](https://symfonycasts.com/screencast/symfony7-upgrade) video course on SymfonyCasts.

The first video - [recent podcast guest Ryan Weaver](https://www.oliverdavies.uk/podcast/10-ryan-weaver-symfonycasts) - explains how Symfony's release cycle works.

New feature releases that contain new features are every six months.

Along with the x.4 release - such as Symfony 6,4 - there is also a new major release - in this case, Symfony 7.

They are essentially identical, except for code that was deprecated in Symfony 6, which has been removed.

So, updating from Symfony 6.4 to 7 means you just need to remove any deprecated code from your application and make it work in the Symfony 7 way.

This is also how Drupal releases new versions, too.

New releases, like Layout Builder, are added in minor versions like 8.1, and Drupal 9 is Drupal 8 without its deprecated code.

Because the code in major versions is so similar, **contributed modules and themes can support multiple major versions at the same time**.

## Here's the thing

When upgrading projects from Drupal 8 to 9 and 9 to 10, the majority of the work can be done beforehand by keeping up to date with module releases and updating custom code to remove any deprecations.

This means the upgrade can be split over several weeks or months to reduce the risk.

Then, finally, you _just_ update to the next major version.

All the hard work has already been done.

 P.S. If you're creating a new Drupal module, try my [free Drupal module template](https://github.com/opdavies/drupal-module-template).
Welcome Thread - v263
Tags: welcome
Published: 2024-02-14 00:00:00

---
published_at : 2024-02-14 00:00 +0000
---
![Stitch from Lilo and Stitch saying hi](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2igwiwrkklyyw9j8bc1j.gif)

---

1. Leave a comment below to introduce yourself! You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment, either with a question or just a hello. 👋 

3. Elevate your writing skills on DEV using our [Best Practices](https://dev.to/devteam/best-practices-for-writing-on-dev-creating-a-series-2bgj) series!
The Skunk Works Rules
Tags: engineering, work
Published: 2024-02-13 23:29:14

---
title: The Skunk Works Rules
published: true
description: Short article about my favorite rules of The Skunk Works and Johnson Kelly
tags: engineering,work
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2024-02-13 23:26 +0000
---

Most likely you have heard about Lockheed or, later on, Lockheed Martin and everything they have created and built. Shortly speaking, you can see them as a prototype for "Stark Industries" from the "Iron Man" 🙂 

And if you are into the history of the Cold War or the Silicon Valley history (which in many ways are the same stories especially early days) there is also a probability that you know a department called "Skunk Works". It is a team of engineers inside of Lockheed Martin who designed, built and tested most of those amazing fighter and reconnaissance airplanes they are known for. 

The "Skunk Works" was founded by the guy known as Clarence Leonard "Kelly" Johnson. Absolutely legendary man. And he had rules which they applied to organize and operate the "Skunk Works" from Day 1. 

Here are a few of them I like the most:

- Rule №1: The "Skunk Works" manager must be delegated practically complete control of his program in all aspects. He should report to a division president or higher.

- Rule №3: The number of people having any connection with the project must be restricted in an almost vicious manner. Use a small number of good people (10% to 25% compared to the so-called normal systems).

- Rule №5: There must be a minimum number of reports required, but important work must be recorded thoroughly.

When I found and read those rules for the first time it was just so exciting thing to see! And since than every time I see this sarcastic "so-called normal systems" line it makes me smile. Yup, I agree, old man, and I know what are you talking about 🙂 Amazing, isn't it?

Here you can find all of the rules still published on Lockheed Martin web site: https://www.lockheedmartin.com/content/dam/lockheed-martin/aero/photo/skunkworks/kellys-14-rules.pdf

Here you can read more about the "Skunk Works": https://en.wikipedia.org/wiki/Skunk_Works

Here is a personal history of Kelly Johnson: https://en.wikipedia.org/wiki/Kelly_Johnson_(engineer)

There is also a book on the topic: https://www.amazon.com/Skunk-Works-Personal-Memoir-Lockheed/dp/0316743003
Ruby Revelations: A beginner's journey
Published: 2024-02-13 23:17:03

I've been learning Ruby fundamentals for about a week or so. While I was nervous about taking on a new programming language, I found this one to be easier and more readable than Javascript.

In other words, I'm enjoying learning this language! 

Today my learning was all about strings in Ruby, it was quite an enlightening day for several reasons. One, the methods used are similar to Javascript, so I don't feel like I'm learning something entirely new. And two, seeing the differences between the two languages.

So here's some things I learned:

1. **Strings are objects.** This means they come with a plethora of built-in methods and functionalities that can be very useful. From simple manipulations to complex transformations, Ruby offers a lot of tools to work with. 

2. **String interpolation** It's a feature that allows me to embed Ruby code within a string, making it convenient to insert variables and expressions directly into the text. This not only streamlines my code but also makes it more readable and expressive.

For example, using the '#{}' syntax seamlessly integrates variables into my strings. This adds flexibility to the code but also opens up possibilities for creating dynamic, data-driven applications.

3.**String manipulation** Whether it's through concatenation, slicing, or using various built-in methods like 'upcase', 'downcase', or 'reverse', there are many ways to manipulate a string. Each of these methods serves a unique purpose, allowing me to tailor my string manipulations to suit my specific needs.

As I continue to explore Ruby, I'm excited to see how I can leverage these new skills to build even more robust and dynamic applications in the future.

Until next time, happy coding!
AI assisted coding: A word of caution
Tags: chatgpt, githubcopilot, programming, ai
Published: 2024-02-13 23:11:44

Ever since the release of Github copilot, and especially the massive popularity of chatGPT, AI tools can be used to generate code based on prompting or on the fly suggestions in your IDE. There are concerns regarding the data you share while using these, especially when used in a work environment, but there is another big reason why I'm personally not keen to adopt these kind of tools. The risk of of sabotaging my own development. Hear me out. 

As a developer, you can use all the tools you want provided that they confirm to your company's policies. At least you should be, developer freedom matters. You are however, in the end, solely responsible for the work you deliver. You cannot blame the tools you used if you copied a piece of code, whether from ChatGPT or one of the older go-tos like StackOverflow.

## Life long learning 

Our capabilities are ever changing. We learn new things every day, but knowledge, if not refreshed, also fades and some knowledge simply becomes outdated. This is especially true in the rapidly evolving field of IT. Thus is important to not just deliver the work we need to deliver, but also use that time effectively to build long-lasting knowledge. 

The conclusion from this is that we should try to incorporate principles of effective learning on the job. I've read some interesting material on this in the past, which i wholeheartedly recommend [^1].

## How not to use ChatGPT

As coders, we use our toolbox of language features, design patterns and so on to solve new problems. Coming up with a solution should require effort, it should require us to dig into our existing knowledge and try to make new connections. This process of trial and error is an effective tool of learning. On the other hand, generating code with ChatGPT, copying it and then trying to understand it skips this process entirely. It requires less effort, but also gives less long-term gains. Over time, i believe this approach would be a detriment to my coding abilities. It is these same coding abilities that we need to analyse the code generated by ChatGPT.


## Not all is bad

Much like linters, AI generated code reviews may help you to spot mistakes and improvements. The Key thing is these happen after you've made the effort to write the code. Getting feedback after making the effort is very valuable. The process of trial and error requires knowing that you've made a mistake to then learn from it, otherwise it would just be trail and ignorance. While the AI review may contain mistakes, it will help you reflect on your work and consider alternatives. 

## Final thoughts

I'm sure there are many more ways of how not to use or not to use tools like ChatGPT for work other than the two i've just mentioned. The most important question i ask myself is whether it reduces mental effort. Seeing as effort is an important indicator of creating lasting knowledge, this is something i want to avoid.

[^1]: Brown, P. C. (2014). Make it stick. Belknap Press.
How to Find a Software Career Path?
Tags: beginners, career, learning, productivity
Published: 2024-02-13 23:04:47

Okay, you've finished your bachelor's degree, just left boot camp, or gained skills on a self-taught path. You have some knowledge of a variety of topics. What next? What should you focus on?

By definition, the college or any coding school doesn't teach the most modern or cutting-edge skills. They must wait until the dust settles, prepare their curriculums, prepare the cadres, and start teaching the topic. Sometimes, it takes years. So, while everyone is jumping on the AI wagon, you are learning how webdev was done several years ago.

Do not panic! It has always been like that. Fifteen years ago, when webdev was a hot topic, they still taught us Assembly language and C and almost nothing about webdev. So that's constant and normal.

What to do then? Where to find a path?

I think it's worth considering an alternative approach:
1. Do not hoard the knowledge for the sake of hoarding it. Invert that process instead. Think about how you can help others with software or any other CS-related product, then learn the skills necessary to make that a reality.
2. Try not to overthink "what niche to take" or "what career to take" - everything changes every several years anyway. Try to figure out what technology is helpful to others - it works out much better in the long run and helps prevent spending time on overhyped solutions. You can also stay true to yourself, which is good for your mental health.

In my experience, colleges teach the basics of a wide variety of topics (at least a bachelor's) so you can orient yourself, but what to focus is on you. If you concentrate on what is truly useful, or if you try to come up with something new that may help others, you will certainly have both a marketable skill and something you want to do.
Hide breadcrumbs div based on its content overflow
Published: 2024-02-13 22:15:47

This is my HTML:

```
<div class="header">

    <div class="header__right">
     <span id="theme_switcher" class="lightbulb-icon"><i class="fas fa-sun"></i></span>        
    <span id="navIcon">≡</span>
    </div>

    <a href="/" data-google-interstitial="false"><img src="/AlmarsImages/Website/logo.png" alt="Logo"></a>
    <div id="breadcrumbs"><a href="/retro">retro</a> &gt; <a href="/retro/walkthroughs">walkthroughs</a> &gt; <a href="/retro/walkthroughs/gamecube">gamecube</a> &gt; <a href="/retro/walkthroughs/gamecube/games">games</a> &gt; <a href="/retro/walkthroughs/gamecube/games/animalcrossing">animalcrossing</a> &gt; <a href="/retro/walkthroughs/gamecube/games/animalcrossing/eventcalendar">eventcalendar</a></div>
  </div>
```
Now, css for "header__right is:

```
.header .header__right {
position: fixed;
right: 30px;
color: #fff;
line-height: 60px;
font-size: 20px;
cursor: pointer;
}
```
CSS for "breadcrumbs" is:

```
#breadcrumbs {
margin-left: 280px;
margin-top: 16px;
color: #fff;
}
```
And I got this script:

```
function updateBreadcrumbs() {
var url = window.location.pathname;
var breadcrumbContainer = document.getElementById('breadcrumbs');

// Split the URL by '/' to get individual folder names
var folders = url.split('/').filter(function (folder) {
    return folder !== ''; // Remove empty elements
});

// If on the homepage, display an empty div
if (folders.length === 0) {
    breadcrumbContainer.innerHTML = '';
} else {
    // Generate the breadcrumb trail with clickable links
    var breadcrumbTrail = '';
    var folderPath = '';
    for (var i = 0; i < folders.length; i++) {
        folderPath += '/' + folders[i];
        var lowercaseFolderName = folders[i].toLowerCase(); // Convert folder name to lowercase
        breadcrumbTrail += ' > <a href="' + folderPath + '">' + lowercaseFolderName + '</a>';
    }
    breadcrumbContainer.innerHTML = breadcrumbTrail.substring(3); // Remove the initial ' > '
}
}
// Call the function when the page loads and whenever the URL changes
window.onload = updateBreadcrumbs;
window.onpopstate = updateBreadcrumbs;
```

The thing is, I want my breadcrumbs div to hide once the content in it breaks the line (overflow horizontall). However, we also must take in consideration that before content even reaches overflow, the "header__right" will overlap the content anyway. So, that can be a problem too. If this overlap happens, it should be gone too (breadcrumbs).
Git Branches: List, Create, Switch to, Merge, Push, & Delete
Tags: webdev, programming, development, github
Published: 2024-02-13 22:02:47




![''](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hoy68cc4orsqu078wrv3.png)








## See What Branch You're On

```
git status
```

## To see local branches, run this command

```
git branch
```

## To see remote branches, run this command

```
git branch -r
```

## To see all local and remote branches, run this command

```
git branch -a
```

## Create a New Branch

```
git checkout -b my-branch-name
```

## Switch to a Branch In Your Local Repo

```
git checkout my-branch-name
```

## Switch to a Branch That Came From a Remote Repo

```
**To get a list of all branches from the remote, run this command:**

git pull

**Run this command to switch to the branch:**

git checkout --track origin/my-branch-name

```

## Push to a Branch

```
**If your local branch does not exist on the remote, run either of these commands:**

git push -u origin my-branch-name
git push -u origin HEAD

**NOTE: HEAD is a reference to the top of the current branch, so it's an easy way to push to a branch of the same name on the remote. This saves you from having to type out the exact name of the branch!**

**If your local branch already exists on the remote, run this command:**

git push
```

## Merge a Branch

```
**You'll want to make sure your working tree is clean and see what branch you're on. Run this command:**

git status

**First, you must check out the branch that you want to merge another branch into (changes will be merged into this branch). If you're not already on the desired branch, run this command:**

git checkout master

**NOTE: Replace master with another branch name as needed.**

**Now you can merge another branch into the current branch. Run this command:**

git merge my-branch-name

**NOTE: When you merge, there may be a conflict. Refer to Handling Merge Conflicts (the next exercise) to learn what to do**
```

## Delete Branches

```
**To delete a remote branch, run this command:**

git push origin --delete my-branch-name

**To delete a local branch, run either of these commands:**

git branch -d my-branch-name
git branch -D my-branch-name

**NOTE: The -d option only deletes the branch if it has already been merged. The -D option is a shortcut for --delete --force, which deletes the branch irrespective of its merged status**
```

> **Want to push latest code into a particular branch but on that branch another developer is already updated his code, it means you need to take first pull request and then push your code. But when you will take pull and hit push request you will getting a error that "far behind"**

> 

```
git stash
```
then take a pull request

```
git pull -origin 'branch name'
```
after taking pull request, apply stash

```
git stash apply
```
after this you are on the current stage of your branch then you will successfully hit push request.

```
gut push -origin 'branch name'
```
Demystifying Backend Fundamentals: Understanding the Internet, HTTP, and DNS
Tags: backend
Published: 2024-02-13 22:24:05

In the ever-expanding digital landscape, the backend of web development serves as the foundation upon which the entire online world operates. Let's embark on a journey to unravel the intricacies of core backend concepts: the internet, HTTP, and DNS.

### Understanding the Internet
The internet, often referred to as the information superhighway, is a global network of interconnected computers and devices. It enables the seamless exchange of data and communication across vast distances. At its core, the internet operates on a decentralized architecture, with millions of servers and routers working together to transmit data packets.

### What is HTTP?
HTTP, or Hypertext Transfer Protocol, is the foundation of data communication on the World Wide Web. It defines how messages are formatted and transmitted between web servers and clients, facilitating the retrieval and display of web content. HTTP operates on a client-server model, where requests are initiated by clients (such as web browsers) and fulfilled by servers.

### Exploring Browsers and Their Functionality
Web browsers serve as the gateway to the internet, translating HTML, CSS, and JavaScript code into visual web pages. They render web content, execute scripts, and enable user interaction with websites. Modern browsers incorporate advanced features like tabbed browsing, extensions, and developer tools to enhance the user experience.

### Deciphering DNS
DNS, or Domain Name System, acts as the internet's address book, translating human-readable domain names (such as google.com) into numerical IP addresses that computers use to locate each other on the network. DNS operates through a hierarchical system of servers, ensuring efficient and accurate domain resolution.

### Unveiling Domain Names and Hosting
A domain name serves as the unique address of a website on the internet, allowing users to access it via a memorable URL. Hosting refers to the provision of server space and resources for storing and serving website files to visitors. Domain names are registered through domain registrars, while hosting services provide the infrastructure for hosting websites.

In conclusion, mastering backend fundamentals is essential for aspiring web developers to build robust and scalable web applications. By understanding the inner workings of the internet, HTTP protocol, DNS resolution, and domain hosting, developers can create seamless and efficient digital experiences for users worldwide.

Stay tuned for more in-depth explorations of backend technologies and development methodologies. Remember, the journey to becoming a proficient backend developer begins with a solid understanding of the foundational concepts. Happy coding!