teleren/devto huggingface dataset:
A custom Maven Mojo to show the effective project properties
Tags: maven, java
Published: 2023-12-28 00:50:24

## A custom Maven Mojo?!

Recently I came across the requirement to print all effective project properties during a Maven build. So, why not write a custom Mojo to do that?

I try to get more into writing custom Maven Mojos, so I created a new project and put together a simple class that accesses the current project and prints all project properties to the Maven build log in info level.

If you are interested in the code, you can head over to my GitHub and check it out: https://github.com/NilsCoding/mvn-show-settings

## What I've learned in this project

### Injecting the Maven project

You can annotate a field of type `org.apache.maven.project.MavenProject` with the `@Parameter` annotation and specify `defaultValue = "${project}"` as an annotation attribute to inject the current project as an object into the Mojo.

### Dependency for `MavenProject` inject

Also, you need to add `org.apache.maven:maven-core` as a dependency to have access to `MavenProject`.

I've included more Maven dependencies in my `mvn-show-settings` project (and commented out some injects in the Mojo code) to have a starting point for extending the Mojo by using more information at build time.

### Custom configuration for helper class generation

A custom Maven Mojo project needs some configuration files and a helper class, so it is highly recommeded to include `org.apache.maven.plugins:maven-plugin-plugin` in the build process to auto-generate those files. As a side-note, you might want to configure `helpPackageName` for that plugin to specify the package of the generated helper class. Otherwise, a package name will be generated from the artifact name and will result in a (maybe) unwanted package name.

### Excluding generated code from Checkstyle

I've also added a custom Checkstyle configuration to my project to enforce some coding "standards". By default, all sources will be checked, which also includes the gerenated sources for the helper classes. To prevent those helper classes from being checked, you can specify which directories should be included by the Checkstyle plugin:
```xml
<sourceDirectories>
    <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
```
If you configure Checkstyle to be used in the reporting, then you might want to add this configuration there, too.

## What's next?

I'm currently working on some other custom Maven Mojos which I will definitely publish on GitHub, too, and there will also be some interesting details on what you can actually do in custom Maven Mojos.

So, stay tuned. 😉
SSH in a Fun Way
Tags: linux, ssh
Published: 2023-12-28 07:22:38

Once upon a time, in the land of Computers, there were two friends named Raj and Simran. They liked to share secrets, but there was a sneaky character named Baldev Singh who wanted to steal their secrets.

To keep their messages safe, they called upon the help of a magical guardian named SSH (Secure Shell). SSH gave Raj and Simran each a special key, like a secret code, that only they knew. This key could lock up their messages in a special box that nobody else could open.

Now, when Raj wanted to send a message to Simran, he put it inside the locked box using her secret key. Only Simran, with her matching key, could open the box and read the message. It was like having a secret language that only they understood.

But that's not all! SSH also made sure that Raj and Simran were really themselves and not Baldev Singh pretending to be them. They each had a special ID card, and when they sent messages, they showed their cards to prove it was really them.

With the help of SSH and their secret keys, Raj and Simran could talk and share their secrets without worrying about Baldev Singh or anyone else snooping around. And so, they lived happily and securely in the land of Computers.

The End.

Thanks for Reading.
Keep Learning, Keep Sharing
주안출장마사지
Published: 2023-12-28 16:28:37

분주한 대도시 서울이 글로벌 비즈니스 허브로 거듭나면서 비즈니스 여행객을 위한 편리하고 편안한 서비스에 대한 요구가 높아지고 있습니다. 주목할만한 추세 중 하나는 바쁜 일정 속에서 활력을 되찾고 싶은 전문가들을 위한 출장 마사지 서비스가 다양한 지역에서 등장하고 있다는 것입니다. 이 기사에서는 김포, 강서, 금천, 검단, 구로, 배곧, 부평, 안산, 정왕, 주안 등의 지역에서 제공되는 서비스를 살펴보고 이러한 서비스가 어떻게 기업 환경의 필수적인 부분이 되고 있는지 보여줍니다.

