teleren/devto huggingface dataset:
The Path to Becoming a Great Software Engineer
Tags: softwareengineering, softwaredevelopment, algorithms, learning
Published: 2024-01-11 19:21:08


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


Embarking on the journey to becoming a proficient software engineer is both challenging and rewarding. In this article, we'll explore the key attributes and practices that distinguish a good software engineer from a great one.

**1. Master the Fundamentals**
The foundation of every great software engineer lies in a solid understanding of programming fundamentals. Dive deep into data structures, algorithms, and problem-solving. Platforms like LeetCode and HackerRank can be invaluable companions on this learning path.

**2. Continuous Learning and Adaptation**
In the ever-evolving landscape of technology, stagnation is not an option. Stay abreast of industry trends, new languages, and emerging frameworks. Online platforms, conferences, and community forums are excellent resources to fuel your appetite for knowledge.

**3. Effective Communication Skills**
Being a great software engineer is not just about writing impeccable code; it's also about conveying ideas and solutions effectively. Hone your communication skills, both written and verbal, to collaborate seamlessly with team members, stakeholders, and clients.

**4. Best Practices and Design Patterns**
Code is not just a means to an end; it's a craft. Embrace clean code principles, design patterns, and industry best practices. Strive for code that is not only functional but also maintainable and scalable.

**5. Version Control Mastery**
Proficiency with version control systems like Git is non-negotiable. Understand branching strategies, pull requests, and commit hygiene. A well-managed version control system is a hallmark of a disciplined and collaborative developer.

**6. Testing and Quality Assurance**
Reliable software requires rigorous testing. Explore unit testing, integration testing, and automated testing frameworks. Prioritize writing testable code and understand the importance of QA processes in the software development lifecycle.

**7. Time Management and Prioritization**
In a fast-paced industry, effective time management is a skill worth cultivating. Learn to prioritize tasks, set realistic deadlines, and break down complex problems into manageable chunks. Tools like Agile methodologies can guide your project management approach.

Becoming a great software engineer is a continuous journey of learning, adapting, and refining your skills. Embrace challenges, seek feedback, and never underestimate the value of a curious and growth-oriented mindset. As you navigate the dynamic world of software development, remember that excellence is not an endpoint but a constant pursuit.

Happy coding and may your journey be filled with exciting challenges and endless discoveries!
2024 Resolution
Tags: devresolutions2024
Published: 2024-01-11 19:10:46

My 2024 Resolution is pretty stright forward: I want to write at least one article per month on Dev.to 📝

That's it. 🥳

I know it's not a fancy one, but i want to make it achievable. I'm not a native english speaker, so writing articles is a challenge for me. I hope that by the end of 2024 i will be able to write articles without any problems. 🤞

Keep it up! 🚀
Notes to Self
Published: 2024-01-11 19:08:38

These are some thoughts I have learned/read somewhere that I would like to always make them stick in my mind and I want to write them down here so I can always come back to them and remind myself of them. <br><br>

- ITS NOT YOU!. No matter your job or how high up you are, it's not because you're smarter, better, stronger, or hard worker than others. It's not about your connections. It's because God gave you this, and you should be always grateful for it. Don't let it get to your head, and be always humble.
<br><br>

- YOU ONLY HAVE CONTROL OVER YOUR ACTIONS!. You can't control your life, your thoughts, your feelings, other people, or anything else. You have 0 control over everything except your actions. Focus on what you can control.
<br><br>

- EVERY ONE IS REPLACEABLE!. No matter how good you are at what you do. Here is the bitter truth: You are replaceable and everyone is.
<br><br>

    And always remmber, things can be seen from different perspectives/angles. :smile:
    
    <img src="https://raw.githubusercontent.com/irakan/my-learning-journey/main/memes/3.jpg" alt="perspective" width="400"/><br><br>
About being some steps ahead
Published: 2024-01-11 19:08:35

I think we all have struggled with some moment or issue at our work that made the world stop and all you could think about was how that had any solutions and you're only escape plan was to get mad.

## Being ahead of the issue

This may sound like some coach peep talk that does not change anything in your life, but, check this out.

