teleren/devto huggingface dataset:
Wednesday Links - Edition 2023-03-08
Tags: java, jvm, troubleshooting, contracttests
Published: 2023-03-08 11:50:46

The Tale of Troubleshooting: Unstable Builds and Open Source Infrastructure (3 min)🔧
https://questdb.io/blog/maven-troubleshooting-open-source/

Testing Microservices — Contract Tests (13 min)🤝
https://blog.softwaremill.com/testing-microservices-contract-tests-33a013fa8c85

ktargeter - specifty where to put an annotation (1 min)🎯
https://twitter.com/dzikoysk/status/1630914783758147589

What Happened To search.maven.org? (1 min)⚓︎
https://central.sonatype.org/faq/what-happened-to-search-maven-org/#what-happened-to-searchmavenorg

Some possible reasons for 8-bit bytes (11 min)8️⃣
https://jvns.ca/blog/2023/03/06/possible-reasons-8-bit-bytes/
Resolvendo problemas no HackeRank: Corrida de obstáculos!
Tags: javascript, beginners, programming
Published: 2023-03-08 11:20:03

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: no problema de hoje, iremos analisar uma corrida com obstáculos de diferentes tamanhos,e queremos que nosso personagem ultrapasse todos eles até chegar o final. Vejamos mais detalhes a seguir:


**The Hurdle Race -**

Um jogador de video-game joga um jogo no qual o personagem competa em uma corrida de obstáculos. Os obstáculos têm alturas variadas e os personagens têm uma altura máxima que podem pular. Há uma poção mágica que eles podem tomar que aumentará a altura máxima do salto em 1, por dose. Se o personagem já puder superar todos os obstáculos, retorne 0 .

Portanto temos os parâmetros do problema do seguinte modelo:

- Numa corrida de obstáculos, existem tamanhos variados.
- Caso o comprimento dos obstáculos seja maior que a altura do personagem, tome 1 poção.
- Caso todos os obstáculos sejam feitos, retorne 0.

Vejamos um exemplos, antes de iniciar o problema:

- heigth (n) [1,2,3,3,2] // tamanho de cada obstáculo
- k [1] // máximo de altura do salto possível

O personagem pode pular uma unidade de altura inicialmente e deve tomar 3 doses - 1(O obstáculo maior menos o máximo de altura salto possível) de poção para poder pular todos os obstáculos.

Vejamos a resolução:

```
function hurdleRace(k, height) {
    // Write your code here, heigth = n; k =maximum heigth jum
  let maxHeigth = Math.max(...height);
  
    if (maxHeigth - k <= 0){
      return 0
    }
    else if(maxHeigth > k){
      return maxHeigth - k
    }    
}
```

No código acima, temos uma função que guarda os parâmetros citados no ínicio do artigo(`k` e `heigth`) e declaramos uma variável chamada `maxHeigth` que é o maior valor do array `heigth`.

Criamos uma estrutura de condições onde se o maior valor do array `heigth`(`maxHeigth`) menos a altura máxima de `k`for menor ou igual a zero, retornaremos 0.

Se caso o `maxHeigth` for maior que `k`, retornaremos a subtração entre os dois valores.

O resultado será:

```
5 4
1 6 3 5 2

input: 2
```

Com isso, concluímos mais um desafio do Resolvendo problemas no HackerRank: . Até a próxima.
Bypassing Network Detection with Graftcp
Tags: containersecurity, runtimesecurity, containers, containerapps
Published: 2023-03-08 11:06:14

A new network open source tool called graftcp (GitHub page) has been discovered in everyday attacks by the Sysdig Threat Research Team (TRT). Nowadays, threat actors try to improve their techniques by using new tools (as we mentioned in the PRoot article) to enhance the compatibility of their code to hit as many targets as possible and hide their traces properly.