김포: 소란스러운 가운데 고요한 휴식:
국제공항으로 유명한 김포는 활동의 중심지이다. 김포를 방문하는 비즈니스 여행객들은 이제 바쁜 여행에서 벗어나 조용한 휴식을 제공하는 주문형 마사지 서비스를 편리하게 즐길 수 있습니다. 이 서비스는 스트레스를 완화하고 휴식을 촉진하는 데 적합한 다양한 마사지 기술을 제공하여 전문가가 비행 전후에 긴장을 풀고 재충전할 수 있도록 합니다.
**_[주안출장마사지](http://vhqvipvip.wixsite.com/costume)_**
강서: 당신의 문앞에서 웰니스를 누리세요:
강서는 인천국제공항과 가까워 비즈니스 활동의 최적의 장소로 자리 잡았습니다. 강서의 출장 마사지 서비스는 바쁜 직장인들에게 웰니스의 혜택을 직접적으로 선사합니다. 한국의 전통 마사지부터 현대적인 기술까지, 이러한 서비스는 다양한 선호도에 맞춰 잠시 휴식을 원하는 여행자에게 활력을 불어넣는 경험을 제공합니다.

금천: 출장에 휴식을 더하다:
서울의 신흥 비즈니스 지역인 금천에서는 건강한 일과 삶의 균형을 유지하는 것이 중요하다는 것을 인식하고 있습니다. 금천의 출장 마사지 서비스는 회사의 일상에 휴식을 완벽하게 통합합니다. 호텔 객실이든 사무실이든 관계없이 전문가들은 이제 치료 마사지를 통해 긴장을 완화하고 전반적인 웰빙을 향상시켜 체류 기간 동안 생산성을 높일 수 있습니다.

검단: 기술 허브에서 휴식을 취하다:
검단은 기술력이 뛰어난 지역으로서 전문가의 웰빙을 충족하는 서비스 제공의 중요성을 인식하고 있습니다. 검단의 출장 마사지 서비스는 빠르게 변화하는 기술과 혁신의 세계에 빠져 있는 사람들의 신체적, 정신적 요구를 해결하면서 휴식에 대한 전체적인 접근 방식을 제공합니다.

구로: 비즈니스의 중심에서 재충전하다:
서울의 중심업무지구인 구로는 기업활동의 중심지이다. 구로 출장마사지 서비스는 바쁜 직장인들의 재충전의 필요성을 잘 인식하고 있습니다. 이 서비스는 의자 마사지, 전신 트리트먼트 등 다양한 마사지 옵션을 제공하므로 비즈니스 여행객이 직장에서 멀리 가지 않고도 편리하게 휴식을 취할 수 있습니다.

배곧: 비즈니스 여행 경험의 향상:
배곧은 전략적인 위치로 인해 비즈니스 여행객들이 떠오르는 여행지로 떠오르고 있습니다. 배곧의 출장 마사지 서비스는 맞춤형 및 주문형 마사지를 제공하여 비즈니스 여행 경험을 향상시킵니다. 이는 전문가의 신체적 웰빙을 제공할 뿐만 아니라 이 급성장하는 지역에서 긍정적이고 즐거운 체류에 기여합니다.

부평: 전문가를 위한 웰니스 솔루션:
상업의 활기로 유명한 부평은 이제 전문가를 위한 웰니스 솔루션으로도 인정받고 있습니다. 부평의 출장 마사지 서비스는 빠른 스트레스 해소 세션부터 보다 광범위한 트리트먼트까지 다양한 옵션을 제공합니다. 이러한 서비스는 비즈니스 여행객을 위한 균형 있고 건강을 고려한 환경을 조성하는 데 기여합니다.

안산: 고요한 환경에서 긴장을 풀어보세요:
안산은 비즈니스와 레저 시설이 혼합되어 있어 휴식을 원하는 전문가들에게 이상적인 환경을 제공합니다. 안산의 출장 마사지 서비스는 고요한 주변 환경을 활용하여 여행자의 긴장을 풀고 활력을 되찾을 수 있는 마사지를 제공합니다. 이러한 웰니스 서비스 통합은 비즈니스 여행객을 위한 지역의 다양한 서비스를 보완합니다.

정왕: 기업 방문객을 위한 홀리스틱 웰니스:
산업현장으로 유명한 정왕은 이제 기업 방문객을 위한 총체적인 웰니스도 수용하고 있습니다. 정왕의 출장 마사지 서비스는 산업 부문의 요구 사항을 다루는 전문가의 구체적인 요구 사항을 충족하는 포괄적인 웰니스 솔루션 제공에 중점을 두고 있습니다.

Juan: 비즈니스 엘리트를 위한 맞춤형 휴식:
신흥 비즈니스 지역인 Juan은 비즈니스 엘리트를 위한 맞춤형 휴식 서비스의 증가를 목격하고 있습니다. Juan의 출장 마사지 서비스는 전문가의 안목 있는 선호도에 부응하여 특정 요구 사항과 일정에 맞는 맞춤형 경험을 제공합니다.

결론:

서울 전역에서 출장 마사지 서비스가 급증한 것은 기업 세계에서 웰빙의 중요성에 대한 인식이 높아지고 있음을 반영합니다. 전문가들이 점점 자기 관리와 휴식을 우선시함에 따라
How to Upload and Push Android Studio Projects to GitHub | Step-by-Step Guide
Tags: github, android, androidstudio, howto
Published: 2023-12-28 17:41:07

{% embed https://youtu.be/CK9JH70E6xo %}

Welcome to this step-by-step tutorial where you'll explore the straightforward process of uploading your Android Studio projects to GitHub. From initializing a repository to pushing your code to the cloud, you'll gain practical insights to streamline project collaboration and version control. Whether you're a seasoned developer or just getting started, this video provides essential knowledge for integrating GitHub into your Android Studio workflow.

**Step 1: Initializing a Repository on GitHub**
To start, we'll guide you through the process of initializing a new repository on GitHub. You'll learn how to set up the repository with a README file and choose options that suit your project.

**Step 2: Configuring Git in Android Studio**
In this step, we'll walk you through configuring Git in Android Studio. You'll set up your Git username and email, ensuring that your contributions are properly attributed.

**Step 3: Creating a Local Git Repository**
Next, we'll explore how to create a local Git repository within your Android Studio project. You'll learn the necessary Git commands to initialize the repository and establish a connection with the GitHub repository.

**Step 4: Adding, Committing, and Pushing Code**
We'll guide you through the process of adding, committing, and pushing your code to GitHub. You'll understand the importance of committing changes with meaningful messages and pushing them to the remote repository.

**Step 5: Verifying Changes on GitHub**
In this step, you'll verify that your code changes have been successfully pushed to GitHub. We'll explore the GitHub repository to ensure that the project is up to date.

**Conclusion:**
Congratulations! You've successfully learned how to upload and push Android Studio projects to GitHub. This tutorial has equipped you with practical insights to streamline your project collaboration and version control using GitHub.

If you have any questions or comments, please feel free to leave them below. Don't forget to subscribe to our YouTube channel for more exciting tutorials on Android app development and GitHub collaboration.

Now, armed with the knowledge of uploading and pushing projects to GitHub, you're ready to efficiently collaborate, contribute, and maintain version control in your Android Studio projects. Happy coding!

**Build android apps without coding** 
Start for free: https://try.draftbit.com/buildwithoutcode

Feel free to reach out to me with any questions or opportunities at (aahsanaahmed26@gmail.com)
**LinkedIn** (https://www.linkedin.com/in/ahsan-ahmed-39544b246/)
**Facebook** (https://www.facebook.com/profile.php?id=100083917520174).
**YouTube** (https://www.youtube.com/@mobileappdevelopment4343)
**Instagram** (https://www.instagram.com/ahsanahmed_03/)
#100DaysOfCode - Day 12
Published: 2023-12-29 11:54:38


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

today I did one mini-project from 
@frontendmentor.

also coded along a part of a Mern project with 
@traversymedia

I was struggling to write the backend in an organized way. 
modularize and easy-to-understand code. this is what I was looking for.

Feel free to connect with me through my social links below. Let's code, learn, and grow together!"
[@nomanux](https://twitter.com/Nomanux)
🚀 Make AI a Part of Your Software Development: Proven Chat GPT Prompts to Start
Tags: webdev, ai, chatgpt, programming
Published: 2023-12-29 13:05:45

Did you know that 14% of tech, media, and telecom specialists use AI tools to optimize daily work? If each interaction with Chat GPT for your software development purposes feels like a struggle, it’s time to change the approach. 

How about proven prompts? We have a comprehensive list for you to increase your dev velocity and speed up the development process.

Sounds great? Hurry to dive in, and don’t forget to share [this article](https://devler.io/blog/mastering-chatgpt-handy-prompts-and-strategies-for-developers) with your fellow developers!
Tudo que você precisa saber sobre DynamoDB - Introdução
Tags: braziliandevs, webdev, nosql, aws
Published: 2024-01-03 02:10:04

# O que é DynamoDB

DynamoDB é um banco de dados não relacional totalmente gerenciado pela AWS. Isso significa que, você não precisará ter preocupações relacionadas à escalabilidade e disponibilidade do seu banco de dados. A AWS assume a responsabilidade por esses aspectos, permitindo que você se concentre exclusivamente nas necessidades específicas do seu sistema.

# Conceitos básicos

O DynamoDB armazena dados em uma estrutura de documentos, que são salvos como JSON, proporcionando flexibilidade na adição de novos campos conforme necessário.

Para indexar os registros, o DynamoDB utiliza uma combinação de `partition_key` e `sort_key`. A partition_key define um atributo usado para separar itens, agrupando itens com a mesma chave de partição. Essa chave também é conhecida como primary_key ou HASH. Já a sort_key é um atributo opcional usado para ordenar itens que compartilham a mesma chave de partição, também chamada de RANGE ou range key.

# Consistência de leitura

O DynamoDB armazena três réplicas da sua base de dados em regiões geograficamente distintas. Para garantir que, ao realizar uma leitura, você obtenha a versão mais atual dos dados, o DynamoDB oferece dois níveis de consistência de leitura: consistência eventual e consistência forte.

Operações realizadas com consistência eventual permitem que consultas retornem dados que ainda não foram totalmente propagados para todas as regiões; em contrapartida, esse modo oferece uma latência menor. Por outro lado, operações realizadas sob o regime de consistência forte garantem que os dados lidos sejam os mesmos em todas as regiões, embora a latência dessas operações seja maior.

A escolha entre esses níveis de consistência é muito importante e deve ser feita levando em consideração as especificidades da sua aplicação.

# Conclusão

Em resumo, o DynamoDB destaca-se como uma ótima ferramenta que resolve muito bem os problemas que se propõe.

Nos próximos artigos, continuaremos desbravando as fascinantes possibilidades que o DynamoDB proporciona.

Agradeço por fazer parte desta jornada. Até o próximo artigo!
Interview: Can You Stop “forEach” in JavaScript?
Published: 2023-12-29 18:32:10

In JavaScript, the `forEach` method is used to iterate over elements in an array, and it doesn't have a built-in mechanism to stop or break out of the loop prematurely. The `forEach` method is designed to iterate through all elements of the array, and it will continue execution until all elements have been processed.

If you need the ability to stop or break out of a loop under certain conditions, you might consider using a `for` loop or the `for...of` loop instead. Unlike `forEach`, these loops allow you to use the `break` statement to exit the loop when a specific condition is met.

Here's an example using a `for...of` loop:

```
```javascript
const array = [1, 2, 3, 4, 5];

for (const element of array) {
    console.log(element);

    // Add a condition to break out of the loop
    if (element === 3) {
        break;
    }
}
```

```

In this example, the loop will terminate when the element is equal to 3. This [provides ](https://newsllytoday.com/is-kisskh-me-down/)more flexibility than the `forEach` method when you need to control the flow of the loop based on certain conditions.

Keep in mind that using `break` in this way is not considered good practice in functional programming, and it may be better to use methods like `every`, `some`, or traditional `for` loops for more complex control flow requirements.
How to change state with isFocused method
Tags: reactnative, react, api
Published: 2023-12-29 21:46:42

I'm using GooglePlacesAutocomplete in my react-native app. Since the component does not provide an onPress method which would normally detect a touch gesture, I would like to use the isFocused method which according to documentation, "returns true if the TextInput is currently focused; false otherwise". My question is what is the convention for watching the return value of a method in react-native? I would like to be able to alter my UI in case the method evaluates to either true/false.

I've provided my setup below. As you can see, as an example, I would like my view to show "Hello" if isFocused evaluates to true and "Hi" if false however this implementation does not obviously won't work for what I'm trying to do

```
import React, { useEffect, useRef, useState } from 'react'
import { Animated, Pressable, StyleSheet, Text, Touchable, TouchableOpacity, TouchableWithoutFeedback, View } from 'react-native'
import Icon from 'react-native-vector-icons/FontAwesome';
import { GooglePlacesAutocomplete } from 'react-native-google-places-autocomplete'
import { GOOGLE_PLACES_API_KEY } from '@env'

export default function SearchComponent({ expanded = false, setExpanded }) {

    const ref = useRef();
    const [top] = useState(new Animated.Value(0))

    useEffect(() => {
        Animated.timing(top, {
            toValue: !expanded ? 70 : 80,
            duration: 150,
            useNativeDriver: false
        }).start();
    }, [expanded, top]);

    return (
        < Animated.View style={{ top }
        } >
            <GooglePlacesAutocomplete
                ref={ref}
                placeholder='Search'
                onPress={(data, details = null) => {
                    console.log(data, details);
                }}
                query={{
                    key: GOOGLE_PLACES_API_KEY,
                    language: 'en',
                    components: 'country:ca'
                }}
            />
            {ref.current?.isFocused() ? (
                <Text>Hello</Text>
            ) : (<Text>Hi</Text>)
            }
        </Animated.View>
    )
}
```
Boost Your Website's Social Engagement with Select Share JS
Tags: javascript, web3, react, nextjs
Published: 2023-12-30 03:37:21


**🤗Introduction:**
In the fast-paced digital age, making your website shareable is key to expanding its impact. Select Share JS simplifies this process, offering an easy-to-use solution for integrating social media share buttons. In this guide, we'll explore the user-friendly features of Select Share JS and walk you through the steps to boost your website's social engagement effortlessly. Let's dive in!

**😏Why Select Share JS?**
Select Share JS stands out for its simplicity and flexibility. Whether you're working with ReactJS, NextJS, SvelteJS, or traditional HTML pages, this library seamlessly integrates into your project. The inclusion of Twitter, LinkedIn, WhatsApp, Facebook, and email sharing options ensures your audience can spread the word across diverse channels.

**🧻Getting Started:**
To include [SelectShareJS](https://github.com/devgauravjatt/select-share-js) in your project, add the following code to your HTML file:

```html
<div twitter="true" theme="light" id="select-share-js"></div>
<script src="https://cdn.jsdelivr.net/gh/devgauravjatt/select-share-js@main/build/v-1.0/main.js"></script>
```

For NextJS users, incorporating it into layout.js is a breeze:

```jsx
import Script from 'next/script'

return (
  <html lang='en'>
    <body suppressHydrationWarning={true} className={inter.className}>
      {children}
      {/*@ts-ignore */}
      <div twitter='true' theme='dark' id='select-share-js'></div>
      <Script src='https://cdn.jsdelivr.net/gh/devgauravjatt/select-share-js@main/build/v-1.0/main.js' />
    </body>
  </html>
)
```

**💦Options:**
Select Share JS provides a range of customization options, allowing you to tailor the share buttons to match your website's aesthetics. The available parameters include:

- **Twitter:** "true" (Include Twitter share button)
- **LinkedIn:** "true" (Include LinkedIn share button)
- **Theme:** "light" or "dark" (Choose the theme for buttons)
- **Read More:** "true" (Include a "Read More" link for shared content)
- **WhatsApp:** "true" (Include WhatsApp share button)

For instance, if you want Twitter, LinkedIn, and WhatsApp buttons with a dark theme and a "Read More" link, use the following code:

```html
<div twitter="true" linkedin="true" theme="dark" whatsapp="true" readmore="true" id="select-share-js"></div>
```

**😎Follow on GitHub for Updates:**
Stay in the loop with the latest enhancements and updates to Select Share JS by [following our GitHub repository](https://github.com/devgauravjatt/select-share-js). Your feedback and contributions are always welcome! 🌟


**🤯Conclusion:**
In conclusion, Select Share JS provides a hassle-free solution for integrating social media share buttons into your website. Its compatibility with various frameworks and ease of customization make it a go-to choice for web developers aiming to boost their site's social engagement. By following the user guide and incorporating this library, you're not just adding share buttons; you're enhancing your website's accessibility and connectivity.
Complete Object Oriented PHP & MVC 2024
Tags: webdev, programming, tutorial, beginners
Published: 2023-12-30 06:40:12

{% embed https://www.youtube.com/watch?v=Ym4500z9mow %}
Welcome to our advanced PHP course on building a custom MVC framework called PHPAdvance! Throughout this course, we will guide you through the step-by-step process of creating a lightweight MVC framework similar to Laravel but with a smaller footprint. 

This open-source framework, PHPAdvance, allows you the freedom to modify the name, add new features, and utilize it as your own.
HOW TO RETRIEVE STOLEN STOLEN CURRENCY WITH WIZARD WEB RECOVERY
Published: 2023-12-30 12:04:29

My experience of recovering my stolen Bitcoin has taught me valuable lessons about resilience, determination, and the importance of seeking professional help. Wizard Web Recovery was the Bitcoin expert I sought when I needed my Bitcoin back. With the expert now armed with all the information, it was time to start the pursuit. It felt like we were on a thrilling virtual treasure hunt, chasing after my stolen Bitcoin through the darkest corners of the internet. Using their expertise and sophisticated tools, the expert-guided me through the process of tracking the stolen funds. It was a delicate dance between technology and intuition, as we followed the digital footprints left by the thieves. Each step brought us closer to the truth, and my anticipation grew with every discovery. Throughout this journey, I couldn't help but marvel at the expertise of the person guiding me. It was like they had a sixth sense of navigating the online underworld. Their knowledge and skill were the secret weapons in our relentless pursuit, and I was grateful to have them by my side. While the recovery of my stolen Bitcoin was a cause for celebration, it also served as a wake-up call. I realized the importance of enhancing my security measures to prevent future attacks. I couldn't rely solely on the expertise of others to protect my assets; I had to take proactive steps myself. I started by educating myself about online scams and staying updated on the latest cybersecurity practices. I implemented two-factor authentication, strengthened my passwords, and became more cautious about the information I shared online. It was like putting on digital armor, ready to defend myself against any potential threats.This experience also made me realize the need to share my story and empower others. I wanted to raise awareness about online scams and the importance of vigilance in the digital world. By spreading knowledge and encouraging others to take their online security seriously, I hoped to prevent others from falling victim to the same fate. By sharing my story, I hope to inspire others to take action and protect themselves in the vast labyrinth of the internet. Together, we can build a community of informed and empowered individuals who refuse to be victims of cybercrime. Do reach Wizard web recovery via email: wizard web recovery @ programmer (dot) net, additionally, you can also communicate with them directly on the webpage at wizard web recovery (dot) net