This week I was talking with a manager that I really appreciate a lot and we were talking about my proactivity and how today it became rare to find people that works like this..

One of my major learnings from last year is that you really CAN'T stop and wait for your problems to solve theirselves alone. They say "if your problem has not a lot of solutions it means that your work is not good" and somehow this is a fact.

Once you find a bump in your sprint and need to take a day low in order to find the source of the issue and cut it off, your behavior can not be to send some e-mails, some tickets, some DMs and just wait for others to finish what your started -- if this was the case, they should be hired, not you. 

## How to behave in case of a barrier

If something or someone is making it impossible for you to continue your task or to do your work, there are some behaviors that I am trying to learn recently and I am sure that they will be of a great help for you:
- _Divide and conquer_: this means baby steps. Try to unlock your first problem and whilst you are waiting for a third party to solve it, you can go and start working on the next one.
- Communication: this is really obvious, but communication is keys while working with other person: you need to make sure that your team knows where are you working, how you are working, and, mainly, how they can make your life easier.
- Smart think: take a look at this situation that happened to me last year: I was trying to make the front-end work be better in order to supply some lack of organization that our back-end had, and this made your front-end much more smarted than he was supposed to be. I do not even need to say that this caused us some trouble afterwards, so, think, what is best: make the front-end smarter or make the back-end work better?

## Some final thoughts

Do not make your team disappointed because you are the one slowing down the sprint at every issue that you have to solve. Think smarter, act quickly and effectively. 

You must not wait for other to do your job.
this in javascript ?
Tags: webdev, javascript, programming, beginners
Published: 2024-01-11 19:08:22

In javascript this keyword can have different values in non-strict and strict mode. The value of this depends in which context it appears like, function, global, class

First we'll explore this in function context

```
function whatsThis() {
  return this;
}
console.log(whatsThis() === globalThis);// true

const detailObj = {
  name: 'vishwa'
};

detailObj.whatsThis = whatsThis;
console.log(detailObj.whatsThis() === detailObj); // true
```

the value of this depends on how function is called, In first console `whatsThis` is accessed on `globalThis` so the value of this is `globalThis`, In second console `whatsThis` is accessed on `detailObj` so the value of this is `detailObj`.
**So the value of this is the object that is used to call the function**.

In strict mode if function is accessed on `globalThis` the value of this is `undefined`.

```
function whatsThis() {
  'use strict'
  return this;
}
console.log(whatsThis() === undefined);// true
```
**Arrow functions:**
In arrow functions `this` retains the value of it's enclosing lexical context `this`, arrow functions create the closure over the `this` value of it's surrounding scope. so no matter how function is invoked the value of `this` is same what it was when the function was created.

```
const arrowFunc = () => this;

console.log(arrowFunc() === globalThis);

const obj = {
  name: 'vishwa'
};

console.log(arrowFunc.call(obj) === globalThis); //true 
```
**Constructors:**
when a functions is used as a constructor it's `this` is bound to the new object created. The value of `this` becomes the value of the new expression unless the constructor returns another non-primitive value.

```
function getInfo() {
  this.name = 'vishwa';
  this.job = 'coding';
}

const detail = new getInfo();

console.log(detail); //{"name": "vishwa",  "job": "coding"}

function getInfo2() {
  this.name = 'vishwa';
  return {id: 100};
}

const detail2 = new getInfo2();

console.log(detail2); //{"id": 100}
```

**Class:**
Class constructors are always called with new, so their behaviour is same as function constructors.

```
class Detail{
    constructor() {
        this.name = 'vishwa';
        this.job = 'coding';
    }
}

const detail = new Detail();

console.log(detail); // {name: 'vishwa', job: 'coding'}
```

**bind method**
Calling bind on function f, creates a new function with the same body as function f, but the value of this is bound to the first argument of bind. 

```
function f() {
  return this.a;
}

const obj = {
  a: 'pop'
};

const binded = f.bind(obj);

console.log(binded()); // 'pop'
```

**this in DOM event handlers:**
When a function is used as a `eventlistener` it's this value is bound to the element on which `eventlistenter` is placed

