teleren/devto huggingface dataset:
What Would Be The Impact of 28.7 Million Software Developers' Striking In 2024?
Tags: career, futureofwork, tech, discuss
Published: 2024-02-25 19:23:17

According to [Statista](https://www.statista.com/statistics/627312/worldwide-developer-population/), there are roughly 28.7 million software developers in the world today. If we use the [Pareto principle](https://www.simplypsychology.org/pareto-principle.html), I'm confident that less than 100 of those 28.7 million developers contributed to 80% of the code that is in use today. 
So what would happen if all of these developers started striking in 2024?

## Immediate Disruptions

A strike by software developers would result in immediate and tangible disruptions across various sectors. Most directly, the tech industry that relies on developers for product development, updates, and maintenance would face significant operational and financial losses.

## Economic Impact

A prolonged developers' strike could, therefore, have a domino effect, disrupting supply chains, financial markets, and even critical infrastructure like the Internet. This could potentially lead to tech giants like Google, Facebook, Amazon, Netflix, and Microsoft going bankrupt. 

## Innovation and Competition

In the medium to long term, a strike could significantly impact the pace of innovation. The delay in the development of new technologies and the potential loss of momentum in research and development initiatives could slow down the introduction of breakthrough innovations.

**Perhaps the most profound impact of a developer's strike would prompt society to reflect on our reliance on technology and the individuals who build it.**

To be honest with you, none of these guys are among the top 1% richest people in the world. So why don't you start paying us... 😉
Ruby: Array Class
Tags: ruby, programming, beginners, coding
Published: 2024-02-25 19:15:01

The Array class is a fundamental data structure used to store and manipulate collections of objects. Arrays in Ruby are ordered, indexed collections of objects, meaning the elements are arranged in a specific order and can be accessed using their position, or index, within the array. The Array class provides a wide range of methods for adding, removing, accessing, and manipulating elements within an array.

Here's an overview of the Array class in Ruby:

### Creating Arrays

You can create arrays in Ruby using literal notation or constructor methods.

**Literal Notation:** Enclosing comma-separated values within square brackets ([]).
```
my_array = [1, 2, 3, 4, 5]
```

**Using Constructor:** Calling the Array.new constructor method and passing initial values as arguments.
```
my_array = Array.new(3, "hello")
```

### Accessing Elements
You can access elements within an array using square brackets ([]) notation, specifying the index of the element you want to access.
```
my_array = [10, 20, 30, 40, 50]
puts my_array[0] # Output: 10
```

### Array Methods

The Array class provides a variety of methods for working with arrays. Some common methods include:

**Adding and Removing Elements**
**Push:** Add elements to the end or beginning of an array.
**Pop:** Remove elements from the end or beginning of an array.

**Accessing and Modifying Elements**
**[], []=:** Access and modify elements at specific indices.
**at, fetch:** Access elements by index, with bounds checking.
**slice, slice!:** Extract or remove a portion of an array.

**Iterating over Elements**
**each, map, select:** Iterate over elements in the array.
**each_with_index:** Iterate over elements along with their indices.
**cycle:** Repeatedly iterate over elements in the array.

**Searching and Sorting**
**include?, index:** Check if an element exists in the array and find its index.
**sort, reverse, shuffle:** Sort, reverse, or shuffle the elements in the array.
**min, max:** Find the minimum or maximum element in the array.

**Array Properties**
**Size:** You can determine the size of an array using the size or length methods.
**Empty?:** Check if an array is empty using the empty? method.
**Equality:** Compare arrays for equality using the == operator.

### Multi-dimensional Arrays
Ruby's Array class also supports multi-dimensional arrays, allowing you to create arrays of arrays.
```
multi_array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
puts multi_array[1][2] # Output: 6
```

**Iterating Over Multi-dimensional Arrays**
You can iterate over multi-dimensional arrays using nested loops or methods like each.
```
multi_array.each do |row|
  row.each do |element|
    puts element
  end
end
```

**Using Array.new Constructor**
```
multi_array = Array.new(3) { Array.new(3, 0) }
```

**Using Nested Loops**
```
size = 3
multi_array = []
size.times do
  inner_array = []
  size.times do
    inner_array << 0
  end
  multi_array << inner_array
end
```

Happy coding!

theGlamTechie
How To Recover Stolen Bitcoin: Cybernet Surveillance
Published: 2024-02-25 15:40:19

Losing your hard-earned crypto is like watching your favorite character die in Game of Thrones – it's heartbreaking. But fear not, for there are heroes in the digital realm, and one of them is Cybernet Surveillance. Let's delve into a case study to see how they worked their magic.
Our brave protagonist, let's call them Crypto Carl, found themselves in a sticky situation. They had accidentally sent their crypto to the wrong wallet address and were left feeling helpless. Cybernet Surveillance – the Gandalf of the internet – known for their relentless efforts in retrieving lost crypto. Cybernet Surveillance's journey to save Crypto Carl's digital treasure was filled with determination and expertise. They first conducted a thorough investigation to gather all the necessary information about the transaction, including timestamps, wallet addresses, and any communication related to the incident.
Using their vast knowledge of crypto systems and blockchain technology, Cybernet Surveillance traced the path of the lost crypto. They collaborated with blockchain experts, employed cutting-edge tools, and employed some top-notch wizardry to navigate the complex web of transactions. Throughout the process, Cybernet Surveillance maintained constant communication with Crypto Carl, providing updates and reassurance. They left no stone unturned in their quest to bring back the lost crypto. 
Finally, the day of triumph arrived. Cybernet Surveillance successfully recovered Crypto Carl's lost crypto and returned it to its rightful owner. With their diligent efforts, they exemplified the true spirit of heroism in the digital age.
Crypto Carl couldn't contain their gratitude, expressing their sheer relief and astonishment at Cybernet Surveillance's exceptional service. They now knew firsthand the importance of trusting experts like Cybernet Surveillance to handle such delicate matters.                                                                                                       Reach Cybernet Surveillance on: email: cybernetsurveillance or through their website: https://cybernetsurveillance.site/

Best Wishes.
Set up MariaDB on macOS (quick)
Tags: mariadb
Published: 2024-02-25 18:46:10

## 1. Installing MariaDB Server
Using Homebrew, MariaDB Server can be installed easily:

```bash
brew install mariadb
```

## 2. Start the server
```bash
mysql.server start
```

> You can also configure auto-start using Homebrew's services functionality:
> 
> ```bash
> brew services start mariadb
> ```

## 3. Login to the server
After the server is started, you can log in with the user `mysql` or as root `sudo mysql -u root`


## 4. Configure a database
### Create a database
After logging into the server with the command above, execute


```bash
mysql> CREATE DATABASE your_database_name;
```

Note, that the ; is mandatory!

### Create a user
First create the user for localhost:

```bash
mysql> CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'Password123!';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'localhost'
-> WITH GRANT OPTION;
```

Next, create the user for an arbitrary server:

```bash
mysql> CREATE USER 'app_user'@'%' IDENTIFIED BY 'Password123!';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%'
-> WITH GRANT OPTION;
```

> **Good to know**
> If any of the specified accounts, or any permissions for the specified accounts, already exist, then the server returns ERROR 1396 (HY000). If an error occurs, CREATE USER will still create the accounts that do not result in an error. Only one error is produced for all users which have not been created:
> 
> ```
> ERROR 1396 (HY000): Operation CREATE USER failed for 'u1'@'%','u2'@'%'
> ```
---

After completing those steps, the database is ready and should also be managable using e.g. Datagrip.



---
Related links: https://mariadb.com/kb/en/installing-mariadb-on-macos-using-homebrew/
Using tomllib for Configuration in Python
Tags: python, beginners, programming
Published: 2024-02-25 18:14:36

# Introduction

This chapter introduces the `tomllib` library, a built-in Python module for parsing TOML (Tom's Obvious Minimal Language) files. TOML is a human-readable configuration file format gaining popularity due to its simplicity and ease of use. `tomllib` allows developers to easily read and access configuration data stored in TOML files, making it ideal for managing server configurations in Python applications.

# Topics:

1. Creating a TOML File with toml Library.
2. Reading a TOML File with tomllib.
3. Conclusion.

# Creating a TOML File with toml Library

While `tomllib` itself doesn't offer functionalities for writing TOML files, we can leverage the `toml` library for this purpose (the library can be found [here](https://pypi.org/project/toml/)). Here's an example:

```python
import toml

# Define server configuration data as a dictionary
server_config = {
    "host": "localhost",
    "port": 8080,
    "database": {
        "name": "my_database",
        "user": "admin",
        "password": "secret"
    }
}

# Write the dictionary to a TOML file
with open(file="server.toml", mode="w") as f:
    toml.dump(server_config, f)
```

The above code creates a file named `server.toml` with the following content:

Output:

```toml
host = "localhost"
port = 8080

[database]
name = "my_database"
user = "admin"
password = "secret"
```

# Reading a TOML File with tomllib

Now, let's use `tomllib` to read the configuration data from the created TOML file:

```python
import tomllib

# Read the TOML file
with open(file="server.toml", mode="rb") as f:
    config = tomllib.load(f)

# Access configuration values
print(f"Server host: {config['host']}")
print(f"Server port: {config['port']}")
print(f"Database name: {config['database']['name']}")
```

Output:

```
Server host: localhost
Server port: 8080
Database name: my_database
```

This code successfully reads the TOML file and accesses the configuration values using dictionary-like syntax.

Conclusion:

By combining `toml` for writing and `tomllib` for reading, we can effectively manage server configurations in Python applications using TOML files. This approach offers a clean separation between configuration data and code, improving maintainability and readability. Remember, while `tomllib` is included in Python 3.11 onwards, you might need to install the `toml` library using `pip install toml`.
RECLAIM YOUR STOLEN BITCOIN ASSETS WITH ADWARE RECOVERY SPECIALIST
Published: 2024-02-25 18:02:55

Website: www.adwarerecoveryspecialist.expert

Email: Adwarerecoveryspecialist@auctioneer. net

WhatsApp: +1 (571) 541-2918





The prerequisite for solid service providers to recover bitcoin has evolved in tandem with the rise in prominence of cryptocurrencies. To cope with the technicalities of the always shifting world of digital currencies and recover their missing cash, individuals require an independent resource like ADWARE RECOVERY SPECIALIST. Competent cryptocurrency recovery services will become more and more necessary as more people become interested in the bitcoin world. My most adverse encounter arose a few weeks ago after I inadvertently lost access to my cryptocurrency holdings, which included $108,000 in Bitcoin and an additional $18,000 in Ethereum. preceding an old acquaintance of mine told me about ADWARE RECOVERY SPECIALIST, an esteemed well-established structures that provides the best expert service for crypto recovery. Cryptocurrency recovery has become a critical aspect of the digital landscape, with the increasing adoption of digital assets and the rise of sophisticated cyber threats. As individuals and organizations delve deeper into the world of cryptocurrencies, the need for reliable and effective recovery services has never been more paramount. ADWARE RECOVERY SPECIALIST stands at the forefront of this evolving industry, harnessing emerging technologies to retrieve lost or stolen crypto assets. Similar to that mysterious underwear that vanishes in the laundry, cryptocurrency is your hard-earned digital money. In the realm of decentralized currencies, bitcoin recovery services provide a ray of hope when transactions go wrong or assets disappear into the digital abyss. From the dark ages of brute-force hacking to the Renaissance of sophisticated blockchain analysis, the evolution of cryptocurrency recovery methods is a tale of innovation and perseverance. ADWARE RECOVERY SPECIALIST has been at the forefront, adapting to the changing landscape of digital currencies with finesse. I'm sincerely appreciative of ADWARE RECOVERY SPECIALIST assistance in getting my money back and restoring my lost cryptocurrency. Before learning about ADWARE RECOVERY SPECIALIST, I could not have guessed that getting it back was even conceivable. They can be contacted using the details provided above:
อินเทอร์เน็ตอาร์ไคฟ์ (Internet Archive)
Tags: learning, web
Published: 2024-02-25 17:32:16




![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g27vh5pee3ylgyglt2yg.jpg)

อินเทอร์เน็ตอาร์ไคฟ์ (Internet Archive) เป็นห้องสมุดดิจิทัลที่เก็บข้อมูลออนไลน์ไว้มากมาย โดยรวมถึง:

เว็บไซต์: เก็บสำเนาเว็บไซต์เก่าแก่และเว็บไซต์ปัจจุบัน ช่วยให้นักวิจัย นักประวัติศาสตร์ และบุคคลทั่วไปสามารถเข้าถึงข้อมูลในอดีตได้
หนังสือ: เก็บหนังสืออิเล็กทรอนิกส์ในรูปแบบต่างๆ เช่น PDF, EPUB, และ DAISY
ซอฟต์แวร์: เก็บซอฟต์แวร์รุ่นเก่าและรุ่นใหม่ ช่วยให้นักพัฒนาซอฟต์แวร์และผู้ใช้ทั่วไปสามารถเข้าถึงซอฟต์แวร์ที่หายากได้
เพลง: เก็บเพลงในรูปแบบต่างๆ เช่น MP3, OGG, และ FLAC
วิดีโอ: เก็บวิดีโอในรูปแบบต่างๆ เช่น MP4, OGV, และ MOV
รูปภาพ: เก็บรูปภาพในรูปแบบต่างๆ เช่น JPG, PNG, และ GIF
ความเป็นมา:

อินเทอร์เน็ตอาร์ไคฟ์ ก่อตั้งขึ้นในปี 1996 โดย Brewster Kahle  เป้าหมายหลักคือเพื่อเก็บรักษาข้อมูลออนไลน์ไว้ให้คนรุ่นหลังสามารถเข้าถึงได้  อินเทอร์เน็ตอาร์ไคฟ์   กลายเป็นแหล่งข้อมูลสำคัญสำหรับนักวิจัย นักประวัติศาสตร์ นักพัฒนาซอฟต์แวร์ นักเรียน ครู และบุคคลทั่วไป

สถานที่ตั้ง:

อินเทอร์เน็ตอาร์ไคฟ์   ตั้งอยู่ในเมืองซานฟรานซิสโก รัฐแคลิฟอร์เนีย ประเทศสหรัฐอเมริกา

สามารถฝากไฟล์:

อินเทอร์เน็ตอาร์ไคฟ์   ช่วยให้ผู้ใช้สามารถฝากไฟล์ต่างๆ ได้ฟรี  ผู้ใช้สามารถสร้างบัญชีและอัปโหลดไฟล์ผ่านเว็บอินเทอร์เฟซ  อินเทอร์เน็ตอาร์ไคฟ์   รองรับไฟล์หลายประเภท  ผู้ใช้สามารถดูรายการประเภทไฟล์ที่รองรับได้ที่เว็บไซต์ของอินเทอร์เน็ตอาร์ไคฟ์



อินเทอร์เน็ตอาร์ไคฟ์   เป็นห้องสมุดดิจิทัลที่เก็บข้อมูลออนไลน์ไว้มากมาย   ผู้ใช้สามารถเข้าถึงข้อมูลเหล่านี้ได้ฟรี   อินเทอร์เน็ตอาร์ไคฟ์   ช่วยให้ผู้ใช้สามารถฝากไฟล์ต่างๆ ได้ฟรี   อินเทอร์เน็ตอาร์ไคฟ์   เป็นแหล่งข้อมูลสำคัญสำหรับนักวิจัย นักประวัติศาสตร์ นักพัฒนาซอฟต์แวร์ นักเรียน ครู และบุคคลทั่วไป
Gemini is hot garbage for writing code.
Published: 2024-02-25 17:13:28

The fact that Google can put that LLM out and even hint at it being able to write code is making us as a tech industry lose credibility. 

Look at these prompts and how Gemini isn't doing anything but stating the obvious. 

"
profile picture
For this:
"
{
    "midDay": [],
    "afternoon": [],
    "midMorning": [
        "Today, we had more issues with the lift gate and we were 25 minutes late arriving to the post office and 20 minutes late, finishing the route. "
    ],
    "earlyMorning": []
}

Me:
"
And two image urls to midMorning which will be accessed via midMorning["imgURL"'][0]
The variables will be set using setState in .tsx. 
"
Gemini:
"
I'd be glad to help you with that! However, I need some clarification to provide the best possible assistance:

Clarification Needed:

    Purpose of the Data: What is the overall goal of storing this information about delivery delays in different timeframes? Is it for tracking performance, reporting to clients, or something else? Understanding the purpose will help tailor the solution accordingly.

"
Me:
"
"   const [summaryObject, setSummaryObject] = useState<ObjectSummary | null>(null); // Initialize with null

                       <textarea
                           className="text-gray-900"
                           id="newSummaryInputID"
                           name="newSummaryInputName"
                           value={summaryObject && summaryObject.earlyMorning} // Check if routeSummary is not null before accessing routeSummary.routeSummary
                           onChange={(e) => {
                               // Ensure setRouteSummary is updating the state correctly
                               setSummaryObject((prevSummaryObject: ObjectSummary | null) => ({
                                   ...prevSummaryObject,
                                   earlyMorning: [e.target.value],
                                   midMorning: prevSummaryObject?.midMorning ?? [], // Ensure midMorning is always an array
                                   midDay: prevSummaryObject?.midDay ?? [], // Ensure midDay is always an array
                                   afternoon: prevSummaryObject?.afternoon ?? [], // Ensure afternoon is always an array
                               }));
                           }}
                       />

"


Gemini:
"
The provided code snippet shows how to manage a state object named summaryObject using the useState hook in React. It also demonstrates the usage of a controlled textarea component. While I don't have the full context of your application, I can offer some analysis and suggestions based on the provided code:

"

All that crap and not a single line of code wrote, meanwhile OLD ChatGPT is offering way better suggestions. 
I asked ChatGPT the same thing and it provided a useful interface among many other USEFUL things.
The interface:
"
interface ObjectSummary {
    midDay: string[];
    afternoon: string[];
    midMorning: { text: string; imgURL?: string }[];
    earlyMorning: string[];
}

"
HIGHLY RECOGNIZED CRYPTO RECOVERY COMPANY-CODER CYBER SERVICES
Published: 2024-02-25 17:11:44

Looks like you misplaced your bitcoin. You could relate it to losing your favorite pair of feet, only with a lot of minuses and possibly heartache. You can lose your precious digital currency for a variety of reasons, including falling for scammers. Don't panic, though; assistance is always available to those who desire it. When I say "grit," I mean the devoted sorcerers on the recovery team who have pledged their lives to digging up your lost bitcoin from the bottom of the universe. I lost almost $110,000 on a fraudulent cryptocurrency investment trading site a few months ago as a result of a horrible error I made. They misled me into believing that I would make a 10% daily return by investing on their platform, but sadly, this was a scam, and my money was lost. We've all experienced the disheartening feeling that comes when we realize our priceless bitcoins are gone. Bitcoin losses, no matter what the reason, might be catastrophic. Bitcoin recovery services, such as Coder Cyber Services, can be a huge help in this scenario. By helping people recover their lost or stolen digital assets, they provide victims a ray of hope. It can be difficult and stressful to retrieve bitcoins that have been lost or stolen. Because bitcoin is anonymous, ledger has no authority, and cryptocurrency transactions are complicated, recovering stolen money can be challenging. If you lack the necessary information and resources, it's like attempting to find a needle in a haystack. Coder Cyber Services is renowned for its advanced data recovery services, offering solutions for businesses and individuals facing data loss situations. With a focus on security and privacy, Coder Cyber Services ensures that the recovery processes safeguard sensitive information while retrieving lost data effectively.  Coder Cyber Services employs a variety of encryption methods, including symmetric and asymmetric encryption, to secure recovered data effectively. By utilizing strong encryption algorithms and key management practices, Coder Cyber Services guarantees that client information remains confidential and protected from prying eyes. In the unlikely event of a bitcoin loss, Coder Cyber Services has established incident response plans to address the situation swiftly and effectively. Their team is prepared to spring into action to contain the breach and minimize any potential damage. To get intouch with them you can email  codercyberservices@tech-center.com .Additionally, Coder Cyber Services has robust data recovery strategies in place to restore any compromised data and get you back up and running as quickly as possible. In conclusion, Coder Cyber Services comprehensive approach to security and privacy in recovery processes sets a high standard for speedy recovery. By continuously evolving and adapting to emerging cybersecurity threats, Coder Cyber Services remains at the forefront of safeguarding lost bitcoin for its clients. To get all the help you need visit their website  https://codercyberservices/.
Thank you
Avoid `sudo n`
Published: 2024-02-25 17:04:48

_**Note:** It's acutally written in [README.md](https://github.com/tj/n?tab=readme-ov-file#installation), but if you are lazy like me who skips it, let me point it out for you._

---

If you found it troublesome to have to `sudo` every time to switch Node.js versions, then you are configuring [n](https://github.com/tj/n) incorrectly _(or, you are not configuring it at all)._

I assume you have just got your new Mac and simply _copy-and-paste_ installation commands from docs, so I assume you are using `zsh` and `Homebrew`.

_Instead of using `chown` for `/usr/local/n` (and associated folders; which is safe to do), I choose to set `N_PREFIX` in `.zshrc` based on my preference to keep configs in one place (and with comments to remind me)._

1. Make `.n` folder under `$HOME` (your home directory) to store `n` installations:
    ```zsh
    mkdir -p ~/.n/bin
    ```
    [ ]( )

1. Add `N_PREFIX` to `.zshrc`:
    ```zsh
    echo 'export N_PREFIX="$HOME/.n"' >> ~/.zshrc
    ```
    [ ]( )

1. Add it to `$PATH` too:
    ```zsh
    echo 'export PATH="$HOME/.n/bin:$PATH"' >> ~/.zshrc
    ```
    [ ]( )

1. Load zsh config to current shell:
    ```zsh
    source ~/.zshrc
    ```

1. Install `n` using Homebrew:
    ```zsh
    brew install n
    ```
    [ ]( )

1. Install Node.js (LTS):
    ```zsh
    n lts
    ```
    [ ]( )



🎉 Walla! Now you can `n` ~~without `sudo`~~. _No thank you, no thank you._

By the way, if you have an existing system that you would like to configure, you may run `sudo n uninstall` to remove `/usr/local/n` (and associated files). But do it first before setting `N_PREFIX`.

---

_Cover image by [Dim Gunger](https://unsplash.com/@gundim) on  [Unsplash](https://unsplash.com/photos/a-colorful-background-with-lines-and-curves-Am9Se-CMNvM)._