teleren/devto huggingface dataset:
Types of Programming Competitions: An intro for New Programmers
Published: 2024-02-10 17:53:58

Programming competitions are fantastic opportunities for young programmers to showcase their skills, learn new concepts, and connect with others. There are many different types of competitions available, each with its unique appeal and challenges. They come in different formats, on different topics, and with varying degrees of requirements. 

In this article, we'll look into the four that seem to be the most common for new programmers.

**1) Algorithmic Problem-Solving Contests:** These competitions focus on solving programming problems with accurate outputs based on given inputs.
They are commonly divided into two broad categories, Short (2-3 hours) and Long (ICPC, NCPC, etc) formats based on time or in Team-based (usually Long contests) and individual (usually Short contests).

- Essential Skills:
     * Data structures and algorithms
     * Programming languages (C, C++, STL)

Practice Platforms to hone your skills:
- Codeforces
- Codechef
- HackerRank
- Hackerearth
- LightOJ
- SPOJ

**2) CTF (Capture the Flag):**

- Emphasizes cybersecurity expertise.
- Various formats: Jeopardy, Attack & Defense
- Team-based competitions.
- Essential Skills:
    * System vulnerabilities
    * Networking
    * Cryptography

**3) Hackathons:** These are competitions focused on developing app/website/software prototypes to address real-world problems. You not only build the solution but usually also pitch your solution for a real-world problem. Some of these even require you to consider the business aspect of your solutions.

Essential Skills:
- Programming
- Design
- Presentation
- Video editing
- Writing

**4) Machine Learning/AI Contests:** These types of competitions require you to create machine learning models using provided datasets or code AI bots/agents to perform specific tasks. Although they have a relatively high requirement for entry they are great for people who love AI and Machine learning.

Essential Skills:
- Machine learning
- Data analysis
- Python, R, or any programming language with good tools for machine learning, data science libraries.

Learning & Practice:
- Kaggle: The go-to platform
- Exploring data sets
- Codingames

Different people love different types of programming contests. However, algorithmic contests are the most dominant one that doesn't mean there aren't any other contests of value or ones that have fun. What's important is to explore as many as you can and find the ones you enjoy the most or the ones that align with your personal goals.

Let me know if you know of other interesting formats or have any queries.

[Side note: This is mostly for students who haven't yet graduated or are completely new to programming. Many more niche competitions have not been included for that reason. But you if think there's some way to improve this post do let me know. As a new writer, I appreciate your feedback]
Eat That Frog! by Brian Tracy: Summary
Tags: productivity, summary, learning, books
Published: 2024-02-10 17:48:58


Imagine your to-do list is a pond filled with frogs. Not cute, cuddly frogs, but big, slimy, daunting ones that represent your most important but least exciting tasks. _Yuck!_

The book _**"Eat That Frog!"**_ says the key to success is tackling the biggest, ugliest _"frog"_ first thing in the morning. Why? Because once you conquer that beast, the rest of your day feels like a breeze.

_Think of it this way:_ if you have two frogs to eat, would you rather start with the smallest one and end on a bad note? Or get the grossest one out of the way and feel like a rockstar for the rest of the day? Exactly!

_Here's the fun part:_

- **Identify your froggy friends:** Think about your goals and what tasks will move you closer to them. What makes you procrastinate the most? That's probably your biggest frog.

- **Don't be a tadpole:** Start your day strong, and gobble down that frog as soon as you can. Imagine the satisfaction of checking off your most important task before even having your coffee! ☕️

- **Break down the slimy beast:** Big frogs can be scary. Chop them into smaller, more manageable _"tadpole"_ tasks to make them less intimidating.

- **Become a productivity ninja:** Use tools, apps, and timers to stay focused and avoid distractions. Treat your _"frog-eating"_ time like a superhero training session! ‍♀️‍♂️

- **Celebrate your amphibian victories:** Completing your _"frog"_ deserves a reward! Did someone say ice cream break?

Remember, this book is your guide to becoming a productivity powerhouse. **Eat those frogs, conquer your goals, and feel like a champion every day!**
Revolutionizing JavaScript Form Validation: Introducing FavJS
Tags: javascript, formvalidation, opensource, collaboration
Published: 2024-02-10 17:37:26

