teleren/devto huggingface dataset:
Supabase Alternative: Self-hosted
Tags: database, webdev, javascript
Published: 2024-05-13 21:09:14

## Not just another database
Appwrite is one of the best ways to self-host a database, with the whole suite of tools and an SDK for every language. 

Appwrite has one of the cleanest UIs you can think of, very similar to Supabase.


## Why use it over cloud based databases
I think by self-hosting, you can have full control over your data. Also, the single and most important thing, it's completely free, and you don't have to pay a subscription to host it. The only trade-off is that you need a server, but even then it does not have to be a big one because Appwrite is so lightweight.


## How to install on Ubuntu Server
To install Appwrite you need docker installed.
```zsh
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```
```zsh
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

After this you have two options, either a normal docker container or manually with docker compose

**Docker container**
```zsh
docker run -it --rm \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
    --entrypoint="install" \
    appwrite/appwrite:1.5.5
```

**Docker compose**

```zsh
# create a new directory for storing the docker compose file
mkdir appwrite

# download the tow files docker-compose.yml and .env
curl -O https://appwrite.io/install/env
curl -O https://appwrite.io/install/compose

# finally start appwrite
docker compose up -d --remove-orphans
```

```zsh
# to restart use
docker compose stop
docker compose up -d --remove-orphans
```

## Conclusion
It's very useful if you make small side projects that need auth and a database in one and don't want to use old school SQL with MySQL. Now it's up to you what you do with it.

https://appwrite.io/docs
Elevate Your Style with Premium Leather Jackets!
Published: 2024-05-13 21:07:12


Are you on the hunt for the perfect [leather jacket](https://theleatherjackets.com.au/)? Look no further than TheLeatherJackets.co.au! 
Our curated selection offers a fusion of quality craftsmanship and sophisticated style,making each piece a timeless addition to your wardrobe.
Time management cheat sheet: Boost your productivity like never before.
Tags: webdev, beginners, tutorial, javascript
Published: 2024-05-13 20:22:49

🕒 **Looking to master your time management skills?** 
Dive into the Ultimate Time Management strategy with the Pickle Jar Theory! 🥒

The Pickle Jar represents our everyday activities, while the sand, rocks, and pebbles symbolize our daily routine. Let's break it down:

🔘 **_Rocks_**: These are the pivotal tasks in our lives, the top priorities demanding our attention.

🔘 **_Pebbles_**: These are the smaller yet important tasks that fill our days, taking around 30–45 minutes each to complete.

🔘 **_Sand_**: The minutiae of life, from phone calls to social media notifications, that can easily consume our time if not managed properly.

🔄 _How does it work? Follow these steps:_

1️⃣ **Define Your Jar**: Envision your day as a large empty pickle jar, representing the time, energy, and resources available to you.

2️⃣ **Place Your Rocks**: Select 2 or 3 main goals for the day, your top priorities that must be accomplished.

3️⃣ **Add Pebbles**: Surround your big goals with smaller tasks (pebbles), each taking around 30–45 minutes to complete.

4️⃣ **Fill in with Sand**: Include additional minor tasks (sand) to fill any gaps in your schedule, aiming for about 30 minutes each.

5️⃣ **Stay Flexible**: Throughout the day, adjust your schedule as needed to ensure you're making progress toward your goals while handling unexpected interruptions.

The Pickle Jar Theory serves as a powerful reminder that it's not just WHAT you fill your life with, but HOW you do it that determines your productivity.
But yes, I also think that this information is not enough to master time management skills so you should go through [this blog](https://instaresume.io/blog/benefits-of-time-management-2023) once
and also if you are a student but also working and not sure how to manage time for work and study, you should go through [this blog](https://instaresume.io/blog/how-to-manage-time-to-study-daily)

♻️ Ready to take control of your schedule and maximize your productivity? Steal this cheat sheet and start arranging your day like a pro! 🚀
If you are planning to **switch job** or searching for a new job and are really stuck in **formatting your resume**, which takes too much of your time. Don’t worry, we got you covered with an awesome tool that takes care of your formatting with a choice of 15+ [professional resume templates](https://instaresume.io/resume-templates). 
You just need to focus on the content, your experiences, and your skills to get your resume ready.
you can also go through this blog for [resume format for freshers](https://instaresume.io/blog/resume-format-for-freshers )
Create and Deploy a Discord Bot for Free with Fly.io
Tags: webdev, javascript, discord
Published: 2024-05-13 20:14:40

## Introduction

A Discord Bot needs to be able to receive requests at all times. Unfortunately, it can be tricky to get a server up and running for free. Many of the existing free tiers involve frequent shut downs and lengthy spin up times. Going serverless is an option but it comes with its own unique challenges.

Thankfully, Fly.io offers a trial which includes $5 free credit. This is enough to run a small full-stack app, full-time, for one month. It is more than enough to run a Discord bot. I'll go through the steps required to get it up and running.

_(If you are lucky to have made an account on Fly last year, their Legacy Hobby plan includes a $5 free allowance each month, making it free to run forever)_

## Step 1 - Create your Discord Bot

I recommend using a library like Discord.js for this. It will handle the gateway connection, caching users, channels etc. for you. You can follow [this guide](https://discordjs.guide/preparations/) to get a simple bot running locally within a few minutes.

When you get to the configuration section, don't create a config.json. Instead, create a .env file and add your token, client ID and guild ID. You will copy these over to the server later.

Continue along with the guide and don't forget to add your bot to the server using an invite link. 

When you have finished creating the bot, run the `deploy-commands.js` file to register your slash commands with the server.

## Step 2 - Create an Account on Fly.io

Sign up for a Hobby account and add your payment information. You won't be charged until the $5 of trial credit has been used up.

## Step 3 - Fly Launch Configuration 

Create a file called `fly.toml` in the root of your project directory and add the text from the snippet below. (Check [here](https://fly.io/docs/reference/regions/) for a list of available regions)
```
app = '<YOUR_APP_NAME_HERE>'
primary_region = '<YOUR_REGION_HERE>'

