teleren/devto huggingface dataset:
Blockchain Beyond Bitcoin: Innovative Uses in Various Industries
Tags: webdev, javascript, devops, ai
Published: 2024-06-03 16:39:48

- **Supply Chain Management**: Blockchain enhances transparency and traceability, allowing real-time tracking of goods from origin to consumer, reducing fraud and errors.

- **Healthcare**: Securing patient data on a blockchain ensures privacy and data integrity, while also enabling efficient sharing of medical records among authorized providers.

- **Voting Systems**: Blockchain-based voting systems offer tamper-proof and transparent election processes, increasing trust in democratic institutions and reducing election fraud.

- **Real Estate**: Smart contracts on the blockchain simplify property transactions, reduce paperwork, and eliminate the need for intermediaries, making the process faster and more secure.

- **Financial Services**: Beyond cryptocurrencies, blockchain facilitates faster and cheaper cross-border payments, improves fraud detection, and streamlines regulatory compliance.

- **Intellectual Property**: Creators can use blockchain to register and manage copyrights, patents, and trademarks, ensuring proof of ownership and protecting against unauthorized use.

- **Energy Sector**: Blockchain supports peer-to-peer energy trading, allowing individuals to buy and sell renewable energy directly, promoting decentralized energy markets.

- **Food Safety**: By tracking the journey of food products from farm to table, blockchain helps in quickly identifying contamination sources, ensuring faster recalls and better food safety.

- **Education**: Blockchain can securely store academic credentials and certificates, making it easier to verify qualifications and reducing credential fraud.

- **Humanitarian Aid**: Ensuring transparency and accountability in the distribution of aid, blockchain helps in tracking the flow of funds and resources, ensuring they reach the intended recipients efficiently.
How can I modify the logo and footnote from a WP theme
Published: 2024-06-03 16:21:57

I created a website and built it from a theme that comes with logo and footnote design. I want to change the logo to my own logo and the structure of the footnote section, and tried to do this by going to the Widgets section (under Appearance) but I don't seem to be able to do this. Any suggestions on how I can do this pls?
Building great things
Tags: buildinpublic, webdev, beginners, ai
Published: 2024-06-03 16:20:23

Ah, the journey of building a software house - an adventure that many developers face at the end of college. It's like stepping into a parallel universe, where we can not only do what we love, but also breathe life into ideas that we believe will make a difference, all with a beautiful aesthetic, of course.

But like in any great saga, there were some setbacks. My beloved Macbook Pro decided to overheat. Apparently, the thermal paste wasn't applied ideally, and in the heat of the Brazilian summer, the GPU suffered a thermal collapse. Thank you, Apple, for reminding me that even the most elegant gadgets have their moments of fragility.

So there I was, in the following three months, relying exclusively on my main work computer at @dialog.ci (Thank you very much for that), where I was introduced to the wonderful world of Linux Mint. Ah, what a beauty of a distribution for beginners! I fell in love with the simplicity and control it offered. And now, I'm immersed in Debian, feeling like a true master of the code arts.

During this period of technological misfortune, I managed to save up and buy a new M2 Air. I shared the idea of the software house with a designer friend, and he bought into it. Thus was born @sakuracodeprojects, our company with such a beautiful aesthetic that it makes pixels cry with emotion.

In the last six months, while we were planning the launch of Sakura, I also delved into a personal project for my college graduation: a vegan food app powered by artificial intelligence (yeah, another one of those AI things, following in the footsteps of Stanford students, you know how it is). I presented the project to my college advisor, who loved the idea and, to my surprise, enrolled me in an international scientific research forum. Finally, I'll have the chance to present my work to the public.

Furthermore, I started studying Ruby on Rails and quite enjoyed it. It's amazing how this language can simplify web development.

Now, with Sakura Code Projects taking off and my AI project gaining international recognition, I'm determined to focus only on what truly excites me in my personal projects. In the coming months, I'll only work on projects that engage me body and soul.

And it seems luck is on my side, as two new developers have joined the Sakura team. They are campus students who found us. I confess I thought it would be harder to put together a team, but things just fell into place, and I'm incredibly happy with the result.