In the world of web development, form validation is a crucial aspect of creating user-friendly and secure applications. As developers, we're constantly searching for tools that simplify our workflow and enhance our productivity. But what happens when the perfect tool doesn't exist? You create it yourself.

Introducing FavJS - a lightweight JavaScript form validation package born out of necessity and a passion for innovation. As a former PHP developer transitioning to JavaScript, I found myself longing for a validation solution similar to Davide Cesarano's Validation library for PHP. Unable to find one that met my needs, I decided to build it myself.

FavJS isn't about reinventing the wheel; it's about refining it. While it may not boast the extensive features of other validation libraries, FavJS is crafted with simplicity and effectiveness in mind. With basic rule validation and customizable error messages, FavJS empowers developers to handle form validation effortlessly in their JavaScript applications.

But here's where it gets exciting - I want your input. FavJS is a collaborative project, and your feedback is crucial in shaping its future. Whether you're a seasoned JavaScript developer or just starting out, your suggestions for improvements are invaluable. Let's work together to make FavJS the go-to choice for JavaScript form validation.

So, what can you expect from FavJS?
- Simple and intuitive syntax that makes form validation a breeze.
- Basic rule validation out of the box, with room for customization to suit your specific needs.
- A lightweight and dependency-free solution that won't weigh down your projects.
- An open invitation to contribute your ideas and suggestions for improving FavJS.

Ready to join the revolution? Check out FavJS on GitHub and become a part of the journey to revolutionize JavaScript form validation: https://github.com/bhaswanth53/favjs

Let's shape the future of form validation together with FavJS. Your input matters. Let's make it happen. 💡
Do you know DoctrineListener?
Tags: symfony, doctrine, webdev
Published: 2024-02-10 17:30:30

Imagine you had to monitor an entity to log when it was created or updated

Create a Note entity

```php
<?php

namespace App\Entity;

use App\Repository\NoteRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity(repositoryClass: NoteRepository::class)]
class Note
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column]
    private ?int $id = null;

    #[ORM\Column(type: Types::TEXT)]
    private ?string $content = null;

    #[ORM\Column(length: 255)]
    private ?string $log = null;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getContent(): ?string
    {
        return $this->content;
    }

    public function setContent(string $content): static
    {
        $this->content = $content;

        return $this;
    }

    public function getLog(): ?string
    {
        return $this->log;
    }

    public function setLog(string $log): static
    {
        $this->log = $log;

        return $this;
    }
}
```

Then you can create a DoctrineListener to log when its created (persist) or updated

```php
<?php

namespace App\DoctrineListener;

use App\Entity\Conference;
use App\Entity\Note;
use Doctrine\Bundle\DoctrineBundle\Attribute\AsEntityListener;
use Doctrine\Persistence\Event\LifecycleEventArgs;
use Doctrine\ORM\Events;


#[AsEntityListener(event: Events::prePersist, entity: Note::class)]
#[AsEntityListener(event: Events::preUpdate, entity: Note::class)]
class NoteEntityListener
{
    public function prePersist(Note $note, LifecycleEventArgs $event)
    {
        $note->setLog('This is from prePersist');
    }

    public function preUpdate(Note $note, LifecycleEventArgs $event)
    {
        $note->setLog('This is from preUpdate');
    }
}
```

That's all ! 
The doctrinelistener will be called at each persist or update.

Here is the complete list of events:

- preRemove
- postRemove
- prePersist
- postPersist
- preUpdate
- postUpdate
- postLoad
- preFlush
- onFlush
- postFlush
- onClear   

You have a demo at this address https://github.com/aratinau/api-platform-doctrine
Unveiling the Power of Cloud Computing: Characteristics, Types, Advantages , and Problem-Solving Capabilities!
Tags: cloudcomputing, aws, cloudpractitioner
Published: 2024-02-10 17:29:53

**Cloud computing** refers to the delivery of computing services—including servers, storage, databases, networking, software, and more—over the internet ("the cloud") to offer faster innovation, flexible resources, and economies of scale. Rather than owning and maintaining physical data centers and servers, cloud computing allows individuals and organizations to access computing resources on a pay-as-you-go basis, scaling up or down as needed.

