teleren/devto huggingface dataset:
The Thrills and Challenges of Learning to Code: A Journey of Discovery
Tags: webdev, javascript, beginners, codenewbie
Published: 2023-10-07 21:18:38

Embarking on a journey into the world of coding has been an exhilarating rollercoaster ride. While it hasn't always been a bed of roses, it's a journey filled with excitement, challenges, and the joy of solving complex problems. In this blog post, I'll share my experiences and thoughts on the process of learning to code, with some recent insights added to the mix.

**The Joy of Uncovering Complexity:**
First and foremost, let's be clear about one thing: coding is fun. The real thrill emerges when you begin to unravel the intricacies of this digital universe. With every concept you grasp, your interest in coding deepens. It's like putting together a complex puzzle, with each piece contributing to the grander picture of your coding expertise.

**Learning Through Exploration:**
One habit I've cultivated along this journey is spending countless hours on YouTube, immersing myself in coding tutorials and demonstrations. These videos are windows to the vast world of possibilities that coding offers. While I don't remember every detail from those videos, I get a rush from grasping the parts I do understand. It's akin to being a detective, peeling back the layers to reveal the inner workings of a complex machine.

**Eureka Moments in My Journey:**
Recently, a significant turning point occurred in my coding adventure. It was like a series of "Eureka" moments rolled into one. I was working on a project, and it acted as a catalyst for understanding many concepts that had been floating around in my head. It felt like these learnings were permanently etched into my brain.

I faced a particular challenge with code optimization. I wanted to make my code more concise and readable. This endeavor wasn't without its frustrations. I ended up restarting my code at least three times, which, believe me, was quite frustrating. However, with each fresh start, I delved deeper and acquired a little more knowledge.

In conclusion, my journey into the world of coding is marked by unending excitement, a fair share of challenges, and the immense satisfaction that comes from solving complex problems. Coding isn't always a straightforward path, and sometimes you have to rewrite your story from scratch. But with every rewrite, you dive deeper into the code, enhancing your understanding.

So, while the journey might not always be rosy, it's a thrilling and rewarding one. It's a continuous process of discovery and learning, and I can't wait to see what exciting projects I'll be able to create as I keep exploring this fascinating world of coding.
Dua Lipa + Python: My Go-To Combo ❤️‍🔥
Tags: webdev, python, learning, music
Published: 2023-10-07 21:10:44

The struggle or big question with self-learning for me usually becomes: "How do I stay focused?". When I sit down, sometimes I start to feel like an elementary school student who is in the class they like the least. But I'm not 7 and these are topics I'm choosing _because I'm passionate about them_. Aside from finding the right learning resources, I also recommend testing out different types of music while you study. 

I know there's a common recommendation of classical music or instrumental music and research that supports this strategy. However, there is one artist who helps me study: Dua Lipa. When I listen to the "Future Nostalgia" album (or at least most of it) I'm able to focus and solve problems better than any other music. Even though it's pop music, it's not distracting to me because I already know the lyrics. Now that I know how helpful her music is, I went ahead and made a playlist. I've added a couple more songs (all pop music) and it keeps me upbeat. My current combination: Python + Dua Lipa, surprising but useful. 

**What type of music do you listen to when you code? Do you have a favorite artist? Or do you prefer the quiet?** Let me know!

-
Poner contrasena a PDF | qpdf
Tags: bash
Published: 2023-10-07 21:07:49



#Hola a todos#

El dia de hoy le enseñare como pueden poner contrasena a sus archivos de pdf de una manera muy sencilla.

Para ello necesitaremos instalar qpdf 

##¿Que es QPDF?##

qpdf es una herramienta de código abierto utilizada para trabajar con archivos PDF (Portable Document Format). Proporciona una serie de funcionalidades para manipular y modificar archivos PDF, incluyendo la capacidad de dividir, fusionar, cifrar, descifrar, comprimir y reparar archivos PDF. También puede utilizarse para convertir documentos en otros formatos a PDF y viceversa.

Algunas de las tareas comunes que se pueden realizar con qpdf incluyen:

Dividir un archivo PDF en varios archivos más pequeños.
Fusionar varios archivos PDF en uno solo.
Cifrar un archivo PDF con una contraseña para proteger su contenido.
Descifrar un archivo PDF protegido por contraseña.
Comprimir imágenes dentro de un archivo PDF para reducir su tamaño.
Reparar archivos PDF dañados o corruptos.
Convertir documentos en otros formatos (como archivos de texto o imágenes) a PDF.
Realizar manipulaciones avanzadas en la estructura interna de un archivo PDF.
qpdf es una herramienta de línea de comandos y se utiliza principalmente en entornos de desarrollo y administración de sistemas. Es especialmente útil cuando se necesita automatizar tareas relacionadas con archivos PDF o realizar manipulaciones específicas en estos archivos.


##Instalación##

```
sudo apt install qpdf
```
Fin.

jajajaj


##Encriptar##

Para poder utilizar qpdf para poner una contrasena se realiza de la siguiente manera.

```
qpdf --encrypt "TUCONTRASENA" "TUCONTRASENA" 256 -- "NOMBRE_DE_TU_ARCHIVO_PDF" "NOMBRE_DE_TU_ARCHIVO_PDF_ENCRIPTADO";
```

Basicamente es todo lo que necesitas para encriptar. Como pueden ver es demasiado facil utilizar esta herramienta y bastante intuitiva

A continuación les muestro un ejemplo de como utilizar qpdf para encriptar todos los archivos de una carpeta utilizando bash.

```
#/bin/bash

# Directorio que contiene los archivos PDF a encriptar
directorio_pdf="./"
# Contraseña para encriptar los archivos PDF
contrasena="AQUIVATUCONTRASENA"

# Titulo
echo "Encriptador de PDFS"

# Itera sobre todos los archivos PDF en el directorio
for archivo_pdf in "$directorio_pdf"/*.pdf; do
    if [ -f "$archivo_pdf" ]; then

	# NOMBRE DEL ARCHIVO A ENCRIPTAR
	nombre_archivo=$(basename "$archivo_pdf")

	# NOMBRE DEL ARCHIVO ENCRIPTADO
	archivo_temporal="${nombre_archivo}_encriptado.pdf"

	echo "----------------"
	echo "Encriptando el archivo: $archivo_pdf"


	if qpdf --encrypt "$contrasena" "$contrasena" 256 -- "$archivo_pdf" "$directorio_pdf/${archivo_temporal}"; then
	    echo "El comando se ejecuto correctamente"

	    rm "$directorio_pdf/${nombre_archivo}"
	    cp "$directorio_pdf/${archivo_temporal}" "$directorio_pdf/${nombre_archivo}"
	    rm "$directorio_pdf/${archivo_temporal}"

	else
	    echo "Ocurrio un error al ejecutar el comando"
	fi
	#echo "Encriptado: $archivo_pdf -> ${nombre_archivo}_encriptado.pdf"
    fi
done

echo "Proceso completado."


```
Navigating through the Binary Jungle: The Endeavour of Software Development
Tags: programming, devops, productivity
Published: 2023-10-07 20:14:44


![Photo: unplash](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1kioh278b3lcyb5f386.png)

Embarking on the software development journey is like weaving through a dynamic labyrinth where innovation, technology, and strategic methodologies amalgamate to give life to digital solutions that profoundly impact businesses and end-users alike. This journey isn’t merely a traversal through coding and programming; it is an expedition that encapsulates understanding user needs, foreseeing market trends, and intertwining technological advancements with practical applicability, thereby paving the way toward creating software that is not only functionally robust but also intuitively resonant with users. 

Software development is a realm where ideas bloom into digital realities, where businesses find potent tools to engage, serve, and grow their customer base, and where users discover platforms that cater to their needs, wants, and leisure. It's not merely a technical process; it is an art where every line of code, every algorithm, and every interface designed is a brushstroke that contributes to a larger digital picture, fostering a virtual environment that synergizes the aspirations of businesses with the expectations of their clientele.

In this domain, custom software development becomes a linchpin, anchoring businesses to solutions that mirror their goals and objectives while ensuring scalability, sustainability, and technological relevance in a continually evolving digital landscape. It is about crafting digital solutions that are not only reflective of a business’s ethos but are also adaptable, resilient, and conducive to fostering an enhanced user experience.