[build]

[[services]]
  internal_port = 3000
  protocol = "tcp"

  # Allow machines to run continuously
  auto_start_machines = false
  auto_stop_machines = false

```

## Step 3 - Launch the Application

Follow the instructions [here](fly.io/docs/hands-on/install-flyctl/) to install the Fly command line utility. When it is installed, run the command `fly launch` from the source directory of your project.

## Step 4 - Add Environment Variables

You should now see your app on the Fly.io dashboard. Go to the Secrets page and add your environment variables. When you are finished, the app will automatically redeploy with the new variables. 

Now, navigate to the Live Log page. If you followed the starter bot example in the Discord.js docs, you should see the text "Ready! Logged in as <YOUR_BOT_NAME>" in the console. 

If so, congratulations! Your bot is up and running. You should now be able to run commands in your Discord server.
Keysearch Starter Information SEO Video Course!
Tags: webdev, beginners, programming, tutorial
Published: 2024-05-13 19:58:07

Understanding Search Engine Optimization (SEO) is essential for success online in today's digital environment. This video course, Keysearch Starter Information, presents an unmatched chance to improve your SEO abilities. Let's explore the contents of this course and how you may get the most out of it.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01145ss5wqi8rkldk26r.png)
1. What is the video course on Keysearch Starter Information?
2. Advantages of the Video Course for Keysearch Starter Information
3. How to Enroll in the Course

1. What subjects are covered in the course?
   Essential SEO strategies, competitive analysis, keyword research, content optimization, and other topics are covered in the course.
2. Is this a beginner-friendly course?
   Definitely! The training is intended for both novices and those who want to improve their SEO skills.
3. How can I get the readings for the course?
   To gain free access to the PDFs and video content, just register on our website.
4. Can I make inquiries or request further help?
   Indeed! Please don't hesitate to get in touch with our support team with any inquiries or requirements.
5. Is there a time restriction on the course access period?
   No time restriction exists. You will always have access to the course materials after you join up.

# What is the video course on Keysearch Starter Information?

A thorough resource for understanding and putting into practice SEO tactics is the Keysearch Starter Information Video Course. It consists of a set of educational videos and PDFs that go over a lot of SEO-related subjects, such as competition analysis, content optimization, keyword research, and more.
**[Free Course Access Now](https://service36.blogspot.com)**


## Advantages of the Video Course for Starting Keysearch Information

1. No Cost: The Keysearch Beginner Information Video Course is offered without charge, in contrast to several other SEO courses that have expensive enrollment fees. This means that a large audience may use it, irrespective of their financial situation.
2. Expert Guidance: To make it easier for you to manage the complexity of SEO, the course is designed by seasoned SEO specialists who offer their knowledge and insider suggestions.
4. Flexibility: The course allows you to choose how you want to absorb the material, so you may have a customized learning experience whether you'd rather watch video lessons or read through in-depth PDF guidelines.
**[Free Course Access Now](https://service36.blogspot.com)**

**### Getting into the Course**

It's easy to get the Keysearch Starter Information Video Course. Just click here to register for a free account.. Instant access to all course materials, including video lessons and downloadable PDFs, is provided upon registration. Take the first step toward becoming an SEO guru right now!
Are you prepared to use your website to its greatest potential? To advance your SEO abilities, enroll in the Keysearch Starter Information Video Course right away!
To create a Docker network
Tags: docker, dockercommand
Published: 2024-05-13 19:48:06

```
docker network create [OPTIONS] NETWORK_NAME
```
For example, to create a bridge network named "my-network", you can use:
```
docker network create my-network
```
You can also specify additional options such as the driver type, subnet, gateway, and more if needed. For instance:
```
docker network create \
  --driver bridge \
  --subnet 172.20.0.0/16 \
  --gateway 172.20.0.1 \
  my-network