**_Characteristics of Cloud Computing :_**
1) On demand self service.
2) Broad network access.
3) Multi-tenancy and resource pooling.
4) Rapid elasticity and scalability
5) Measured Service.

**_There are different types of cloud computing services:_**

_Infrastructure as a Service (IaaS):_ Offers virtualized computing resources over the internet, providing virtual machines, storage, and networking.

_Platform as a Service (PaaS):_ Provides a platform allowing customers to develop, run, and manage applications without dealing with infrastructure management.

_Software as a Service (SaaS):_ Delivers software applications over the internet on a subscription basis, eliminating the need for users to install and maintain software locally.

**_Advantages of Cloud Computing:_**
1) Shift from CAPEX to OPEX.
2) Cloud computing allows resources to be scaled up or down based on demand. This means that organizations can easily adjust their computing resources to accommodate changes in workload without having to invest in and manage physical infrastructure.
3) Cloud computing follows a pay-as-you-go model, where users only pay for the resources they consume. This eliminates the need for large upfront investments in hardware and allows organizations to optimize their spending based on actual usage.
4) Increased speed and agility.
5) Stop spending money running & maintaining data centers.
6) Go global in minutes.

**_Problems solved by the Cloud :_**
1)Flexibility 2)Cost effectiveness 3)Scalability 4)Elasticity 5) High-availability & Fault Tolerance 6) Agility
RSS to JSON Conversion - Solution ?
Tags: rsstojson, discuss, python, devops
Published: 2024-02-10 17:28:32

**Scenario:**

A content aggregation platform is exploring the possibility of incorporating a feature that allows for the transformation of RSS feeds into JSON format. This enhancement is particularly aimed at developers and enterprises looking to seamlessly amalgamate external content into their digital ecosystems. 

The conversion to JSON facilitates more efficient data parsing, manipulation, and integration from disparate sources, thereby streamlining application development and content management processes.

**Requirements:**

- High-fidelity conversion that maintains the integrity of the original data structure and content.
- Capability to process multiple RSS feeds concurrently, ensuring efficiency and scalability.
- Robust security measures and reliable performance to protect sensitive information and ensure data integrity.


**Solutions:**

_Approach 1: Integration with a Specialized Third-Party API_

Leveraging a third-party API that specializes in RSS to JSON conversion presents a direct and efficient approach to incorporating this functionality. 

**Pros:**

- Quick integration and expedited feature rollout.
- Ongoing support and updates provided by the API service, ensuring the conversion feature remains up-to-date.
- Scalability to accommodate a substantial volume of conversions, adaptable to growing user demands.


**Example:** 

