teleren/devto huggingface dataset:
Wordpress to Ghost Migration
Tags: ghost, migration, blog, wordpress
Published: 2023-12-13 21:25:25

---
title: Wordpress to Ghost Migration
published: true
date: 2023-12-13 21:16:52 UTC
tags: Ghost,Migration,Blog,WordPress
canonical_url: https://blog.disane.dev/en/wordpress-to-ghost-migration/
---

 ![Wordpress to Ghost Migration](https://blog.disane.dev/content/images/2023/12/wordpress_to-ghost-migration_banner.jpeg)

My old blog was getting a bit long in the tooth and I didn't like the technology behind it (Wordpress) for a long time. That's why I've now migrated from Wordpress to Ghost.

## ✨ Content-Migration

The migration is quite easy to do with Ghost's documentation:

[

Official guide: How to migrate from WordPress to Ghost

Everything you need to know about working with the Ghost professional publishing platform.

 ![Wordpress to Ghost Migration](https://ghost.org/favicon.ico)Ghost - The Professional Publishing Platform

 ![Wordpress to Ghost Migration](https://ghost.org/images/meta/ghost-docs.png)
](https://ghost.org/docs/migration/wordpress/?ref=blog.disane.dev)

💡

You may have to change the user of the posts afterwards (if you are using a different user in Ghost). However, this is very easy to do by deleting the newly created user.  
  
All posts of the deleted user will then change to your user.

## 🔦 Redirect published posts via .htaccess

It is now also important that all already published posts are redirected to the new URL. This is important for users as well as for SEO.  
  
To do this, I also downloaded the `JSON` file and created a NodeJS script that automatically generates the redirects for me.  
  
I can then easily integrate these redirects into my `.htaccess` file in Wordpress and all posts that have already been published will be moved to my new blog, yay! 🎉  
  
I have provided you with the script as a Gist:

[

Wordpress to ghost redirections creator

Wordpress to ghost redirections creator. GitHub Gist: instantly share code, notes, and snippets.

 ![Wordpress to Ghost Migration](https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg)Gist262588213843476

 ![Wordpress to Ghost Migration](https://github.githubassets.com/assets/gist-og-image-54fd7dc0713e.png)
](https://gist.github.com/Disane87/33c5a54b186b9dbc7c6765ac8c5e093c?ref=blog.disane.dev)

Have fun with it and good luck!
✨Tabs Component Ready To Use ! (No Framework)
Tags: codepen, javascript, programming, css
Published: 2023-12-13 20:14:44

👋 Hello, I'm new to this network, I'm sharing a Codepen project with you, all the comments are in French but all the code is in English.
It's a tabs component in pure HTML, CSS, JavaScript. There's no framework or code taken from anywhere else. 

Here are the <u>features</u> of the component: 

- **Dynamic adaptability**: Easily adapts to varying quantities of items without compromising functionality.
- **Animated hint bar**: A bar follows the selected item, providing a fluid and attractive visual experience.
- **Easy interactivity**: Retrieval of the component value is simple and intuitive, via the `value` attribute, there's also the `change` event available.
- **Component isolation**: The design allows multiple instances of the component to be used on the same page, without interfering with each other.

{% codepen https://codepen.io/VoidSplit/pen/rNPPJGw %}
Demo Highlight: Angles
Tags: miniscript, minimicro, programming, beginners
Published: 2023-12-13 19:48:47

Today I'd like to highlight another one of the demos that comes built-in with [Mini Micro](https://miniscript.org/MiniMicro/): **/sys/lib/angles.ms**.

This one is a little different from most of the other demos, in that it has educational value while running, rather than only while studying the code!  It creates a nice interactive display that explains and illustrates angles, as measured in both radians and degrees.

![Screen shot of angles demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/33g4hmuz2rp8sz0dk2pt.png)

Degrees are consistently shown in purple, while radians are always shown in green, to help you match up the values you see on the right with the explanations on the left.

You can click anywhere around the wumpus at upper right, or the triangle diagram at lower right, and drag the mouse to dynamically change the angle shown.  The wumpus shows what that rotation looks like when applied (in degrees) to a sprite; and the triangle, plus the three values below, shows how `sin`, `cos`, and `atan` relate the angle (in radians) to  horizontal and vertical distance.

This demo will be great for younger coders who have not been taught trigonometry yet, or for anyone whose memory of those lessons may be a little rusty.  Even if your trig is strong, it may still be useful.  Not sure whether to use angles or degrees with a sprite rotation?  Want to find exactly what angle corresponds to the "jaunty tilt" you have in mind?  Fire up /sys/lib/angles and quickly find out!

If you are on a desktop machine, you can **try this demo right now** on the web by clicking [here](https://miniscript.org/MiniMicro/index.html?cmd=run%20%22%2Fsys%2Fdemo%2Fangles%22).

Or, if you have Mini Micro already, just fire it up and enter:

```
run "/sys/demo/angles"
```

When you're done playing around with angles, just press the `Esc` or `Q` key to quit.  And then feel free to use the `edit` command to poke at the code!
"Thoughts on Degrees and Bootcamps": CodeNewbie Podcast S26E7
Tags: podcast, codenewbie, career, beginners
Published: 2023-12-13 19:47:22

In Season 26, Episode 7 of the CodeNewbie Podcast, @saronyitbarek talks about the journey into software engineering with [Johnny Proano](https://www.djimageonline.com/), Associate Software Engineer at Hilton Grand Vacations. Saron speaks with Johnny about his path into coding, sparked by the creation of his personal DJ website. He delves into his initial assumptions about needing a degree to pursue software engineering, his shift towards attending a coding bootcamp for education, and reflects on the distinctions between bootcamp and traditional college experiences. Johnny also shares insights into his post-graduation job search process.

{% embed https://www.codenewbie.org/podcast/thoughts-on-degrees-and-bootcamps %}

Johnny is a passionate Chicago Bulls fan, music enthusiast, Star Wars fan, and a proud father with a love for the creativity of coding. He is a dedicated Software Engineer blending university education and a coding bootcamp experience bringing leadership, innovation, and a commitment to making a difference through code: “Think it, code it, make a difference!"

- [Listen on Apple Podcasts](https://podcasts.apple.com/us/podcast/codenewbie/id919219256?i=1000638416090)

- [Listen on Spotify](https://open.spotify.com/episode/5GaWLtEuOGvntOICitbpvU?si=dfdf6f155748478a)

Or, listen wherever you normally get your podcasts!

***

### We will see you next week, happy coding

PS: Make sure to subscribe to the CodeNewbie podcast if you haven't yet + review us on your chosen platform!
Project Idx Google's New Web and Mobile App Development ide
Tags: google, news
Published: 2023-12-13 19:45:46

Ditch the IDE Jungle, Code in Your Browser Oasis: Project IDX is Here! 

Hey there, fellow code warriors! Tired of battling a tangled mess of IDEs and context switches?  Feeling like your coding workflow needs a serious chill pill? ‍♀️ Well, Google's got your back (and your keyboard!) with **Project IDX**, a game-changer that's gonna make your coding life a whole lot smoother. 


![save-for-later](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hacwetyvr7un7jj4ya9c.png)

**Imagine this:**

- **One workspace to rule them all:** Ditch the juggling act! IDX lets you code in any language you fancy (React, Go, Python, you name it!) all within your cozy browser window. No more switching tools, just pure coding bliss. 
- **Your AI coding buddy:** Meet Codey, your new AI sidekick who's way smarter than any autocorrect you've ever met. Codey suggests the next line before you even think of it, catches typos like a ninja, and even helps you refactor code like a pro. ‍♀️
- **Contextual magic:** IDX is like a mind reader for your code. It anticipates your needs and throws out helpful suggestions like confetti, saving you precious time and brainpower. ✨
- **Multi-platform previews:** See your app come to life on different devices and browsers, **instantly!** No more guesswork or late-stage surprises. Your app will rock any screen it lands on. 
- **Collaboration (coming soon!):** Team up with your coding crew in real-time, share code like candy, and see changes happen live across everyone's screens. It's like coding telepathy, but way cooler. 

{% youtube -wlZY4tfGMY %}

**But wait, there's more!** Project IDX is still evolving, and Google's constantly adding new features to make your coding life even sweeter. Think AI superpowers, open-source integrations, and a global community of developers ready to collaborate and share the coding love. 

**So, is IDX right for you?** If you're a code adventurer who:

- Hates IDE overload and context-switching chaos 
- Wants an AI sidekick to level up your coding game 
- Craves a smooth, multi-platform workflow that lets your app shine on any screen ✨
- Loves the idea of collaborating with fellow code warriors in real-time 

Then **Project IDX is your oasis in the coding jungle!** Head over to the Google Developers Blog and dive into the details. Remember, it's still in early access, but the future is bright, and it's built on code and Chrome. ✨

**Ready to ditch the IDE drama and embrace the IDX revolution? Let's code the future, together!** 


Don't forget to share your thoughts and experiences in the comments below! Let's build a coding community as vibrant as the IDX interface itself!

**Thank you for reading!**
I hope this blog post provided valuable insights about Google's Project idx. Follow for more Insightful Computer Science Knowledge. [shubhadipbhowmik](https://shubhadip.bio.link/)


![shubhadip bhowmik](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ld0p3gepsury0nh9hi34.png)
Execute commands on 'find' output ft. -exec and xargs
Published: 2023-12-13 19:43:30

# How to run commands on files found

If I want to delete any log files in a directory and log files in this directory have common substring "log" in their name, we could do it all in one command.

```
nuclearegg69@zenbook-f13:~$ ls
1   2  a             b  colt-ex  empty  hello2   inNano3.txt    inNanoSymlink  testRen2      unsortedNums.txt  world2
1a  3  alphabet.txt  c  echo     hello  inNano3  inNanoRenamed  testRen        unsorted.txt  world
nuclearegg69@zenbook-f13:~$ find ~ -name "*hello*" -exec rm -r '{}' ';'
nuclearegg69@zenbook-f13:~$ ls
1   2  a             b  colt-ex  empty    inNano3.txt    inNanoSymlink  testRen2      unsortedNums.txt  world2
1a  3  alphabet.txt  c  echo     inNano3  inNanoRenamed  testRen        unsorted.txt  world
nuclearegg69@zenbook-f13:~$
```

OR 

```
nuclearegg69@zenbook-f13:~$ ls
1   2  a             b  colt-ex  empty  hello2   inNano3.txt    inNanoSymlink  testRen2      unsortedNums.txt  world2
1a  3  alphabet.txt  c  echo     hello  inNano3  inNanoRenamed  testRen        unsorted.txt  world
nuclearegg69@zenbook-f13:~$ find . -name "*hello*" | xargs rm -r
nuclearegg69@zenbook-f13:~$ ls
1   2  a             b  colt-ex  empty    inNano3.txt    inNanoSymlink  testRen2      unsortedNums.txt  world2
1a  3  alphabet.txt  c  echo     inNano3  inNanoRenamed  testRen        unsorted.txt  world
```

Let's break those commands apart starting with the first one:

- `find`: used to find objects (files, dirs, links) 
- `~` : in home directory
- `-name`: with a name of 
- `"*hello*"`: containing substring hello (i.e. with zero or more characters before 'hello' and zero or more after)
- `-exec`: execute following operation/command on every record found
- `rm -r`: delete recursively (so dir and all dirs and files nested within it)
- `'{}'` placeholder for current file/dir (so rm -r '{}' = delete current file/dir and it will run for every file/dir found) 
- `';'` : indicate the end of the rm command and is passed as a parameter to dir to not confuse the bash that it ends the whole find command


`'{}'` since this is a placeholder for current file name, it provides a convenient way for renaming files

```
find . -type f -exec mv '{}' '{}_new' ';'
```
This adds a substring `_new` at the end of each file name

- `xargs`: the pipe passes the list of files found to xargs standard input and xargs runs the command following it on each file, passing the file as an argument
Start a Productive Year With Devart: 50% Discount to Treat Yourself During the Holiday Season
Tags: databasemanagement, dataconnectivity, softwaredevelopment, python
Published: 2023-12-13 19:34:00

This holiday season, **Devart** is sharing festive joy and warmth with a special offer to benefit all our loyal customers as well as new ones! Now you can treat yourself to the top-tier Devart tools subscription, including the most popular database tools and data connectivity solutions, using a discount promo code — up **to 50% off**. The offer is valid **_between December 11, 2023, and January 11, 2024_**. 

Set your most ambitious New Year productivity resolutions with the help of tools that make your work with databases and data effortless! Go to the promo page, choose the product or product bundles you wish to subscribe to, and apply the corresponding promo codes at checkout. 

[Claim Your Discount](https://www.devart.com/happy-new-year.html)

**Special Offer Terms and Conditions: **

- Choose the product to which you would like to subscribe and enter the promo code at checkout.  

- You can use only one promo code at a time to purchase multiple products at the same discount. 

- The offer applies to all new purchases of Devart licences only.  

- Take advantage of this limited-time deal before it ends on January 11, 2024.  

  
**Start a happy, productive year with Devart!**
Travel Photography
Published: 2023-12-13 19:17:46

Make your photos more beautiful by utilizing composition's power. Gain mastery over the art of visual arranging and unleash your creativity. Discover the fundamentals of "[composition and photography](https://wikort.com/travel-photography-capture-your-memories-in-stunning-shots/)" with our knowledgeable guide, which will assist you in framing striking images. Learn how to add life to your photos with techniques like the rule of thirds and leading lines. Encourage your love of narrative by carefully crafting your compositions. Develop your abilities and produce visuals that speak to people.
Conclusion: Navigating Development Challenges
Tags: webdev, javascript, programming, beginners
Published: 2023-12-13 19:09:40

To sum up, this blog article summarises the process of deploying Navbar #2 for the Untis Planner project, including its planning, development, and release phases. Even though there were difficulties with the first pull request, the project shows tenacity and an optimistic outlook.

In summary, the planning, development, and release phases of the Untis Planner project's Navbar #2 deployment process are covered in this blog post. Despite some issues with the initial pull request, the project demonstrates perseverance and a positive vision.

A Forward-Looking Method
The initiative remains hopeful and forward-thinking in spite of its early setbacks. The pull request closing is presented as a chance for more contributions and improvements rather than as a setback. This kind of thinking is consistent with the dynamic, team-based character of open-source projects, where criticism is welcomed and used as fuel for development.

upcoming revisions and additions
Readers are encouraged to continue participating in the Untis Planner project by the finale. As the project progresses, more upgrades are planned, with the goal of including additional functionalities to strengthen the application's resilience. The project's inclusive and community-driven attitude is emphasized by the request for contributions and comments.

In conclusion, this blog article summarizes the difficulties encountered during the Navbar #2 implementation and lays the groundwork for an exciting future adventure. Readers are invited to follow along, contribute, and see how the Untis Planner project develops into a feature-rich, well-designed programme.
Debunking Desktop as a Service (DaaS) Myths and Misconceptions
Tags: cybersecurityroundtable, daas, topmicrosoftpartner, cloudreadiness
Published: 2023-12-13 19:07:00

Desktop as a Service (DaaS) has become a valuable tool in the evolving landscape of cloud computing, offering flexibility and efficiency to businesses. However, misconceptions about DaaS often lead to hesitation in its adoption. We want to debunk some common myths surrounding DaaS, providing clarity to those considering its integration into their business model.

Before we do that, let’s ensure that we are working from a shared understanding of what DaaS is.

 

What is DaaS?
Desktop as a Service, commonly called DaaS, is an innovative cloud computing service where a cloud service provider hosts the backend of a virtual desktop infrastructure (VDI). DaaS leverages virtualization technology to create virtual desktops. These virtual desktops are hosted on servers in a datacenter managed by the DaaS provider. Users can access these virtual desktops over the Internet or a private network using any compatible device: Windows, Mac, Linux, or even a modern web browser.

All the computing resources, including storage, memory, and processing power, are centralized in the cloud. This centralization allows for better management, security, and scalability. Read more about **[Debunking Desktop as a Service (DaaS) Myths and Misconceptions](https://www.proarch.com/blog/debunking-desktop-as-a-service-myths-and-misconceptions)**
Progress: Implementation and Challenges
Tags: webdev, javascript, programming, beginners
Published: 2023-12-13 19:01:39

started Pull Request #13 with the goal of putting the features that were expected to be included in Issue #2—which concentrated on developing a responsive navbar for Units Planner—into action.

Comments and Difficulties
Following assessment, Dino-Kupinic, the project owner, offered helpful criticism on the pull request, emphasizing the following areas that needed attention:

Usage of Normal CSS: Rather of using Tailwind CSS, the pull request made use of normal CSS, which might not be in line with the project's stylistic guidelines.

Noisy Comments: When there are a lot of loud or lengthy comments in the code, it's a sign that the codebase needs to be more organized and simple.

Nuxt Auto-Import function: It appears that the project structure or procedures were not followed since the Nuxt auto-import function was not used.

Deviations in Layout and Style: The actual navbar's layout and style diverged from the original drawing, which might have an impact on the project's overall visual coherence.

Non-Functional Dropdown Menu: It was reported that the navbar's dropdown menu was non-functional, suggesting that changes were necessary to guarantee correct functioning.

Decision-Making and Project Guidance
Dino-Kupinic made the decision to close the pull request in response to the comments, thanking the contributor but stating that, at this point in the project's development, the contribution did not correspond with the project's mission. The determination to uphold uniformity, conform to coding standards, and guarantee appropriate operation throughout all navbar components served as the impetus for the choice.

Prospects for the Future
Even though the pull request was closed, Dino-Kupinic was upbeat about more contributions. urging participants to propose additional features as the project moves closer to a more sophisticated development stage. This forward-thinking strategy highlights how open-source projects are collaborative in nature, relying on incremental improvements and input to ensure project success.
Planning: Creating NavBar #2
Tags: webdev, javascript, programming, beginners
Published: 2023-12-13 18:48:43

Issue #2, which Dino-Kupinic opened five days ago, described how the Untis Planner project needed a responsive navbar. The main objective was to create a navbar that works flawlessly on desktop and mobile platforms. The Units Planner Logo integration, a Light/Dark mode switch, and a Settings button were among the features that were mentioned.

**Labels and Assignees**

Dino-Kupinic assigned the problem to dsamhabe, Neuery17Alt, and other contributors in order to move things forward more quickly. An "❗Level 4-important" label was used to emphasize the enhancement's importance, and the label "feature" was used to emphasize its priority. Concerned with the "Working Prototype" milestone was the problem.
Getting Ready for Implementation
Vishnudas2003 acknowledged the value of this improvement and stated that he was excited to get to work on Navbar #2's implementation. A synopsis of the
Advent of Code 2023 - December 12th
Tags: advent, adventofcode, python, december
Published: 2023-12-13 18:45:04

---
title: Advent of Code 2023 - December 12th
published: true
description: My progress with the 2023 version of Advent of Code
tags: advent, adventofcode, python, december
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/36qayk14ewje7rvykeg5.jpg
series: Advent of Code 2023
# published_at: 2023-12-01 17:41 +0000
---

In this series, I'll share my progress with the 2023 version of [Advent of Code](https://adventofcode.com/2023).

Check the first post for a short intro to this series.

You can also follow my progress [on GitHub](https://github.com/robvanderleek/adventofcode).

## December 12th

[The puzzle of day 12](https://adventofcode.com/2023/day/12) is again a breeze for part one, and a real hair-puller for part two.

__My pitfall for this puzzle:__ Stuck on part two. Obviously, the implementation of part one is not going to cut it. I'll try to get back to this puzzle at a later time.
**UPDATE:** I finally managed this finish the second part. Considering how straightforward the code is, I can't believe this took me so long. Full disclosure: I consulted Reddit for some guidance because I wandered off in the wrong direction myself.

{% spoiler Solution here, do not click if you want to solve the puzzle first yourself %}

```python
#!/usr/bin/env python3
import re
from functools import cache

rows = []

with open('input-small.txt') as infile:
    lines = infile.readlines()
    for line in lines:
        parts = line.strip().split(' ')
        springs = parts[0]
        groups = [int(g) for g in parts[1].split(',')]
        rows.append((springs, groups))

def generate(s):
    result = []
    if '?' not in s:
        result.append(s)
    else:
        result.extend(generate(s.replace('?', '#', 1)))
        result.extend(generate(s.replace('?', '.', 1)))
    return result

def is_valid(springs, groups):
    spring_groups = [len(p) for p in re.split('[.]+', springs) if p != '']
    g = list(groups)
    return spring_groups == g

@cache
def check(s, groups):
    if len(groups) == 0:
        if '#' not in s:
            return 1
        else:
            return 0
    s = s.strip('.')
    dot_index = s.find('.')
    question_index = s.find('?')
    if question_index >= 0 and (question_index < dot_index or dot_index < 0):
        return \
            check(s.replace('?', '#', 1), groups) + \
            check(s.replace('?', '.', 1), groups)
    else:
        if dot_index < 0 and len(s) == groups[0]:
            return check('', groups[1:])
        elif dot_index == groups[0]:
            return check(s[dot_index:], groups[1:])
        else:
            return 0

total = 0
for r in rows:
    springs = ''
    groups = []
    for i in range(5):
        springs += r[0]
        springs += '?' if i < 4 else ''
        groups.extend(r[1])
    valid = check(springs, tuple(groups))
    total += valid

print(total)
```

{% endspoiler %}

That's it! See you again tomorrow!