```
Setting up JetBrains Mono font on Ubuntu is straightforward
Published: 2024-05-13 19:42:51

1. **Open Terminal**:
   - Press `Ctrl + Alt + T` to open a terminal window.

2. **Navigate to the Font Directory**:
   - Use the `cd` command to navigate to the directory where your font files are located. In your case:
     ```
     cd /home/asif/Downloads/JetBrainsMono-2.304/fonts/ttf
     ```

3. **Copy Font Files to System Fonts Directory**:
   - Copy the font files to your system's TrueType fonts directory using the `sudo cp` command:
     ```
     sudo cp *.ttf /usr/share/fonts/truetype/
     ```

4. **Update Font Cache**:
   - Update the font cache so that Ubuntu recognizes the new fonts:
     ```
     sudo fc-cache -f -v
     ```

5. **Verify Installation**:
   - Open a text editor or any application where you can select fonts.
   - Look for "JetBrains Mono" in the font selection list. If you see it, then the font has been successfully installed.

After completing these steps, you should have JetBrains Mono font installed and ready to use on your Ubuntu system.
Leveraging AI in Video Editing: An Exploration of Cutting-Edge Tools for Developers
Published: 2024-05-13 19:35:20

Hello dev.to community!

As developers, we often explore how technology can streamline and enhance various processes, and video editing is no exception. With the advent of AI, the landscape of video editing has transformed significantly, offering tools that automate and improve tasks that once required hours of manual labor. Here's an overview of how AI is shaping the future of video editing and what this means for developers.

The Rise of AI in Video Editing
AI video editing tools are not just about adding effects or cutting scenes; they're about redefining the entire editing process. From automatic color correction to smart object detection and even scene recognition, AI technologies help editors focus on creative aspects by handling the tedious tasks.

Tools at the Forefront
Adobe Premiere Pro AI: Known for its robust features, Adobe Premiere Pro uses AI to automate sequence adjustments, optimize content for different platforms, and even refine audio clarity.

DaVinci Resolve AI: This tool excels in color grading and facial recognition, making it a favorite for projects that require detailed visual enhancements.

Wink Video Enhancer: Particularly useful for developers looking to integrate simple video enhancement features into their projects, [Wink APK](winkproapp.com) offers AI-driven tools that improve video quality with minimal input.

Why Should Developers Care?
For developers, understanding these tools opens up numerous possibilities:

- Integration: Incorporating video editing features into your apps or platforms can significantly enhance user engagement.
- Innovation: As AI technologies evolve, developers have the opportunity to be at the forefront of creating new applications that can further simplify and enhance video editing.
- Career Growth: Learning about these tools and their underlying technologies can open up new career paths in AI and multimedia application development.

Join the Discussion
I'm eager to hear your thoughts on integrating AI with video editing. Are there any tools or projects you’ve worked on that involve AI video editing? What challenges and opportunities have you encountered? Let’s discuss how these innovations are shaping our projects and the future of video editing technology.
Hide Rick Rolls in a Spotify Link
Tags: spotify, rickroll, javascript, bug
Published: 2024-05-13 19:31:26

---
title: Hide Rick Rolls in a Spotify Link
published: true
description: How to rick roll your friends and enemies with spotify links
tags: spotify,rickroll,javascript,bug
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ypommyiaue30bfhlge4.png
---

Last night, my brother messaged me a spotify link, but when I tapped it, it took me somewhere else entirely.

![Screenshot of my brother sending me a weird link](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ltlmne7992nuj5rhfpk1.jpg)

> tldr; I made a thing to hide rick rolls in spotify links: https://spotify-rickroll.vercel.app/

After copying the link to a note to see the raw URL, I saw that there was a query string with URL encoded values.

```
https://open.spotify.com/track/66cuLvkHsW7dNkfNk6gQP9?context=spotify%3Aalbum%3A6DUyohk95eun9LArJtHyF7
```

The API reference is light on details, but spotify mobile apps appear to resolve whatever spotify URI is passed in the `context` parameter (the web UI did not behave this way).

After inspecting the URL I realized that the first ID in the URL (`66cuLvkHsW7dNkfNk6gQP9`) matched [A Wolf At the Door](https://open.spotify.com/track/66cuLvkHsW7dNkfNk6gQP9) by Radiohead and the second ID in the query string (`6DUyohk95eun9LArJtHyF7`) indeed matched the album [Country](https://open.spotify.com/album/6DUyohk95eun9LArJtHyF7) by Medium Build (a fantastic album you should check out).

After creating some more examples (linking to a search, a podcast, etc.), I discovered that using: `spotify:track:<track id>` will cause the track to automatically play. The value of this was quickly realized with a certain (infamous) spotify ID `4PTG3Z6ehGkBFwjybzWkR8` (copy paste into a message to try it out):

```
https://open.spotify.com/track/7pqmuOzAXmnuAXP68LSjD5?context=spotify%3Atrack%3A4PTG3Z6ehGkBFwjybzWkR8
```

![Screenshot of a conversation where my sister got got](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2f7l21j5503l11kxq4v5.jpg)

After crafting a few more by hand, I threw together a simple website to handle parsing the track IDs and generating a rick roll (or optionally a different target track entirely).

After spending the morning rick rolling everyone I can think of, I have made it public ([github](https://github.com/wulfmann/spotify-rickroll)):

You can generate your own links here:

https://spotify-rickroll.vercel.app/

Misc. observations:

- This appears to only work on mobile apps (tested on ios and android)
- iOS provides the most impact because it automatically renders the preview track whereas Android requires you to tap to display the preview
- How the spotify app generated one of these links in the first place does appear to be a somewhat difficult to reproduce bug. If anyone from the spotify team would like to get any of the original links with the `si` values please reach out.

![Rick Astley in all his glory](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6pwnly9itaah444y6zaq.png)

Enjoy ❤️
VScode For Android.
Tags: vscode, offline, programming, android
Published: 2024-05-13 19:29:53

[](https://play.google.com/store/apps/details?id=dev.environment.VScode_PaidR1&pcampaignid=web_share)
I see new amazing thing on Playstore VScode for Android is now available for Android users fully local and offline.
Now you can coding on mobile and also you can transfer your work on computer. Wow
ac-holding
Published: 2024-05-13 19:28:56

[http://ac-holding.ru/
](http://ac-holding.ru/
)AC-Holding предлагает своим клиентам полный спектр строительных услуг - от разработки проекта до сдачи объекта в эксплуатацию. Мы гарантируем индивидуальный подход к каждому проекту и готовы предложить оптимальные решения для достижения поставленных целей.  Наши объекты становятся настоящими архитектурными жемчужинами, украшающими городскую среду. Мы регулярно проводим обучающие мероприятия, позволяющие нашим специалистам повышать свою квалификацию и осваивать новейшие технологии, материалы и строительную технику.
Hover Console: Real-time JavaScript debugging directly on your webpage
Tags: javascript, debugger, webdev, programming
Published: 2024-05-13 19:25:17

> 🚀 Hover Console is your indispensable companion for streamlined JavaScript debugging. Seamlessly integrated into your browser, Hover Console revolutionizes the debugging experience by providing real-time messages directly on your webpage.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/byx4kqozzosceixs46ub.png)
 Hover Console monitors JavaScript functions like console.log(), console.error(), and other console methods, delivering instant alerts without the need to open DevTools.

Say goodbye to the hassle of switching screens and losing valuable time! Hover Console ensures you stay focused and productive, allowing you to address errors promptly and efficiently. Elevate your coding workflow with Hover Console's customizable settings, which give you full control over when and where notifications appear.

Whether you're a seasoned developer or just starting out, Hover Console empowers you to debug with confidence, helping you build robust and error-free web applications. 

Try Hover Console today and experience JavaScript debugging like never before! ✨
StoreLock
Tags: shopifysecuritysolution, shopifystoreshield, cybersecurityservice, shopifyapp
Published: 2024-05-13 19:15:44

In the bustling realm of e-commerce, StoreLock emerges as a beacon of security for your Shopify store. Prioritizing [Shopify app security](https://www.storelock.app/), we ensure a fortified shield against potential threats, be it subtle content theft or aggressive hacker attacks. Our advanced [Shopify antitheft](https://www.storelock.app/) system seamlessly integrates with your online interface, offering real-time [phishing protection](https://www.storelock.app/). Furthermore, our expertise in [Shopify fraud protection](https://www.storelock.app/) safeguards your business against deceptive transactions, allowing you to operate with confidence and offer your customers an unwaveringly secure shopping experience. With StoreLock, safety and success walk hand in hand.
The JS map() method
Tags: javascript, map, methods, webdev
Published: 2024-05-13 19:07:39

The map() method in JavaScript returns to you a new array by calling a function for every element it does not mutate. The original array just creates a copy this is used a lot in React so is something good to know along with other JS methods.

const numbersList = [1, 2, 4, 5];

// example
const mapArr = numbersList.map((n) => n + 1);
console.log(mapArr) 

// Output [2, 3, 5, 6]; 
// I will also console the original array to see no changes made
console.log(numbersList);