Here, I conclude the end of a cycle where I learned about constancy, consistency, values, and purpose, not only in my projects, but also in how I balance them with my personal life, making everything one. I maintain a healthy routine of exercise and surfing on the beautiful beaches of the Brazilian coast, as I believe that for great performance, it's necessary to focus not only on intellectual development but also on physical.

I believe I've used my time meaningfully, pursuing goals worth the effort, alongside people who value relationships.
easiest way to get ahead in tech quick.
Tags: workplace, productivity, career
Published: 2024-06-03 16:18:53

[Go Here
](https://sourceco.io/success)

Free tool to optimize yourself for the current landscape of jobs. Resume optimized for current ai resume filtering.

Free tools to make yourself standout amongst everyone else. To get picked for the top jobs, be at the top, look like #1.
Authenticate to multiple git based source accounts in single system
Published: 2024-06-03 16:11:52

1. Generate SSH keys using the below two commands in gitbash terminal.

`ssh-keygen -t ed25519 -C "abc@gmail.com" -f ~/.ssh/P`

`ssh-keygen -t ed25519 -C "xyz@c.com" -f ~/.ssh/C`

2. Add public keys to respective accounts
3. Configure multiple host in **config** file under ~/.ssh directory

![config](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vj69g3vxldjea0ga6fei.png)
Should you consider switching from brand-name to generics?
Tags: onlinepharmacyusa, buygenericdrugsonline, dirxonlinepharmacy
Published: 2024-06-03 15:57:48

Choosing generic medicines can save you money while ensuring you receive safe and effective treatment. Generic drugs are identical to brand-name drugs in dosage, safety, and strength, meeting the same rigorous FDA standards. They are often much cheaper because they don't carry the high development costs of brand-name drugs. At DiRx, we help you find affordable generic options, ensuring you get the best value for your healthcare needs.

#OnlinepharmacyUSA#Buygenericdrugsonline#FDAapprovedgenerics#Affordableprescriptiondrugs#Costsavingsonmedication#Genericvsbrandnamedrugs#DiRxonlinepharmacy#Cheapmedicines#onlineGenericdrugbenefits#Safegenericmedications

[](https://shorturl.at/weL7r)
Create a Tarot View App with the Gemini API in just 15 minutes?.
Tags: tarot, nextjs, buildwithai, geminiapi
Published: 2024-06-06 09:28:54

---
title: Create a Tarot View App with the Gemini API in just 15 minutes?.
published: true
date: 2024-06-03 16:05:21 UTC
tags: tarot,nextjs,buildwithai,geminiapi
canonical_url: https://bunhere.medium.com/6ac685e39cab
---

Discover "What applications can you make with GeminiAPI?" while engaging with Gemini, a comprehensive language model for Google AI. Here is a demonstration of how to build a Tarot reading app with the help of the Gemini API, including how to send a request through a prompt and get the results.

![GeminiAPI](https://bunhere.s3.amazonaws.com/bunhere-blog-public/images/blogs/tarot-with-gemini.png)

> _Author:_ [_bunhere.com_](https://bunhere.com)  
> I am always looking for feedback on my writing, so please let me know what you think._ ❤️_
Day 9 of my progress as a vue dev
Tags: webdev, vue, typescript, tailwindcss
Published: 2024-06-03 16:03:40

**About today**
Today was a little more progressive than yesterday and it made me realize how much crippling being addicted to something is even if it is something as simple as a web series. To us it's just couple of hours of entertainment but really it's just overloading your mind with something poisonous which is taking place of something important that could have been there. I did work on my job project as well as the DSA visualizer but not as efficiently as I wanted to.
I did started to work on the tree structure and I believe I will be find a good solution on how to visualize it.

**What's next?**
My current aim is to get disciplined and start giving more hours to my projects and work and learning new stuff while resisting the urge to relax or to be entertained every 20 minutes. I believe if I get that right I will eventually get better at polishing my other skills.

**Improvements required**
Most improvement is I need right now is with my self control to not just let me self go and resist myself from overdoing things for a long amount of time, no matter what it is. Trust me it's still about progressing as a developer.

Wish me luck!
UX ডিজাইনার
Tags: softwaredevelopment, uxdesign, projectmanagement, webdev
Published: 2024-06-03 15:41:57

UX ডিজাইনার কে যত বেশি কাজে লাগাবেন অর্থাৎ যত বেশি তার থেকে সময় ও শ্রম নিবেন ডেভেলপার টিমের কাজ ততো বেশি সহজ হবে, তত বেশি সময় কম লাগবে এবং ব্যাক এন্ড ফোর্থ অনেক কম হবে।
অনেক সময় আমরা সফটওয়্যার ডেভেলপমেন্টের প্ল্যানিং এবং প্রোটোটাইপিং পর্যায়ে UX ডিজাইনার কে কষ্ট কম দেয়ার জন্য (বা তার সময় কম ব্যবহারের জন্য; যেটাই হোক) এভাবে বলে দেই যে Navbar এ যেহেতু অমুক পরিবর্তনের সিদ্ধান্ত হয়েছে সুতরাং আপনি শুধু এক জায়গায় পরিবর্তন করে রাখুন বাকিগুলো ডেভেলপমেন্টের সময় দেখা যাবে। ব্যাস! অ্যামবিগুইটির সূচনা করলাম।
কখনো ড্রপ ডাউনের অপশনগুলোতে ডেমো ভ্যালু প্রোপাগেট করে ডিজাইনের কাজ সারিয়ে নেই অথচ কোন এক স্পেসিফিক অপশন সিলেকশন এর সাথে পরের অনেকগুলো স্ক্রিন সিকুয়েন্সিয়ালি জড়িত। জাস্ট এই চিন্তা মাথায় রেখে সামনে এগিয়ে যাই যে কনসেপ্ট তো মাথায় আছেই ডেভেলপমেন্টের টাইমে দেখা যাবে। ব্যাস! ডেভলপারদের জন্য প্রবলেম ক্রিয়েট করে সামনে এগিয়ে গেলাম।
একজন Product owner/Project Manager/Technical Manager এর এই ধরনের সূক্ষ্ম বিষয়গুলোতে হার্ড ডিসিশন নেয়া একটা ভালো প্রোডাক্ট বের করে আনার শামিল।
Extracting Text from Uploaded Files in Node.js: A Continuation
Tags: node, tutorial, webdev, filehandling
Published: 2024-06-03 15:30:21

**Introduction**

In our previous [article](https://dev.to/luqmanshaban/how-to-upload-a-file-in-nodejs-a-step-by-step-guide-5cf6), we covered the basics of uploading files in a Node.js application. Now, let’s take it a step further by extracting text from uploaded files. This tutorial will guide you through using the `officeparser` library to parse and extract text from office documents, such as PDFs, in a Node.js environment.

**Step 1**: Install the `officeparser` Library

First, install the `officeparser` library if you haven’t already:

`npm install officeparser`

**Step 2**: Create the Extraction Function

Next, create a function to extract text from the uploaded file. Here’s the code snippet:

```

import { parseOfficeAsync } from "officeparser";
async function extractTextFromFile(path) {
 try {
 const data = await parseOfficeAsync(path);
 return data.toString();
 } catch (error) {
 return error;
 }
}
const fileText = await extractTextFromFile('files/Luqman-resume.pdf');
console.log(fileText);
```

This function utilizes `parseOfficeAsync` to asynchronously read and extract text from the specified file path. If successful, it converts the data to a string and returns it; otherwise, it catches and returns any errors encountered.

**Step 3**: Integrate with Node.js endpoints
You can follow the tutorial in this [Article](https://dev.to/luqmanshaban/how-to-upload-a-file-in-nodejs-a-step-by-step-guide-5cf6) to create an endpoint that supports file upload.

**Conclusion**
By following this tutorial, you’ve extended your Node.js application to extract text from these files. This can be particularly useful for applications requiring document processing or data extraction from user-uploaded files.

Stay tuned for more advanced features and enhancements in our next article!

— -

Stay Updated!

If you enjoyed this tutorial and want to stay updated with more tips and guides, [subscribe to our newsletter](https://mailchi.mp/9275d6947c46/luqmandev) for the latest content straight to your inbox.
Add Visual Studio Code to your OSX zsh PATH
Tags: osx, zsh, vscode, path
Published: 2024-06-03 15:27:10

After installing Visual Studio Code, it will not automatically be added to your terminal path, so you will need to add it manually. here is how.

Open your terminal and run this command in your terminal

```bash
cat << EOF >> ~/.zprofile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF
```

Restart your terminal, and you should now be able to open Visual Studio Code directly from your terminal using this command

`% code .`
This will open the current folder in your Visual Studio Code. That’s it!

Resources:

[Visual Studio Code for Mac](https://code.visualstudio.com/docs/setup/mac)
Add DS-U02P Webcam to Debian 12
Tags: dsu02p, webcam, debian, firmware
Published: 2024-06-03 15:24:20

So, I reinstalled my personal computer recently with Debian 12 and it runs smoothly and as expected. Then, I try to connect my **DS-U02P** web camera from **Hikvision**. I tested it using Cheese but it became unstable and I could not get it to work no matter what.

I also tried several ways to test the webcam and still facing the same issues. Then, I try to find out if there is firmware for the web camera out there. After getting the firmware downloaded. I found the wiki page for Debian 12 to install the firmware.

Based on the document, I need the `/usr/local/lib/firmware` folder and put my downloaded firmware file (the one with `.bin` extension) there.

Since I did not have the folder yet, then I needed to create it. After that, I copy the firmware file to that folder and run the below command.

`$ sudo update-initramfs -c -k all`

After the command is completed. I tested the web camera and it works as expected. To make sure, then I restarted my machine and did the test again. the web camera now worked as expected.

Hopefully, you found this post useful. Cheers!
Meme Monday
Tags: ai, memes, techmemes, technology
Published: 2024-06-03 15:24:05

**Say That Again I Dare You
**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/we8wh4fwgxsqf0s3462b.jpg)
[Source](https://imgflip.com/i/85l0k2)
Get Random Documents from Firestore
Tags: firebase, nosql, algorithms, beginners
Published: 2024-06-03 15:22:05

When working with Firestore, retrieving random elements poses a challenge because Firestore does not natively support queries for fetching documents randomly.

In addition, Firestore does not support offset queries, so it is not possible to generate a random number on the client side and then fetch documents randomly by specifying an index.

**Basic Solution**

- Fetch all documents in the collection, shuffle the array, and then select elements either from the beginning or at random indexes.

This method is quite simple. However, if there are a large number of documents, it can be quite costly and the processing speed may become slow.

**Another Approach: Changing the Way to Manage Data**

This is a solution that only loads the necessary records.

1. Configure a property within each document that has a number assigned randomly.
2. When fetching documents, use an `orderBy` query targeting this random number property. By combining this with a `limit` query, it is possible to fetch a specified number of documents or even the entire collection.
3. After fetching the documents, assign a new random number to the random number property of each document. This step ensures that the collection remains shuffled reproducibly.

![firestore console](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2uvd4gp4tdbflvg7vh8z.png)

**Bottleneck**

This method requires a significant number of write operations. Since Firestore incurs higher costs for write operations compared to read or delete operations, frequent fetching can become costly.

See also: https://firebase.google.com/docs/firestore/pricing

**Finally**

I was pleasantly surprised when I first discovered this method. Despite Firestore not supplying direct queries for fetching random documents, this creative solution offers an excellent workaround.
Install NerdFont (or any fonts) using the command line in Debian (or other Linux)
Tags: nerdfont, linux, cli, lazyvim
Published: 2024-06-03 15:22:04

I need to install the [NerdFonts](https://www.nerdfonts.com/) since I have been installing [LazyVim](https://www.lazyvim.org/) recently. After doing some research, I found that the convenient way to install it was using the command line. Here are the steps.

1. Go to the NerdFonts website in the [download](https://www.nerdfonts.com/font-downloads) section, then choose the font that you want to install.
2. Right-click on the download button and Copy the link address menu (depends on what browser you are using, the point is to get the font link)
3. Open your terminal
4. Copy this command then update the font link with the link that you just copied.
```
wget -P ~/.local/share/fonts https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/JetBrainsMono.zip \
&& cd ~/.local/share/fonts \
&& unzip JetBrainsMono.zip \
&& rm JetBrainsMono.zip \
&& fc-cache -fv
```

And that’s it. It will download and install the fonts for you.

Then, you can reload your LazyVim to see the effect.

I hope you found this post useful. Cheers!
Essential Insights from Rapyd’s Latest Report Every Payment Industry Developer Must Know
Tags: ai, payments, fintech, rapydreports
Published: 2024-06-03 15:13:31

![Key takeaways from Rapyd develoeprs need to know](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xyynd26oepwad53gilbv.jpg)


## Key Points for Developers:

- **Payment Delays:** 73% of businesses in high-opportunity industries face delays of 2-15 days, which impacts cash flow.

- **Priority on Speed & Convenience:** 38% of businesses prioritize fast and easy transfers. This is crucial for maintaining smooth operations.

- **Real-Time Payments (RTP):** There’s a growing shift towards RTP for faster settlements and improved cash flow. Consider integrating RTP solutions to enhance payment processes.

- **AI in Fraud Prevention:** AI is increasingly used to combat sophisticated fraud tactics. Implementing AI can help ensure secure and efficient transactions.
Deploy Go Application using Docker Compose Replicas and Nginx
Tags: docker, go, nginx, deploy
Published: 2024-06-03 15:12:19

Deploying the Go application using docker and docker-compose with Nginx load balancer can be achieved using the below strategy. This is not the only one on how to do the task, but hopefully, you can find this useful.

## Project Structure

My Go application project structure looks like this:

```
/go-app
|-- cmd
|-- internal <-- the app source code
|-- nginx
   |-- nginx.conf
|-- config.json <-- my config file for Viper
|-- docker-compose.yaml
|-- Dockerfile
|-- go.mod
|-- go.sum
|-- main.go
```

## Nginx Configuration

```
user nginx;
# can handle 1000 concurrent connections
events {
    worker_connections   1000;
}
# forwards http requests
http {
        # http server
        server {
              # listens the requests coming on port 8080
              listen 80;
              access_log  off;
              proxy_request_buffering off;
              proxy_buffering off;
              # / means all the requests have to be forwarded to api service
              location / {
                # resolves the IP of api using Docker internal DNS
                proxy_pass http://rest-api:3000;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
              }
        }
}
```

## Dockerfile

```yaml
FROM golang:1.22-alpine AS builder

# working directory (/build).
WORKDIR /build

# dependency using go mod.
COPY go.mod go.sum ./
RUN go mod download

# Copy the code
COPY . .

# environment variables for docker image
# and build the server.
ENV CGO_ENABLED=0 GOOS=linux GOARCH=amd64
RUN apk add --no-cache dumb-init
RUN go build -ldflags="-s -w" -o apiserver ./main.go

FROM alpine:latest

# working directory (/build).
WORKDIR /

# Copy the Pre-built binary file from the previous stage.
COPY --from=builder ["/usr/bin/dumb-init", "/usr/bin/dumb-init"]
COPY --from=builder ["/build/apiserver", "/"]
COPY --from=builder ["/build/config.json", "/config.json"]

# Export necessary port.
EXPOSE 3000

ENTRYPOINT ["/usr/bin/dumb-init", "--"]
CMD ["/apiserver"]
```

## Docker Compose

```yaml
services:
  # service name
  rest-api:
    # Dockerfile location
    build: "."
    # Exposes the port 3000 for internal
    ports:
      - "3000"
    # always restart when the service went down
    restart: always
    # number of replicas
    deploy:
      replicas: 2
  # nginx load balancer
  nginx:
    # latest stable alpine nginx image
    image: nginx:stable-alpine
    # nginx configuration
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    # start nginx after the service up successfully
    depends_on:
      - rest-api
    # map the nginx port 80 to docker port 3000
    ports:
      - "3000:80"
```

That’s it, now we can test the docker using `docker compose build` then continue with `docker compose up -d` .

Hope this can help someone out there. happy coding!
VS Code shortcuts
Published: 2024-06-03 15:11:46

**%**  bash prompt
**Ctrl + C** cancel any currently running terminal
**pry or rails console** for interacting with a database
**q** to quit
**cmd + K** clear terminal
**cmd + Shift + P** Command Palette(fuzzy search)
**cmd + P** quick open file

**Option + Cmd + J** hard refresh in Chrome
**ctrl + A/Cmd + A** Jump back to the beginning of the line
**Ctrl + E** ed of the line
**Cmd + F** find(and replace)
**Cmd + Shift + F** find (and replace) Global
**Cmd + D** Find next selection
**Shift + Option + Down** Duplicate lines