teleren/devto huggingface dataset:
AWS Cloud Resume Challenge, my resume, and #opentowork
Tags: aws, amazon, cloud, linkedin
Published: 2024-02-26 22:53:14

https://crc.tim-andes.com/

That's my resume as challenged by the team at [Cloud Resume Challenge](https://cloudresumechallenge.dev/docs/the-challenge/aws/).

This is a blog post about creating the resume using Amazon Web Services (AWS), Terraform, GitHub Actions for a CI/CD DevOps workflow, AWS Lambda, S3 static website hosting, DynamoDB, Javascript, Python, API Gateway, Route53, and so many other fantastic tools.

Why did I create my AWS cloud hosted resume? Simply enough, I wanted to be able to prove that [the AWS Certification I earned](https://dev.to/tacodes/aws-certification-test-with-a-27-first-attempt-pass-rate-how-i-passed-on-my-first-try-ab8) wasn't just a piece of paper, but evidence of skill in my re-targeted career aiming at cloud solutions.

The most important aspect of completing the Cloud Resume Challenge was being able to tie so many services together to create a serverless app with a CI/CD workflow. There are many different ways to accomplish the same goal, so it was important for me to lean into one particular techstack and roll with it. Beyond that, beginning my exploration of Infrastructure as Code (IaC) and Hashicorp's Terraform platform has been eye-opening. Tim's AWS Journey is henceforth amended to Tim's AWS + Terraform Journey.

I was a web developer. I am now an AWS Cloud Certified Solutions Architect who embraces IaC. I am also [#opentowork](https://www.linkedin.com/in/timandes/)

[Some GitHub examples, including parts of the project, CI/CD workflow, etc](https://github.com/tim-andes/)
Evolution of Software Development: Summary
Published: 2024-02-26 22:49:05

In this conversation, Krish discusses the evolution of software development over the past two decades. He covers various topics such as technology changes, work styles, shorter attention spans, the developer vs engineer mindset, and the importance of passion and commitment in one's career. Krish emphasizes the need for adaptability and embracing change in the software development industry.

## Takeaways

- Technology in software development is constantly evolving, particularly in front-end development.
- Work styles have changed, with remote work becoming more prevalent and flexible working hours.
- Shorter attention spans have become a challenge in design discussions and meetings.
- Developers need to adopt an engineering mindset and approach problems with fresh perspectives.
- Passion and commitment are crucial for long-term career fulfillment in software development.

## Chapters

00:00 Introduction

01:33 Technology Changes

05:19 Shorter Attention Spans

06:20 Developer vs Engineer Mindset

08:30 Passion and Commitment

10:10 Summary

## Video

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

## Transcript

https://products.snowpal.com/api/v1/file/a6517c5c-7996-491f-b5c7-b570791c7eae.pdf
Installing Tailwind CSS as a PostCSS plugin and Vite
Tags: webdev, tailwindcss, vite, tutorial
Published: 2024-02-26 22:37:01

Ready to boost your website's building? Let's explore Tailwind CSS and Vite, two tools that make web design super fast and easy.

Installing Tailwind CSS can be straightforward, especially when using a Content Delivery Network (CDN). While it's true that CDN setups are simple, they might lack flexibility for customization. However, there's another method that might make you feel like a pro developer: using PostCSS.

Jokes aside, there are three main ways to install and use Tailwind CSS. The first method involves using a CDN, which is indeed super easy—just copy the link and paste it into your HTML file. However, customizing your setup might be challenging with this approach.

The second method involves using Tailwind's CLI (Command Line Interface) and terminal, but we won't explore those today. Instead, we'll focus on using the PostCSS plugin with the build tool Vite.

Follow these steps and install Tailwind CSS using PostCSS and Vite:

**Step 1:**
Open your terminal in the project folder and ensure `node` and `npm` is installed.

```
node -v
npm -v
```
By checking their version. If not installed, download Node from [here](https://nodejs.org/en/download).

**Step 2:**
Initialize your project with `npm` 

```
npm init
```
in your terminal.

**Step 3:**
Install Vite using `npm`

```
npm i vite
```

**Step 4:**
Install Tailwind CSS, PostCSS, and Autoprefixer using `npm`:

```
npm install -D tailwindcss postcss autoprefixer
```

**Step 5:**
Initialize the Tailwind CSS configuration:

```
npx tailwindcss init
```

**Step 6:**
Create a postcss.config.js file in your project root folder and paste 

```
module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  }
}
```
these into it.

**Step 7:**
Customize your Tailwind CSS configuration in tailwind.config.js file:

```
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["*"],
  theme: {
    extend: {},
  },
  plugins: [],
}
```

**Step 8:**
Add a script to your package.json for starting Vite inside `scripts`:

```
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "vite"
  },
```
You can keep the test as it is, or if you want, you can remove it.

**Step 9:**
Create a CSS file (e.g., style.css or main.css) and include Tailwind CSS by adding the below 3 lines:

```
@tailwind base;
@tailwind components;
@tailwind utilities;
```

**Step 10:**
Run your project with:

```
npm start
```
Finally, link your CSS file to your HTML file.

Dive into the world of Tailwind CSS and Vite, experiment with different setups, and enjoy the journey of building beautiful, responsive websites. Happy coding!

---

**References:**
[Google](google.com)
[Tailwind CSS](https://tailwindcss.com/docs/installation/using-postcss)

---

Thanks for reading this article, I hope you found it interesting! Feel free to follow me to get notified when new contents are out!
Como Resolver Problemas de Modificação de Arquivos na Partição NTFS em um Sistema de Dual Boot com Linux e Windows
Tags: windows, linux, dual, boot
Published: 2024-02-26 22:09:07

Se você está enfrentando dificuldades para modificar ou excluir arquivos em uma partição NTFS enquanto utiliza um sistema de dual boot, você não está sozinho. Muitos usuários se deparam com essa questão, especialmente quando alternam entre o Windows e uma distribuição Linux, como o Linux Mint.

##Solução Proposta

A solução para esse problema é desativar a opção de "Inicialização Rápida" no Windows. Essa configuração, quando ativada, mantém o sistema de arquivos em um estado potencialmente inconsistente durante o desligamento do Windows, o que pode levar o driver do sistema de arquivos NTFS-3G no Linux a recusar a montagem da partição para leitura e gravação.

##Como Resolver

Ao desativar a opção de "Inicialização Rápida" no Windows, o sistema realizará um desligamento completo, garantindo a consistência do sistema de arquivos. Isso permite que o Linux monte a partição NTFS sem problemas de acesso, restaurando a capacidade de modificar arquivos na partição.

##Conclusão

Desativar a opção de "Inicialização Rápida" no Windows é uma solução eficaz para resolver problemas de modificação de arquivos em uma partição NTFS em um sistema de dual boot. Essa simples mudança garante uma experiência de dual boot mais suave e funcional, permitindo que os usuários desfrutem plenamente dos recursos de seus sistemas operacionais.

Fonte: https://forums.linuxmint.com/viewtopic.php?t=367461
Unlocking Opportunities
Tags: jobs, job, search, career
Published: 2024-02-26 21:50:17

In today's dynamic job market, staying connected and informed is crucial for both job seekers and employers. Expertini, a global job search platform, has taken a proactive step to enhance this connectivity by collaborating with Google Groups. The Expertini Jobs Google Group offers a wealth of benefits for individuals seeking employment opportunities and organizations looking to hire top talent. 


For employers and recruiters, the Expertini Group offers a streamlined approach to talent acquisition. Leverage the community to find qualified candidates, share job openings, and engage with a pool of motivated and skilled professionals actively seeking new opportunities. 

Join the Expertini [Jobs ](https://expertini.com)and unlock a world of possibilities for your career or talent acquisition strategy.
How to Generate Great Business Ideas as a Programmer
Published: 2024-02-26 21:19:33

As programmers and tech professionals, we have an amazing opportunity to build software products and services that can generate recurring passive income. But coming up with viable business ideas can be tricky. In this post, I'll share some tactics for brainstorming great business ideas that leverage our software skills.

**Know Your Motivations**
First understand why you want to start a side business as a programmer in the first place. Do you want more money, freedom, or intellectual challenge? Keep your motivations in mind as they will help guide your idea generation.

**Scratch Your Own Itch**
Think about everyday problems, inefficiencies, and frustrations you face in your work or personal life. How could software help solve those issues? The best product ideas often come from your own needs.

**Leverage Existing Skills**
Consider types of software projects you excel at or enjoy working on. Can you package those skills into a product or service others would pay for?

**Explore Hot Niches**
Research popular and growing niche markets like cryptocurrency, augmented reality, health tech, artificial intelligence, etc. Brainstorm how your programming abilities could serve those spaces.

**Review New Technologies**
Stay on top of emerging technologies and frameworks. Being an early expert in a new tech gives you an opportunity to build innovative products others may not have considered yet.

**Analyze Competition Gaps**
Evaluate existing software products and services in a niche. Find opportunities to provide value competitors are missing out on or improve on their offerings.

**Co-Create with Future Users**
Talk to potential customers and collaborate on identifying issues they want solved. They will guide you toward ideas they are willing to pay for.

The most rewarding products come from marrying your skills and interests with an underserved market need. Keep refining ideas until you find that sweet spot! As programmers, we have amazing potential to generate income through software - the key is finding the right idea.

Let me know what business ideas this process brings up for you!
React - designing an interactive modal
Tags: react, gamedev, systemdesign
Published: 2024-02-26 21:14:49

**Scenario**: I'm creating a game in React. What's the best way to structure the app in a way that I can render a series of interactive modals?

**Example**:
Player taps on a location on a map. As they move to the location, they'll encounter 0 to X other people on the way.
- These encounters will have interactive elements that determine how the encounter is resolved.
- Each one of those encounters may influence the ones after it (for example, I might conduct a trade, and subsequent encounters may decide to ignore me after).
- Let's say there's 3 types of encounters. As I resolve each one, I'll see the next one until I arrive at my destination.

I've thought of a couple ways to do this but wondering what the "best practice" is:

- Generate a list of potential encounters in a Game component, and pass it to a "Travel" component that conditionally renders text based off which type of encounter.
- Do the same as above, but then create/destroy the Travel component as each one is resolved.

- Have a "Travel" component generate the encounters, and then do the same conditional rendering.

Any other ideas?
NinjaBootstrap - A Real Tailwind Alternative
Tags: bootstrap, webdev, ui, frontend
Published: 2024-02-26 21:10:06

In the dynamic world of web development, evolution is not just a choice, but a necessity. Today, we're thrilled to introduce [NinjaBootstrap](https://bootstrap.ninja), a groundbreaking fork from the official Bootstrap framework, reimagined and revitalized for the modern developer. Our vision? Simple yet profound – to extend and enhance the beloved Bootstrap, making the web not just functional, but phenomenal.

## Embracing the Roots, Extending the Branches

Bootstrap has been a cornerstone in web development, a testament to its robustness and adaptability. I remember the first time I tried it, it was magic. Many of you may not remember, or not even know, how the web was before bootstrap came; you had to write all the CSS by yourself and it was hard enough without even considering mobile support. But as the digital landscape shifts, so must our tools. NinjaBootstrap is not just a fork; it's a homage and a leap forward. By meticulously building upon the original framework's SCSS, we've created something familiar yet refreshingly efficient.

## A Clean Fork for a Clear Future

Peek into our [GitHub repository](https://github.com/livecanvas-team/ninjabootstrap), and you'll see the essence of Bootstrap, untangled and refined. Unlike other libraries that veer far from their origins, NinjaBootstrap stays true to its roots. Our approach is straightforward – identify the utilities the web needs and integrate them seamlessly. **Our commitment is not to diverge but to enhance.**

## Beyond Monopoly: A Commitment to Diversity

Nowadays, the web has seen a tilt towards monopolistic trends in CSS frameworks, notably with Tailwind's rising dominance. While such trends aren't inherently negative, history teaches us the perils of a monopoly. Our initiative with Bootstrap.ninja is to provide a competitive alternative, diversifying the ecosystem, and preventing a one-size-fits-all scenario. **We believe in a web that thrives on choices and innovation.**

## A Call for Collaboration

The journey of [NinjaBootstrap](https://bootstrap.ninja) is not a solitary one. We will eventually propose our enhancements back to the original repository with a PR when we will feel the time has come. This isn't a quest for glory but a genuine effort to contribute to make the web a better place. We invite developers, designers, and dreamers alike to join us in this endeavor. Let's write the next chapter of the web together, with Bootstrap.ninja as a catalyst for creativity and collaboration.


## Looking Forward

Bootstrap was on the brink of being labeled "outdated", but with NinjaBootstrap, we breathe new life into it. We're not just updating a framework; we're revitalizing a philosophy – that the web should be as diverse as it is dynamic, as creative as it is functional. NinjaBootstrap is our pledge to this belief, a step towards a more vibrant and versatile web.

Join us in this exciting journey. Together, let's shape a web that's not just built, but crafted.

NinjaBootstrap – for a web that's not just good, but great.
Perspect — a dev tool focused on flow states
Tags: productivity, discuss, development, showdev
Published: 2024-02-26 21:00:55

I'm on a team working on a developer productivity tool — it's in beta but we've heard great feedback from it helping devs hit and maintain flow state more frequently. Check it out and let me know your thoughts below!
https://www.perspect.xyz/dev

[](https://www.perspect.xyz/dev)
What is busniess
Tags: beginners, react, discuss, productivity
Published: 2024-02-26 21:00:48

Are you interested in starting your own business but not sure where to begin? The process may seem overwhelming, but with the right guidance, you can make your entrepreneurial dreams a reality. 

First, identify your passion and strengths to determine the type of business you want to start. Next, conduct market research to understand your targetbrig)htandcompetition. Develop a solid business plan outlining your goals, strategies, and finances. Don't forget to network with other https://brightbytz.com/ and seek mentorship for valuable advice.

Ready to take the leap into  Start today and make your business dreams a reality!
Wagtail menu with children
Tags: wagtail, django
Published: 2024-02-26 20:59:36

Unfortunately there's no examples of admin menu with submenu in Wagtail 6 docs, but here's [Nigel van Keulen](https://wagtailcms.slack.com/team/U05TB4H2ZUG)'s solution from Wagtail's Slack [#support](https://wagtailcms.slack.com/archives/C81FGJR2S/p1708974237230339?thread_ts=1708963930.069649&cid=C81FGJR2S) channel:
```python
# wagtail_hooks.py

from wagtail import hooks
from wagtail.admin.menu import Menu, SubmenuMenuItem, MenuItem, SubMenuItemComponent
from wagtail.images.wagtail_hooks import register_images_menu_item
from wagtail.documents.wagtail_hooks import register_documents_menu_item
from wagtail.admin.wagtail_hooks import register_collections_menu_item

# change app to your main app folder with settings/base.py
from app.settings.base import HIDDEN_SETTINGS_MENU_ITEMS, HIDDEN_MAIN_MENU_ITEMS


assets_menu = Menu(
    register_hook_name="register_assets_menu",
    construct_hook_name="construct_assets_menu",
)

@hooks.register("register_assets_menu")
def register_assets_menu():
    return register_images_menu_item()

@hooks.register("register_assets_menu")
def register_assets_menu_item():
    return register_documents_menu_item()

@hooks.register("register_assets_menu")
def register_assets_menu_item():
    return register_collections_menu_item()

@hooks.register("register_admin_menu_item")
def register_assets_menu_item():
    return SubmenuMenuItem(
        _("Assets"),
        name="assets",
        icon_name="folder-open-1",
        menu=assets_menu,
        order=300,
    )

@hooks.register("construct_settings_menu")
def hide_settings_items(request, menu_items):
    menu_items[:] = filter(lambda item: item.name not in HIDDEN_SETTINGS_MENU_ITEMS, menu_items)

@hooks.register("construct_main_menu")
def hide_main_items(request, menu_items):
    menu_items[:] = filter(lambda item: item.name not in HIDDEN_MAIN_MENU_ITEMS, menu_items)
```
```python
# settings/base.py, adjust to needs

HIDDEN_SETTINGS_MENU_ITEMS = [
    "collections",
    "workflow-tasks",
    "workflows",
    "redirects",
    "menu",
    "groups",
    "users",
]
HIDDEN_MAIN_MENU_ITEMS = [
    "reports",
    "images",
    "documents",
    "wagtaildocs",
    "help",
    "snippets",
]
```
all "MPV For Fixed Price" vendors in one directory
Tags: mvp, freelance, directory, development
Published: 2024-02-26 20:51:12

# Project Report: Launching MVP Wizards Directory

## What I Did

1. **Domain Purchase**: Acquired the domain [mvpwizards.com](https://mvpwizards.com/) for $11.
2. **Idea Validation**: Garnered 100 likes and 50 comments in 2 hours, validating the interest in the project.
3. **Website Setup**: Used @unicornplatform to clone a directory template. Unicorn AI generated 80% of the site's text.
4. **SEO Research**: Conducted keyword research using Google Keyword Planner to optimize the homepage.
5. **Logo Creation**: Designed the logo using ChatGPT.
6. **Content Management**: Utilized Google Sheets (as CMS on Unicorn) to organize offers collected from comments.
7. **Offer Submission**: Implemented a form for MVP builders to submit their offers.
8. **Newsletter Signup**: Added a form for visitors to sign up for updates.
9. **Progress Report**: Compiled and shared the steps taken so far.

## Next Steps

1. **Offer Updates**: Add new offers received throughout the week.
2. **Directory Listings**: Use ListingBott to list the directory on other relevant platforms.
3. **Content Marketing**: Deploy SEObot for blogs related to productized agencies and MVPs.
4. **Search Engine Indexing**: Accelerate indexing on Google with IndexRusher.
5. **Cross-Linking**: Link the directory from all other projects I manage.
6. **Social Media Strategy**: Draft engaging posts for platforms like Hacker News, Reddit, DevTo, Hackernoun, X, and LinkedIn.
7. **Community Engagement**: Monitor internet discussions related to MVPs and promote MVP Wizards.
8. **SEO Optimization**: Refine SEO strategy based on keyword performance.
9. **Networking**: Reach out to incubators and accelerators to highlight the directory's value.
10. **Market Outreach**: Monitor Upwork for potential clients seeking fixed-price MVP services.

## Reflection

This project was spontaneously conceived and launched within hours, inspired by the demand for fixed-price MVP services observed on social media and personal inquiries. The quick action plan and execution demonstrate the project's potential impact and value proposition.

I'll provide an update on the project's progress and its impact in the coming weeks.

How it started {% twitter 1762134952206811170 %}
Idiomatic Programming: Respect the laws of the (programming language's) land
Published: 2024-02-26 20:50:23

Ruby on Rails is “vilified” for being an opinionated framework. While one cannot really disagree that it has strong opinions as a framework and that it will make your life a bit of a misery if you attempt to deviate from its well established and recommended patterns, it is hard to argue that a number of other languages and frameworks also do not fall into this category.

Let’s take my most recent, favorite language, Golang. It is a beautiful language that is both strongly typed and extremely fast at runtime. But, does it have strong “opinions” about what to do and what not to do. _I think so._

---

_Is Ruby on Rails an opinionated framework? You bet!_

_Is it the only opinionated framework out there? Definitely not._

---

Let’s take a look at a simple function written in Golang (this snippet is taken from our [Access Control API](https://access-control-list-api.snowpal.com/)).

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

Even if you are not familiar with Go, what is something that immediately stands out? Yes, the multiple return statements. This is something that is generally frowned upon in a number of other languages with the argument being that there should be one (and sometimes, utmost two) return statement(s) in any given function. We see 3 above and there will be many more for more complex functions.

Is this behavior accepted in Golang? Well, it is not just accepted but it is actually expected. This is how you write Go code. If a fair number of languages reject this approach that is idiomatic in Golang, could one also call Go opinionated?

The way I look at it is this.

> Be a Roman in Rome.

If you wrote Java code as a Ruby programmer, or Golang code as a TypeScript programmer, you want to ensure Java doesn’t smell of Ruby, and Golang doesn’t smell of TypeScript. We live in a polyglot world where most developers are context switching on a weekly, or sometimes, even a daily, basis _(hint: developers at [Snowpal](https://snowpal.com))_ so this can happen time and again (and inadvertently), and it will unless you have due processes in place to catch this before it is pushed to higher environments.

Here’s what I would recommend:

- Look up a few repos to get a sense of a new language (or framework)
- See how other contributors write code
- Understand the rationale behind anything that you disapprove of (at least, initially)
- Write code — first, the way you would have written agnostic to the language, and then, tweak it to suit the style of the language/framework, and the repo it ends up sitting in as well
- Ask for feedback from more experienced programmers in that language
- Improve continuously!