{% codepen https://codepen.io/vishwa357fe5fc25/pen/GReZGvQ %}
The Twelve-Factor App: Admin processes
Published: 2024-01-11 16:32:27

### Run admin/management tasks as one-off processes

---

Besides the app's regular business processes, developers frequently need to perform one-off administrative or maintenance tasks for the app, such as:

- Running database migrations;
- Running a console to run arbitrary code or inspect the app's model against the live database;
- Running one-time scripts committed into the app's repo(e.g. `php scripts/fix_bad_records.php`)

Those tasks should operate within the same environment as the regular long-running processes of the app. They execute against a release, utilizing the identical codebase and configuration. Moreover, to prevent synchronization issues, the code must be shipped alongside the application code.

All process types should employ the same dependency isolation techniques. For instance, if the Ruby web process utilizes the command `bundle exec thin start`, the database migration should also use `bundle exec rails db:migrate`.

The Twelve-Factor app strongly advocates for languages that offer a built-in REPL shell, simplifying the execution of one-off administrative scripts. During development, developers can run these scripts by accessing a local console within the app's container. In a production deployment, developers can access the app's console via `SSH` or another mechanism provided by the execution environment, and then execute the script.

_This Twelve-Factor App post series is a means for me to
consolidate the knowledge I've gained while studying these
rules. Please feel free to visit [the site (https://12factor.net/) for more detailed explanations. That's all folks!_
فونت فارسی ایران سنس – IranSansX
Tags: font
Published: 2024-01-11 19:06:03

[فونت ایران سانس](https://fontfa.com/font/iransansx/) ساخته شده توسط مسلم ابراهیمی که از روی خط نسخ ساخته شده است .
این فونت از سری فونت های مناسب متن و طراحی و سایت هست .
فونت معرفی شده یکی از پرطرفدارترین قلم های ایرانی در چند سال گذشته می باشد .
My DEV Resolutions 2024
Tags: devresolutions2024, webdev
Published: 2024-01-11 19:04:13

## Professional Goals
### 1. Filling My GitHub with Exciting Projects
I've recently realized that despite working on some fantastic projects throughout my career, my GitHub has been a bit lonely. 😅 So, here's the plan: I'm on a mission to create and share more projects on my GitHub, showcasing my skills and passion for coding.

#### Action Steps:
The plan is to work on a new project idea every month, exploring different libraries, frameworks, and even languages.

#### Timeline:
I'm aiming to complete at least one project each month, ensuring a steady flow of exciting content on my GitHub.

### 2. Foster Open Source Contributions
I aspire to contribute to environmentally sustainable projects by actively engaging in their open-source initiatives, enhancing both their platforms, and bolstering my GitHub profile.

#### Action Steps:
Identify and align with eco-friendly open-source projects, acquaint myself with project guidelines and documentation, and actively contribute through meaningful code, documentation, or other valuable assets.

#### Timeline:
My goal is to contribute to at least one new open-source project every month.

### 3. From Coding to Leading Projects
Currently, I'm deep into my master's program in Project Management here in the UK, and I can't wait to channel my passion for organizing and leading into a new professional adventure.

#### Action Steps:
Once I wrap up my degree in March 2024, I'll kick off the search for my next exciting role.

#### Timeline:
Now, there's no strict timeline set in stone, but I'm eager to dive into this transition as swiftly as possible.


## Personal Aspirations
Here's a sneak peek into my aspirations for the year 2024
- I want to actively document and share my coding adventures on platforms like dev.to and Medium. 
- My goal is to indulge in the books, aiming to read at least one captivating piece every month. (Send over your book recommendations)
-  I'm planning to turn my artistic passion into a side hustle.
- I am enthusiastic about broadening my connections with fellow developers on various social platforms.
- Incorporate physical activity into my routine (long-awaited plans for bike riding).
- Embark on a journey to discover the natural beauty, rich history, and artistic expressions in the UK and beyond
- Cultivate new friendships.


## DEV Community Contributions

**Contribution Goal:** 
Strive to contribute to the open source development of the DEV app, ultimately earning the coveted DEV contribution badge. 🤩 

**Collaboration Plans:** 
Actively participate in the DEV community, establish myself as a trusted member, and assist new developers in navigating and benefiting from this supportive space.
RepoGPT: ChatGPT over any GitHub repo
Published: 2024-01-11 19:00:16

Chat with any GitHub repo with the power of #chatgpt 😍😍

**Check it out here:** [https://repogpt.vardhaman.me/](https://repogpt.vardhaman.me/)

**No more issues with**
- Reading long READMEs 📝
- Understanding project structure 🗄️
- trying to understand different files 🧐
and more...

Just ask **RepoGPT** and got onto #coding 😋


Utilise the power of ChatGPT specially for your custom repository 😘

_Github: https://github.com/cyai/RepoGPT_
How to find all the colors used in a Webpage
Published: 2024-01-11 18:59:33

This is write up of how i created this chrome extension called ColorHunter. The project is also open source, you can find it here: Github.

What we are going to see is the part where we scan all the elements in the webpage and find all the colors.

## Step 1: How to get all elements in a webpage?

Simple, the following code will get all the elements in the page and runs a foreach loop on them.

```js
const allElments = document.querySelectorAll<HTMLElement>("*");
allElments.forEach((element) => {
    console.log(element)
});
```

## Step 2: How to get all the colors in a HTML element?

We are using the `window.getComputedStyle() `method.

```js
const style = window.getComputedStyle(element);
style.color // text color
style.backgroundColor // background color
```

## Step 3: Putting it all these together.

```js
const colors: string[] = [];
const allElments = document.querySelectorAll<HTMLElement>("*");
allElments.forEach((element) => {
    const style = window.getComputedStyle(element);
    colors.push(style.color);
    colors.push(style.backgroundColor);    
});
```

That’s all.

Project: [[Github](https://github.com/plsankar/colorhunter?utm_source=medium&utm_medium=blog&utm_campaign=blog&utm_term=find-colors)] [[Chrome Extension](https://chromewebstore.google.com/detail/color-hunter/bpgkpfghcehfbffdfhelbooocbafaakd?utm_source=medium&utm_medium=blog&utm_campaign=blog&utm_term=find-colors)]

Mine: [[Portfolio](https://lakshmisankar.com/?utm_source=medium&utm_medium=blog&utm_campaign=blog&utm_term=find-colors)] | [[Github](https://github.com/plsankar)]
Placeholder Contributor
Tags: hack23contributor
Published: 2024-01-11 18:20:15

Hacktoberfest is DigitalOcean’s annual event that encourages people to contribute to open source throughout October. Much of modern tech infrastructure—including some of DigitalOcean’s own products—relies on open-source projects built and maintained by passionate people who often don’t have the staff or budgets to do much more than keep the project alive. Hacktoberfest is all about giving back to those projects, sharpening skills, and celebrating all things open source, especially the people that make open source so special.

**_Introduction_** :
Hey folks, Ishika this side, a B.Tech 5th sem student having deep interest in Web Development and open-source Contribution. This is for the very first time I contributed to open-source. This is journey of emotions of acceptance of my 1st pull request. I can't even described that moment in words, how overwhelming is to get your 1st PR MERGED by the project maintainer.


#### Highs and Lows
Though, this entire month of October is full of dopamine hit of seeing your PR acceptance mail to not solving any issue, not able to understand what is going in the repository. Contributing to Open-source is all different side of ball-game as compared to making project, deploying it. There were moments, when I was completely blank on how to proceed in the codebase because I wasn't able to understand what the codebase is trying to fix be it terms of adding a new feature or improving documentation.

#### Growth
I really grew up as a developer, honed my skills to now writing much better optimised code. Contributing to open-source taught us being patient enough to understand code-base first, analyze it for further solutions and then adding/deleting as per the requirement of new feature to be added. My all 4PR's got merged. My tech-stack majorly revolved around front-end dev.
Since, I was a new-bie, things were overwhelming at first interaction but gradually looks comfortable.

My sincere advice to all people who are looking to participate in upcoming season of Hactoberfest is to take it as a learning curve in your journey rather chasing swags:) It's okay swags are cool but at the same moment learning should be our first priority.
That's all guyss. This blog is a gist of what my experience says about being a Hactoberfest2023 participant.


See ya later then:)

Regards,
Ishika Jain
REACT NATIVE SQLITE STORAGE PROBLEM
Published: 2024-01-11 18:16:43

Hi, good morning devs, I found this forum because, I need resolve a problem with my project, If anyone can help me with this problem.
* What went wrong:
Execution failed for task ':react-native-async-storage_async-storage:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':react-native-async-storage_async-storage:androidJdkImage'.
   > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for JdkImageTransform:

Thank you!.
Using Tasmota for Homeautomation
Tags: iot, smarthome, homeassistant
Published: 2024-01-14 14:56:42

---
title: Using Tasmota for Homeautomation
published: true
date: 2024-01-11 18:00:50 UTC
tags: IOT,Smarthome,Homeassistant
canonical_url: https://blog.bajonczak.com/using-tasmota-for-homeautomation/
---

Actually, I will set up many Temperature sensors in my house, so I figured out that I can use Tasmota for setting up a sensor that measures only the temperature at the current place. I think this is a good option instead of building my own library and getting errors and so on. So why not use a ready one?

Hardware Bucketlist

My bucket list contains the following parts

- ESP Device  
There are various elements, just look for one with few GPIO and deep sleep capacity like the [esp01](https://amzn.to/3QiNzj2?ref=blog.bajonczak.com) or s.th. In this article, I use the Wemos D1 mini, because this was already on my table ;) 
- [DHT11](https://amzn.to/48Rl03G?ref=blog.bajonczak.com) / [DHT12](https://amzn.to/46OjA87?ref=blog.bajonczak.com)  
You can use one of them if you want more accuracy and only temperature you can also use the [DSB Temperature Sensor](https://amzn.to/3QgZiyE?ref=blog.bajonczak.com)
Celebrating Milestones: The Art of Sending Work Anniversary eCards
Tags: groupgreetingcards, birthdayecards
Published: 2024-01-11 17:59:07


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

As professionals spend a significant portion of their lives in the workplace, acknowledging work anniversaries becomes a meaningful way to celebrate commitment, dedication, and shared achievements. In this blog post, we'll explore the growing trend of sending [work anniversary eCards](https://www.greetpool.com/occasions/work-anniversary) and how this modern approach can add a personal touch to the recognition of professional milestones.

**The Evolution of Workplace Recognition:**
Discuss the traditional methods of celebrating work anniversaries and how the digital era has transformed these practices.
Highlight the shift towards more personalized and immediate forms of acknowledgment, such as eCards.

**Personalization in the Digital Age:**
Explore the customizable features of work anniversary eCards, allowing colleagues and employers to add a personal touch with messages, images, and even interactive elements.
Showcase the flexibility of eCards in catering to diverse preferences and personalities.

**Accessibility and Instant Gratification:**
Emphasize the convenience and speed of sending eCards, allowing for instant recognition of a colleague's work anniversary.
Discuss how this immediacy enhances the overall experience for both the sender and the recipient.

**Environmental Considerations:**
Address the eco-friendly aspect of digital cards compared to traditional printed ones, aligning with the growing emphasis on sustainability in the workplace.
Share statistics or facts about the environmental impact of reducing paper usage through the adoption of eCards.

**lobal Connectivity:**
Explore how work anniversary eCards facilitate recognition in a globalized workplace, bridging geographical gaps and fostering a sense of unity among remote or distributed teams.
Provide examples of multinational companies successfully implementing digital recognition strategies.

**Creative and Fun Designs:**
Showcase the diverse and creative designs available for work anniversary eCards, making the celebration not only meaningful but also enjoyable.
Encourage readers to explore the various themes and styles that can suit different personalities and corporate cultures.

**Employee Engagement and Morale Boost:**
Discuss the positive impact of acknowledging work anniversaries on employee engagement, satisfaction, and overall morale.
Share anecdotes or studies highlighting the correlation between recognition and increased employee retention. 

**Conclusion:**
Summarize the benefits of sending work anniversary eCards, from personalization and speed to environmental considerations and global connectivity. Encourage businesses to embrace this digital evolution in workplace recognition as a way to celebrate their employees' dedication and contributions in a modern, impactful manner.