With a company like JoinToIT, businesses discover a technological ally, adept and proficient, capable of navigating through the binary jungle of software development, ensuring that every digital solution carved is a robust, reliable, and resonant entity. [JoinToIT](https://jointoit.com/) doesn’t merely contribute to the software; it crafts pathways through technological landscapes, ensuring that the digital solutions envisaged not only meet the requirements of today but are also future-ready, prepared to evolve with changing trends, technologies, and market dynamics.
Chronicles of a Beginner's Journey into the World of Programming
Tags: webdev, javascript, programming, react
Published: 2023-10-07 18:54:13

Today marks the beginning of my journey into the vast universe of web development, i'm so curious that i'm excited and awed by the possibilities that lie ahead.  In this blog post, I invite you to join me on this transformative journey as I delve into the world of coding, one line at a time.

i have made freecodecamp a place to acquire this skill by gradually following their course outline as well as doing all the task that is required of me.

Also, i joined the popular 100dayscode challenge on twitter, this will help me hone my skill, your support will be appreciated as i go on this journey.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u9f6k91bl4xfgixsr91m.jpeg)
Final Fantasy Legend Level Editor Update
Tags: javascript, finalfantasy, elm
Published: 2023-10-07 18:39:08


---
title: Final Fantasy Legend Level Editor Update 
published: true
description: Progress on Final Fantasy Legend level editor. My biggest frustration was how to deal with multidimensional Array&#8217;s in Elm. In JavaScript, if you want to build a 2D grid, you just put Array&#8217;s in Array&#8217;s like so:
tags: JavaScript,finalfantasy,elm
canonical_url: https://jessewarden.com/2023/10/final-fantasy-legend-level-editor-update.html
cover_image: 
---

Progress on Final Fantasy Legend level editor.

{% youtube U4lnLV6LGII %}

My biggest frustration was how to deal with multidimensional Array’s in Elm. In JavaScript, if you want to build a 2D grid, you just put Array’s in Array’s like so:

```javascript
grid = [
  [ 0, 0, 0 ],
  [ 0, 0, 0 ],
  [ 0, 0, 1 ]
]
```
And to see if a tile is walk-able (e.g. 0), you just do a nested Array access:

```javascript
walkbleTile = grid[0][0] // 0
unWalkableTile = grid[2][2] // 1
```
Then when creating level editors, you simply set a tile’s value the same way:

```javascript
// make last tile walk-able again
grid[2][2] = 0
```
However, Elm doesn’t have null pointers because it doesn’t have null. Any time there is a value that might not exist, it’s a Maybe. This means all code now has 2 paths. For 90% of these 2D games, the tiles don’t change. It makes your code super nasty because you’re doing if statements when there is no point. For such a powerful type system, there HAD to be a better way.

So I asked around on the Elm Discourse and got a few alternatives. I started playing with the Vector library today, and it’s awesome. No Maybes; you just use the Vector size you need, and viola!

You’ll notice, however, when I click on the tiles, there “off”. This is because knowing where you clicked I haven’t gotten correct yet. There is where you clicked + where the Canvas actually is + what the offset of the tiles is + any CSS & box model adjustments + any zoom level. When I zoom in, you can see how bad the math is, lol.

However, still a major victory to have such a wonderful API now to access and update tile maps without Maybes everywhere.