(https://sysdig.com/blog/bypassing-network-detection-with-graftcp/)
How big is the Size, Share EdTech and smart classroom market
Tags: industry, siz, business, trend
Published: 2023-03-08 11:05:25

The global edtech and smart classroom market size was valued at USD 88.82 billion in 2021. The market is projected to grow from USD 101.64 billion in 2022 to USD 319.65 billion by 2029, exhibiting a CAGR of 17.8% during the forecast period.
List of the Key Companies Profiled:
•	SAP SE (Germany)
•	Apple Inc. (U.S.)
•	IBM Corporation (U.S.)
•	Alphabet Inc. (U.S.)
•	Cisco Systems Inc. (U.S.)
•	Amazon.com Inc. (U.S.)
•	Microsoft Corporation (U.S.)
•	SMART Technologies ULC (Canada)
•	Dell Inc. (U.S.)
•	Fujitsu Limited (Japan)

Read More
https://www.fortunebusinessinsights.com/edtech-and-smart-classroom-market-104662
Beyond Technical Skills: What to Look for in a Candidate During a Technical Interview
Published: 2023-03-08 11:03:07

As an interviewer in a technical interview, your main task is to assess candidates' technical skills. But, beyond the basics, you should also pay attention to their communication abilities, problem-solving approach, and more.

Technical competency is a crucial factor to consider when interviewing candidates. It is important to determine whether the candidate has the necessary skills to complete the job. Some candidates may talk a big game, but not have the ability to write solid code. It is essential to assess whether their claimed experience aligns with their skill level.

Motivation is a very important aspect to evaluate. Are they genuinely passionate about solving problems and eager to learn new technologies? In the ever-evolving field of technology, knowledge that is current and relevant today may become obsolete within a few years. Therefore, it is essential for a developer to have the internal drive to solve problems and to continuously learn and adapt to new technologies. 

Effective communication is also critical to a candidate's success, especially when working with others. It is important to assess how well the candidate understands the interviewer's questions, and whether they ask good follow-up questions to clarify any confusion. Additionally, their responses should be logical, coherent, and easy to understand.

For mid-senior positions, it is crucial to evaluate whether the candidate has the ability to work independently. Can they jump into a codebase they've never seen before and figure out what's going on? Do they have the skills to track down the root cause of bugs, rather than randomly changing code? And are they able to solve problems on their own, utilizing resources like Google or ChatGPT to help them out?

By focusing on these essential qualities, an interviewer can successfully evaluate a candidate's potential for success in a technical role.
My First Post Ever!
Tags: webdev, career, codenewbie, productivity
Published: 2023-03-08 10:58:54

Hi there,

I hope this message finds you well. My name is **Olutoye Peter Glorious**, and I am an aspiring fullstack developer. Currently, I am working as a frontend developer, but my ultimate goal is to become proficient in all aspects of web development.

This post marks the beginning of what I hope will be a series of engaging and informative posts about my journey in tech. As I continue to learn and grow, I plan to share my experiences, challenges, and opportunities with you. I believe that we can all learn from one another, and I hope that my posts will help inspire others who are also pursuing a career in tech.

In addition to my passion for coding, I also love making friends. After all, what's life without people to share it with? If you're interested in connecting with me, please don't hesitate to reach out. Whether you have questions about coding or just want to say hello, I would be happy to chat with you.

Thank you for taking the time to read my post. I hope to hear from you soon!
ว่าด้วยเรื่อง URI Format
Tags: beginners, api
Published: 2023-03-08 10:33:47

## Format
> schema “://” authority “/” path [ “?” query ] [ “#” fragment]

## Forward slash (/)
- แสดงถึงระดับชั้นของข้อมูล
- ใช้สำหรับแบ่ง path ของ URI
- ไม่ได้มีปิดท้าย URI 

> ❌ http:witwoywhy.com/**info/**
✅ http:witwoywhy.com/**info**

## Hyphen (-)
- ใช้เพื่อช่วยเพิ่มประสิทธิภาพในการอ่าน

## Underscores (_)
- ไม่ควรใช้ใน URI
- ควรใช้ Hyphen (-) แทน

## Lowercase Letters
- ควรใช้ทั้งหมดใน URI
- URI เป็น case-sensitive

## File Extensions
- ไม่ควรแสดงนามสกุลของไฟล์ใน URI

> ❌ http:witwoywhy.com/**info.json**
✅ http:witwoywhy.com/**info** 

- ควรระบุอยู่ใน media type

> Content-Type header

## Reference
- [REST API Design Rulebook](https://www.bookdepository.com/REST-API-Design-Rulebook-Mark-Masse/9781449310509?ref=grid-view&qid=1678271702144&sr=1-1)
Rails's .try vs Ruby's &. (a.k.a safe navigation)
Tags: ruby, rails
Published: 2023-03-08 10:14:26

Rails [#try](https://apidock.com/rails/v6.1.3.1/Object/try) vs Ruby's [&.](https://thoughtbot.com/blog/ruby-safe-navigation) 

```
User.try(:cat)
# => nil
User.try(:name)
# => "User"
User&.cat
# NoMethodError: undefined method `cat' for User:Class ...
User&.name
#=> "User"
```

chain

```
User.try(:name).try(:cat)
# => nil
User.try(:cat).try(:name)

User&.name&.cat
# NoMethodError: undefined method `cat' for "User":String
User&.cat&.name
# NoMethodError: undefined method `cat' for User:Class
```

> Keep in mind long chains are Law of Demeter violations




Acording to [Alexander Budchanov's article] 
 (https://jetrockets.com/blog/nswsheigth-safe-navigation-vs-try-in-rails-part-2-performance). 

> Safe navigation (`&.`) is about 7 times faster than method try() for successful navigation and 3 times faster for unsuccessful.
Paracetamol.ts💊| #28: Explica este código TypeScript
Tags: typescript, javascript, spanish, webdev
Published: 2023-03-08 10:00:00

## **<center>Explica este código TypeScript</center>**
#### <center>**Dificultad:** <mark>Intermedio</mark> </center>

```ts
let z:number[][];
```

¿Cuál de los siguientes arreglos es asignable a `z`?

- A. `[ [255, 255, 255], [0, 0, 0], [2, 2.2] ]`
- B. `[ ["hola"], ["mundo"] ]`
- C. `[ [2n, 4n], [2,4] ]`
- D. `Todos los anteriores`
- E. `Ninguno de los anteriores`

{% spoiler **Respuesta** %} 

✅ A. `[ [255, 255, 255], [0, 0, 0], [2, 2.2] ]`

La sintaxis de `z` expresa que solo acepta arreglos de arreglos (matriz) siempre y cuando sean numéricos.
B. y C. cumplen con la condición de ser matrices pero contienen cadenas y big ints, por ello no son asignables a `z`.


{% endspoiler %}

---

Puedes ver el último reto aqui:

{% link https://dev.to/duxtech/paracetamolts-27-explica-este-codigo-typescript-4856?preview=3e2491be8f23c368775bdb28f1a203c6e8b41b36edf583859b81e3d9b57547ab15e4c299d1bcee3f985fceffa0f199ef6cc1c39b8a0a981ccb0d158a %}
Passage of time calculations in Groovy
Tags: groovy
Published: 2023-03-08 09:40:28

The way to calculate time duration in groovy is with TimeDuration:


    import groovy.time.TimeCategory
    import groovy.time.TimeDuration

Short durations

    Date timeStart = new Date()
    sleep(randNum(10000))
    Date timeStop = new Date()

    TimeDuration durationShort = TimeCategory.minus(timeStop, timeStart)
    println "duration: ${durationShort}"
    println "duration in ms    : ${durationShort.toMilliseconds()}"
    println "duration in millis: ${durationShort.getMillis()}"  //drops the seconds
    println "duration in seconds: ${durationShort.getSeconds()}"

`outputs>> 
duration: 9.911 seconds
duration in ms    : 9911
duration in millis: 911
duration in seconds: 9`

    Date earlier = Date.parse('yyyy-MM-dd', "1974-08-11") //converts String to Date object
    Date now = new Date()

    TimeDuration durationLong = TimeCategory.minus(now, earlier)
    println "duration in days: ${durationLong.getDays()}"

`outputs>> duration in days: 17741`


    duration = TimeCategory.minus(now, earlier)
    println duration

`outputs>> 17741 days, 11 hours, 34 minutes, 5.824 seconds`

The last two outputs will differ if you run it because time moves on.

This is just to get a random number of seconds, used in the first example:

    def randNum(maxSize) {
        return Math.abs(new Random().nextInt() % maxSize) + 1 
    }
Design Thinking: A User-Centered Problem-Solving Method with a Hilarious Twist
Tags: webdev, design, startup, todayilearned
Published: 2023-03-08 09:30:00

Design thinking is a problem-solving method that puts the user at the center of all decisions. It involves a deep understanding of the needs, motivations, and behaviors of the people for whom the product or solution is designed. This approach promotes interdisciplinary collaboration and a user-experience-focused culture of innovation.

## Advantages of Design Thinking

1. **Deep User Understanding**: Design thinking involves actively listening to users to understand their real needs, leading to the development of products and solutions that truly meet their expectations.

2. **User-Experience-Focused Innovation**: The focus on user experience encourages teams to explore new ideas and adopt a creative approach to problem-solving, resulting in innovative and differentiated solutions.

3. **Interdisciplinary Collaboration**: Design thinking involves close collaboration between different teams and disciplines, leading to a deeper understanding of the issues and better problem-solving.

4. **Quick Idea Evaluation**: The design thinking method also includes the creation of prototypes and user testing, allowing for quick evaluation of ideas and adaptation accordingly.

## Disadvantages of Design Thinking

1. **Time and Cost**: The design thinking method can be longer and more expensive than traditional problem-solving approaches.

2. **Deep Understanding Needed**: Design thinking requires a deep understanding of principles and tools to be effectively used, making team training necessary.

3. **Collaboration Required**: Design thinking involves close collaboration between different teams and disciplines, which can be difficult to establish in some organizations.

---

Design thinking is a powerful approach to problem-solving by putting the user at the center of all decisions. However, it's important to understand the potential advantages and disadvantages before deciding to adopt it in an organization. By using this method strategically and consciously, companies can take advantage of its benefits while minimizing its drawbacks.

And that's it ! See U next level Doobs !
How To Generate Open Graph Tags in Any Website
Tags: beginners, webdev, opensource, tutorial
Published: 2023-03-08 09:23:28


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

Are you looking for an easy way to quickly generate OpenGraph for your website or blog? This article provides a step-by-step guide on how to generate OpenGraph tags in a few simple steps. OpenGraph is essential for social media sharing, as it helps to ensure that when someone shares your content on their social media, it looks great with the right image and description. With this article, you will learn how to easily add OpenGraph tags in less than 5 minutes.

By using open graph tags in conjunction with [digital marketing services](https://rankvise.com/), businesses can ensure their content is being presented in the optima

## What is an Open Graph Tag?
The Open Graph protocol is a powerful tool for web developers and content publishers. This protocol allows web pages to become objects within the graph of social media networks, such as Facebook, Twitter, LinkedIn and others. With the Open Graph protocol, users can easily share rich stories, photos and videos across multiple social networks all at once with just one click.

Open Graph works by allowing webmasters to add special meta tags to their website's code. These meta tags allow social networks to access extra information about each page that they index. By providing this extra information in advance, it ensures that when shared on a network like Facebook or Twitter, the post will look more attractive than if it had been automatically generated from just a URL link alone. This makes sharing content much easier for everyone involved - both the publisher of the content and those who are looking to discover new content.

## How To Generate Open Graph Tags

```
<!-- Open Graph Tags -->
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="SEO TITLE" />
<meta property="og:description" content="SEO DESCRIPTION" />
<meta property="og:url" content="WEBSITE URL" />
<meta property="og:site_name" content="WEBSITE NAME" />
<meta property="article:publisher" content="facebook.comUSERNAME" />
<meta property="og:image" content="FEATURED IMAGE LINK-PNG-1200x628" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="628" />
<meta property="og:image:type" content="image/png" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:site" content="@USERNAME" />
```

Note: Add and Replace Your Content with Mentioned Above.

## Conclusion
In this day and age, having a presence on the internet is key for businesses to engage with customers. Social media platforms are one of the most important ways to do this. Open Graph is a type of code that helps maximize your visibility on social media platforms like Facebook and Twitter. In this article, we will present a step-by-step guide that can be used to quickly generate Opengraph tags for your website.
Breaking the Stereotype: Girls and Programming
Tags: girl, programming
Published: 2023-03-08 09:19:23

For a long time, computer programming has been seen as a male-dominated field. But the truth is, there are many talented and creative women in the programming world. In fact, some of the most innovative and successful programmers in history have been women, from Ada Lovelace, the world's first computer programmer, to Grace Hopper, who developed the first compiler.

However, despite the achievements of these trailblazers, the stereotype persists that programming is a "boys' club." This stereotype can discourage young girls from pursuing careers in computer science and programming. But it's time to break down these barriers and empower girls to pursue their passions and talents.

Girls who code are bringing fresh perspectives to programming, developing innovative solutions to complex problems, and challenging the status quo. With their creativity and problem-solving skills, girls are proving that programming is not just for boys.

To encourage more girls to enter the field of programming, we need to provide them with the support and resources they need to succeed. This includes mentorship programs, coding camps, and scholarships to help girls pursue their education in computer science.

At the same time, we need to challenge the stereotype that programming is a male-dominated field. We need to celebrate the achievements of women in programming and showcase the many talented and successful female programmers out there.

By breaking down these barriers and empowering girls to pursue their passions in programming, we can create a more diverse and innovative tech industry. So let's encourage more girls to code and bring their unique perspectives and talents to the world of programming!
Tips/Tricks for a beginner to Git/GitHub
Published: 2023-03-04 18:59:17

When I switched from medicine to software engineering as a career path, one of the first intimidating things I had to learn was how to handle source control.

The first hurdle was to understand why I needed another copy of my work in a remote location (something I quickly understood the reasoning for when I deleted something that was working and couldn’t get it working again haha because I couldn’t remember what state things were in)

So below is a compilation of the commands I’ve learned in my Git journey to help me stay sane. I’m sure a bunch of these could be found online somewhere (maybe even on official documentation sites but I don’t know about you but I found them and even to this day find them very hard to approach and understand sometimes).

The below situations are some of the most common scenarios I’ve run into (after the initial step of creating a repo on the GitHub website and then connecting the repo with a project I have locally):

**Show & pull remote branches**

```
git branch -a OR git branch -r

git checkout -t remotes/repo/branch
```

**Clear tracked files**

```
git clean -d -f
```

**Accidentally commit and push a file**

```
git rebase -i [commit hash from before change]
```
Change word pick to edit of hash related to commit
Make changes to files
(if the only change you need to do is to remove the file)-

```
git rm [path to file] -r
```
If you need to modify that file as well, first modify the file

```
git add changed file
git commit --amend
git rebase --continue
git push --force
```

Alternatively for accidentally committing and pushing a file:

```
git reset — soft [prior commit hash]
git reset file_name
git commit -m “new message for commit”
```
NOTE: for only single commit in branch: 

```
git commit -a — amend 
```
after fixing issue locally

```
git rebase -i master
```

**Show current branch:**

`git branch — show-current`


**Unstage a file added:**

```
git restore — staged [file path]
```


**Undo last commit locally:**

```
git reset HEAD~
```

**Cherry-pick:**

Merge main in dashboard
Choose sha of commit
Switch to branch you would like

```
git cherry-pick -x <sha>
git push
```
confirm push worked and build is successful

Please let me know if there are any mistakes or anything you would add :) I’m definitely still learning all of this even though I’ve been in the field for almost 3 years now.
Write a method like Python's string.printable in Groovy
Tags: groovy
Published: 2023-03-08 09:03:14

To find out if a string has only printable characters, Python has a function called string.printable. We can make our own `String.isPrintable()` using metaprogramming in Groovy.

    import java.nio.charset.Charset

    String.metaClass.isPrintable = { return Charset.forName("US-ASCII")
                                               .newEncoder()
                                               .canEncode(delegate) 
                               }

    assert 'Abc'.isPrintable() == true
    assert 'àé'.isPrintable() == false
    assert 'môre'.isPrintable() == false
    assert 'de076'.isPrintable() == true
Placement and Training Course in Chennai
Tags: education
Published: 2023-03-08 08:58:55

Any professional must invest in training and development. It assists you in improving your performance and your organization's business objectives. Developing new skills makes a person more efficient at work or can handle new responsibilities and challenges. Join FITA Academy's Placement Courses, which offers advanced certification training and 100% job placement assistance.
Website: [Placement Courses in Chennai](https://www.fita.in/placement-training-in-chennai/) | [Online Placement Courses](https://www.fita.in/placement-training/)
Neat time and date manipulation with Groovy
Tags: groovy
Published: 2023-03-08 08:52:26

You can use `TimeCategory` for simple offset calculations:

    import groovy.time.TimeCategory

    use( TimeCategory ) {
        twelveSecondsLater = new Date() + 12.seconds
        twelveSecondsAgo = new Date() - 12.seconds
        oneMinuteLater = new Date() + 1.hours
        oneMinuteAgo = new Date() - 1.hours
        halfAnHourLater = new Date() + 30.minutes
        halfAnHourAgo = new Date() - 30.minutes
        twoHoursLater = new Date() + 2.hours
        twoHoursAgo = new Date() - 2.hours
        fiveDaysLater = new Date() + 5.days
        fiveDaysAgo = new Date() - 5.days
        oneWeekLater = new Date() + 1.weeks
        oneWeekAgo = new Date() - 1.weeks
        oneMonthLater = new Date() + 1.months
        oneMonthAgo = new Date() - 1.months
        oneYearLater = new Date() + 1.years
        oneYearAgo = new Date() - 1.years
    }

    println twelveSecondsLater.format("yyyy-MM-dd HH.mm.ss")
    println twelveSecondsAgo.format("yyyy-MM-dd HH.mm.ss")
    println oneMinuteLater.format("yyyy-MM-dd HH.mm.ss")
    println oneMinuteAgo.format("yyyy-MM-dd HH.mm.ss")
    println halfAnHourLater.format("yyyy-MM-dd HH.mm")
    println halfAnHourAgo.format("yyyy-MM-dd HH.mm")
    println twoHoursLater.format("yyyy-MM-dd HH.mm")
    println twoHoursAgo.format("yyyy-MM-dd HH.mm")
    println fiveDaysLater.format("yyyy-MM-dd")
    println fiveDaysAgo.format("yyyy-MM-dd")
    println oneWeekLater.format("yyyy-MM-dd")
    println oneWeekAgo.format("yyyy-MM-dd")
    println oneMonthLater.format("yyyy-MM-dd")
    println oneMonthAgo.format("yyyy-MM-dd")
    println oneYearLater.format("yyyy-MM-dd")
    println oneYearAgo.format("yyyy-MM-dd")