- [The RSS to JSON API](https://apyhub.com/utility/converter-rss-json) - from ApyHub
- [Feed to JSON API](https://www.toptal.com/developers/feed2json/) - from Toptal



_Approach 2 - Custom Implementation Utilizing Open Source Libraries_

As an alternative, integrating open-source libraries for RSS to JSON conversion into the platform’s existing infrastructure affords complete autonomy over the conversion process. Although this option necessitates a greater investment in development resources initially, it provides unparalleled flexibility and customization potential, catering to specific operational requirements.

**Pros:**

- Total control over the conversion mechanism and the format of the resulting JSON data.
- Elimination of ongoing costs associated with third-party services, following the initial setup.
- Enhanced security through in-house data processing, minimizing external exposure.


**Example:**

[feedparser](https://pypi.org/project/feedparser/) library -  for Python


**Which one would you prefer and go with**? Do let me know in the comments.
First build and publish Nx expo app
Tags: expo, beginners, mobile, productivity
Published: 2024-02-10 16:48:01

As you embark on your Expo journey, ensuring a smooth build process is crucial. Here's a step-by-step guide to performing the initial build:

### Step 1: First Build and Publish

1. **Open VSCode and Navigate to Project Folder:**
   Open Visual Studio Code (VSCode) and navigate to the project folder containing your Expo application.

2. **Run `eas login` as Admin User:**
   Open the terminal in VSCode and execute the `eas login` command. Log in using the admin user credentials. This will authenticate your Expo account for the build process.

3. **Run `npx nx affected -t build`:**
   Execute the command `npx nx affected -t build` in the terminal. Follow the interactive screen prompts and choose all default values unless specific configurations are required for your project.

4. **Complete the Build Process:**
   Allow the build process to complete successfully. This step ensures that your Expo project is compiled and ready for publishing.

After this step a project with a successful build will be created in your Expo account. An apk/aab file will be created which is ready to be submitted to the app store.
Moneis Aesthetic How To Make Money From Home
Tags: webdev, devops, python, ai
Published: 2024-02-10 16:37:40

★No experience needed
★Free training
★Work in online with your mobile phone\Pc
★Payment everyday
★$40 / $70per hour
**[Click Here](https://sites.google.com/view/23-234/home)**
Thanks have a good day
Streamlining Expo Build Pipeline with Bitbucket: An Admin and Developer Guide
Tags: expo, bitbucket, cicd, beginners
Published: 2024-02-10 16:36:52

## Admin Setup:

### Step 1: Login Using Admin Account

Begin by logging into Expo using the administrator account that will manage the organization.

### Step 2: Create an Organization in Expo

Navigate to the Expo dashboard and create a new organization for your project. This organization will serve as the central hub for collaboration and development.

### Step 3: Create a Robot User and Access Token

In Expo, generate a robot user to handle the automated build processes. Create an access token for this user, which will be utilized in the Bitbucket pipeline.

### Step 4: Save Access Token in Bitbucket

For secure integration, save the generated access token as an environment variable (`EXPO_TOKEN`) in Bitbucket. This token will authenticate Expo during the build process.

### Step 5: Bitbucket Pipeline YAML File

Create a Bitbucket pipeline YAML file in the root of your project. This file will define the steps for testing and building your Expo project.

Below is a sample bitbucket pipeline file to build an expo application in production profile 

`image: node:18.14.0

pipelines:
  branches
    main:
    - step:
        name: Build and Deploy to Production 
        deployment: production
        script:
          - npm install -g @nrwl/cli
          - npm install -g nx
          - npm install -g expo-cli
          - npm install
          - npx nx affected:build --base=main --platform all --non-interactive --no-wait
`

### Step 6: Invite Users to Organization

Invite all relevant users, including developers, to the Expo organization with read access. This ensures that they can join the organization and contribute to the project seamlessly.

## Developer Onboarding:

### Step 1: Sign Up to Expo

For developers, the process begins with signing up for an Expo account. This account will be linked to the organization created by the admin.

### Step 2: Join the Organization

Upon signing up, developers will receive an email invitation to join the organization on Expo. Click on the provided link to join the organization and gain access to the project.

By following these steps, both administrators and developers can collaborate efficiently using Expo and Bitbucket, establishing a robust build pipeline for Expo projects.
Hola Barcelona Travel Card
Published: 2024-02-10 16:10:44

Unlock the wonders of Barcelona with the Hola Barcelona Travel Card. Seamlessly navigate the vibrant city using Barcelona Card options and essential metro information. From airport transfers to exploring the city's gems, our site provides everything you need for a memorable Barcelona experience.
[airport metro barcelona](https://holabarcelonatravelcard.com/products/hola-barcelona-public-transport-travel-card)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tootfc3lrey07uz4ygqe.jpeg)
[閒聊] 邏輯語言的說法從何而來？
Tags: programming, python, coding, beginners
Published: 2024-02-10 16:07:35

我的「邏輯語言」之說並非我自創，而是來自於 Ralph Ammer 這位仁兄的靈感。

Ralph Ammer 是一位畫家，他擅長透過畫畫的方式，練習用不同的觀點來觀察事物。他還曾經上過 TED Talk 闡述畫畫如何能幫助你思考。

他自己製作的影片 “What is a computer?” 從圖靈機 (turing machine) 的介紹，到電腦如何運作，最後導出「邏輯語言」這層關係，使我們理解程式是如何驅動電腦來完成我們交給它的任務。

他說出 “You might at first think that learning the programming language is the hardest part. But in fact, it is the step before that is most difficult: to use a logical language.” 也就是因為他的解釋，我才愰然大悟，發覺原來許多會卡關的新手是困在這一層而不自知，因為它太隱晦了！

說來慚愧，一位畫家解釋起電腦和程式起來，居然比我一個學資工的還簡明易懂⋯⋯。

看看他的影片吧！用新的觀點來體會何謂程式，也許能讓你早日走出新手村～

[[YouTube] What is a computer?](https://youtu.be/LkVqtWbsKD0?si=bkaieJi_0wa53zzp)
Treasure Hunt - DevOps | Feb 2024
Tags: devops, computerscience, softwareengineering, opensource
Published: 2024-02-10 16:00:37

1. https://unixism.net/loti/async_intro.html
This article is related to the [io_ring article](https://dev.to/goamaral/iouring-18fa), basically it takes a short tour around linux async io and different solutions on how to handle io. We use this technology without knowing, for example, most web servers implement this strategy. Specially interpreted languages with global locks (python, ruby) or using an event loop model (nodejs).
    
2. https://earthly.dev/blog/chroot
What if docker is just a magic trick, something that seems so complex but if you lift the curtain it becomes quite easy to understand. This article lifts that curtain revealing docker and containers in general are just a facade on top of chroot.
    
3. https://github.com/bibendi/dip + https://github.com/evilmartians/ruby-on-whales
I have tried many times, to some success, to create a dev environment that would have a fast and automated setup and that could run in any OS. I leaned heavily on docker and recently with vscode dev containers on top of that. But I always felt it should be simpler.
That’s where dip comes in, with a Dockerfile and a dip config file (very similar to docker-compose.yml), a docker dev environment is setup and with the help of the dip cli, a near native/local experience can be achieved. As an example, this is what I have to type to start a rails console that runs inside a container `dip run rails c` .
And to further simplify things, we have https://github.com/evilmartians/ruby-on-whales, a rails app template that comes with default a Dockerfile and dip config.

4. https://biriukov.dev/docs/fd-pipe-session-terminal/0-sre-should-know-about-gnu-linux-shell-related-internals-file-descriptors-pipes-terminals-user-sessions-process-groups-and-daemons/
Deep dive into file descriptors, pipes, processes, sessions, jobs, terminals and pseudoterminals. I haven’t finished this article yet but I can only say good things. It has a clear explanation of the topics with pictures and code to go along.

5. https://12factor.net/
Best practices on how to build/manage an application. Most of them are intuitive, specially in a cloud world. But is always important to keep things in perspective, things that are obvious now weren’t in the past.
Empower Your Coding Journey with the Ultimate Command Repository
Published: 2024-02-10 15:50:32

Are you tired of losing track of your most valuable command snippets? Do you wish there was a seamless way to organize and access them whenever you need? Look no further! I'm thrilled to introduce my latest project that revolutionizes the way you manage your commands.

## Introducing the Command Repository:

🚀 **[GitHub Repository](https://github.com/jithesh-poojari/command-hub-local)**

**Key Features:**

1. **Command Organization:**
   - Save and organize your frequently used commands effortlessly.
   - Maintain a structured collection for easy retrieval.

2. **Supabase Integration:**
   - Securely store your commands in your Supabase database.
   - Access your commands from anywhere, ensuring flexibility and convenience.

3. **User-Friendly Interface:**
   - A sleek and intuitive design for a seamless user experience.
   - Quickly add, edit, or delete commands with just a few clicks.

## Why You Need This:

- **Efficiency Boost:** No more hunting through scattered files for that elusive command. Everything is neatly organized in one place.
  
- **Portability:** Your commands are securely stored in the cloud, ensuring accessibility from any device.

## Exciting Future Plans:

I'm not stopping here! I have plans to take this project to the next level:

- **Interactive Website:** Imagine a website where you can explore a curated collection of organized commands. It's in the works, and your input is crucial!

## How You Can Contribute:

1. **Star the Repository:** Show your support by starring the repository.
  
2. **Contribute:** Feel free to contribute by adding new features, reporting issues, or suggesting improvements.

3. **Feedback:** Your feedback is invaluable! Share your thoughts, ideas, or anything you'd like to see in the future.

## Stay Connected:

Follow the project on GitHub for updates, and stay tuned for the upcoming website!

🌟 **[GitHub Repository](https://github.com/jithesh-poojari/command-hub-local)**

Thank you for joining me on this coding journey. Let's make our command-line experiences more efficient and enjoyable!

Happy coding! 🚀✨

\#GitHub #Coding #OpenSource #Programming #Tech #DeveloperTools #Supabase #CommandRepository