Here’s the [Array get](https://package.elm-lang.org/packages/elm/core/latest/Array#get) and [set](https://package.elm-lang.org/packages/elm/core/latest/Array#set) API:

![](https://jessewarden.com/wp-content/uploads/2023/10/Screenshot-2023-10-07-at-2.17.46 PM-1024x799.png) vs the Vector [get](https://dark.elm.dmy.fr/packages/Chadtech/elm-vector/3.0.2/Vector3#get) and set:

![](https://jessewarden.com/wp-content/uploads/2023/10/Screenshot-2023-10-07-at-2.16.29 PM.png)
ClickHouse ReplacingMergeTree Engine: The Airport & Flights Metaphor
Tags: clickhouse, database
Published: 2023-10-07 18:36:45

**Introduction**

To comprehend the inner workings of ClickHouse’s ReplacingMergeTree engine, let’s embark on a journey through an airport’s operations. This metaphorical exploration will elucidate the similarities between the dynamic environment of an airport and ClickHouse’s functionalities.

1. Passengers & Boarding Passes = Data Entries

	•	Each data entry in ClickHouse resembles a passenger holding a boarding pass.
	•	The boarding pass carries essential details, notably a flight number and version.

2. The Lounge = Temporary Data Storage

	•	Upon their arrival, passengers settle in the airport lounge, mirroring the initial storage of data in ClickHouse.
	•	This space hosts first-time travelers and those who have exchanged their initial passes for updated versions.

3. The Role of the Gate Agent = ReplacingMergeTree Engine

	•	The gate agent, tasked with verifying boarding passes, ensures passengers with the most recent version for a specific flight board the plane.
	•	This gate agent’s role mirrors how ClickHouse’s ReplacingMergeTree engine functions — ensuring only the latest version of data is stored, while older versions are seamlessly replaced.

4. Flight Seating & Merging

	•	The airplane features various sections. Initially, as passengers board, they might spread across several areas.
	•	Periodically, the cabin crew reseats passengers to ensure optimal seat utilization, representing the merging aspect of the ReplacingMergeTree engine, where smaller data parts are integrated into larger, more organized segments.

5. In-flight = Main Data Storage

	•	Once aboard, passengers represent the consolidated and up-to-date data.
	•	The meticulous efforts of the gate agent and cabin crew guarantee an organized and efficient flight experience, much like how data is managed in ClickHouse.

6. Departure & Lounge Management = Efficient Storage Management

	•	After each boarding call, passengers with outdated boarding passes (older versions of data) are asked to exit the lounge to keep it spacious and organized.
	•	This process ensures that the lounge remains comfortable and efficient for incoming passengers, just as ClickHouse prioritizes the latest versions of data and efficiently manages storage space.

**Conclusion**

Navigating through an airport’s bustling operations offers insightful parallels to understanding ClickHouse’s ReplacingMergeTree engine. 

The careful management of passengers — from boarding to seating — serves as a fitting metaphor for how ClickHouse seamlessly manages, replaces, and merges data for optimal performance.
Get Your Svelte On: 5 UI Libraries That Will Make Your App Look Super Cool
Tags: svelte, javascript, ui, ux
Published: 2023-10-07 18:30:42

Hey there, folks! Are you ready to discover the 5 best UI libraries for Svelte? You’re gonna love this!

So, Svelte is a pretty cool and not too old web development framework. If you’re an old-timer who still remembers the Windows 95 boot disk, you’ll be pleasantly surprised by Svelte.

But to create nice UIs with Svelte, you need UI libraries that offer reusable, ready-to-use components. And here are our top 5 favorites:

[**Svelte Material UI:** ](https://sveltematerialui.com/)This library is based on Google’s Material Design, so you know it’s gonna be cool. It offers cool buttons, forms, cards, and menus. If you want a custom style, no problem, you can do that too.

[**SvelteStrap:**](https://sveltestrap.js.org/) This library is based on Bootstrap, so it’s gonna be super easy to use. It offers cool buttons, forms, grid templates, modals, etc. And just like with Svelte Material UI, you can customize the style to fit your app.

[**Svelte Materialify:**](https://svelte-materialify.vercel.app/) Once again, a library based on Material Design. This one offers a wide variety of cool components, such as buttons, forms, cards, menus, etc. You can also customize the style to fit your app.

[**Svelte-awesome:**](https://www.npmjs.com/package/svelte-awesome) This library uses Font Awesome icons, so you can be sure it’s super cool. It offers a wide variety of icons that you can use in your app. You can also customize the style if you want.

[**SvelteFlat:**](https://svelteui.js.org/#/) This library is minimalistic and modern, so it’s super cool. It offers cool buttons, forms, cards, menus, etc. And like the other libraries, you can customize the style to fit your app.

Well, there you have it, folks. I hope you enjoyed discovering these UI libraries for Svelte. Now you can have fun creating super cool and super effective UIs for your Svelte apps.
SQL Cheat Sheet #2
Tags: sql, data, dataanalysis, database
Published: 2023-10-07 18:27:40

#Here are some SQL commands to jog your memory!


###Return the number of records in a table
```
SELECT COUNT(*) FROM table_name
```

###Show the entire table
```
SELECT * FROM table_name
```

###Show a column within the table
```
SELECT column_name FROM table_name
```

###Select only the unique values within a column
```
SELECT DISTINCT column_name FROM table_name
```

###Return the number of unique values from a column within a table
```
SELECT COUNT(DISTINCT column_name)
FROM table_name
```

###Select all records where a certain value exists
```
SELECT * FROM table_name 
WHERE column_name = 'value'
```

###Select all records excluding a certain value
```
SELECT * FROM table_name WHERE NOT column_name = 'value'
```

###Select all records where a certain value exists in a column and another certain value exists in another column
```
SELECT * FROM table_name 
WHERE column1 = 'string1' AND column_2 = 'string2'
```

###Select all records that start with a particular letter from the alphabet (in this case, the letter = a)
```
SELECT * FROM table_name WHERE column_name LIKE 'a%'
```

###Select all records that end with a particular letter from the alphabet (in this case, the letter = a)
```
SELECT * FROM table_name WHERE column_name LIKE '%a'
```

###Select all records with values from a column alphabetically ranging from a certain value to another certain value
```
SELECT * FROM table_name BETWEEN 'string1' AND 'string2'
```

###Return records in a descending order
```
SELECT * FROM table_bame ORDER BY column_name DESC
```

###Select records from a column with multiple values
```
SELECT * FROM Customers
WHERE column_name IN ('value1','value2');
```

###Insert records in your table
```
INSERT INTO table_name VALUES ('first','second,'third','nth')
```

>It's worth noting that the number of values you insert after the "INSERT INTO VALUES" has to correspond to the number of columns in the table you're inserting information into.

###Change a record in a column to another value
```
UPDATE table_name SET column_name = 'new value' WHERE column_name = 'old value'
```

###Remove records where a certain value exists
```
DELETE FROM table_name WHERE column_name = 'certain value'
```
Time to Rebrand! Designing a Personal Site with SvelteKit
Tags: svelte, sveltekit, webdev
Published: 2023-10-07 18:13:02

---
title: Time to Rebrand!  Designing a Personal Site with SvelteKit
published: true
date: 2023-10-07 18:04:12 UTC
tags: #svelte #sveltekit #webdevelopment
canonical_url: https://blog.seancoughlin.me/time-to-rebrand-designing-a-personal-site-with-sveltekit
---

### Site Background

Who am I announcing this to? I'm not sure. It's a total vanity project, but we all need a vanity project or two!

I originally published my site [seancoughlin. me](https://seancoughlin.me) around two years ago. At the time, I used a basic [Bootstrap](https://getbootstrap.com) resume template. I used raw HTML and CSS with a little plain JS.

I filled out my details, deployed to Github pages, and called it a day. The page saw a few content updates, some under-the-hood optimizations for SEO and [Lighthouse](https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk), and the addition of minor UI tweaks like [Font Awesome](https://fontawesome.com) icons.

Things were fine, but I felt the site had started to feel dated and didn't reflect my current skills. So I went on the hunt for new ideas.

![Wandering path](https://cdn.hashnode.com/res/hashnode/image/upload/v1696701053124/41f484f2-f63c-4afb-99cd-94c65f6971c7.png)

### Finding Inspiration

I am an engineer by trade and CS geek by night. As hard as I try, graphic design just isn't my strong suit. However, people are kind and open-source is awesome! If you ever lack inspiration, search out the community. Just remember to cite the helpful people who contribute to your work :).

After some hunting, I arrived at [this](https://youtu.be/-2UjwQzxvBQ?si=9q7kHikpHbCoVqaG) cool [freeCodeCamp](https://www.freecodecamp.org) tutorial! This guy was great a great teacher and I learned a lot from this tutorial. I typically work with React so this was my first [Svelte](https://svelte.dev) introduction. I would say this is a good place to start.

[https://youtu.be/-2UjwQzxvBQ?si=mM1Fzy3J8zlaHDwS](https://youtu.be/-2UjwQzxvBQ?si=mM1Fzy3J8zlaHDwS)

I took his great design and made some tweaks such as adding my details, a skills section, and custom links.

If you want to check out the original tutorial code you can find it [here](https://github.com/jamezmca/hughjass). If you want to check out my source code you can find that [here](https://github.com/Scc33/Scc33.github.io/releases/tag/v2.0.0).

### The Outcome

Please go check out the new [site](https://seancoughlin.me/#about) or view some of these fun screenshots.

![About me section of seancoughlin.me](https://cdn.hashnode.com/res/hashnode/image/upload/v1696700425689/5f460cec-342a-4872-87fd-1a3e614dab32.png)

![Skills section of seancoughlin.me](https://cdn.hashnode.com/res/hashnode/image/upload/v1696700449791/69554d30-87df-48e3-83bf-6916173a868b.png)

![Footer of seancoughlin.me](https://cdn.hashnode.com/res/hashnode/image/upload/v1696700535186/f37a1746-4767-471a-b946-071783782d48.png)

Cheers!

---

Originally published at https://blog.seancoughlin.me.