teleren/devto huggingface dataset:
Software Design and Analysis in Nutshell
Published: 2023-10-18 08:17:03

---
title: Software Design and Analysis in Nutshell
published: true
date: 2023-02-25 17:30:00 UTC
tags: 
canonical_url: 
---

Software ရေးတယ်ဆိုတာက Code တွေကိုချက်ချင်းတန်းရေးလိုက်တာမျိုးမဟုတ်ဘူး။ အဲ့လိုလုပ်တာကတော်တော်ကိုမှားတယ်။ Analysis နဲ့ Software Design ကိုသိဖို့လိုသေးတယ်။ ကျော်လို့မရဘူး။ အဲ့လိုမလုပ်ဘူးဆိုရင် Enterprise Software ရေးရင်ခွေးအကြီးလှည်းနင်းသလိုပဲဖြစ်မှာ။ အဲ့လိုမဖြစ်ဖို့က Architect တွေခန့်ထားဖို့လိုတယ်။ အဲ့လိုမခန့်နိုင်ရင် အတွေ့အကြုံများတဲ့သူကို Software Design အတွက် Decision Making ချခိုင်းဖို့လိုတယ်။ အဲ့လိုမလုပ်ရင်ခွေးဖြစ်မှာပဲ။

Software က Enterprise Level ရောက်လာပြီတဲ့။ Code တွေကလူဖတ်ရနားမလည်ဘူး။ Rapid Development လုပ်ထားတယ်ပေါ့။ Rapid Development ကမြန်မြန် Delivery လုပ်ချင်တာမျိုးကိုပြောတာ။ ဒီလိုမျိုးလုပ်ရင် ပိုက်ဆံတော့ရမယ်။ Maintainability က အောက်ကိုထိုးကျသွားရော။

Project ကိုမနိုင်တော့ Software Engineer တွေထပ်ထည့်၊ ထပ်ထည့်။ လူတွေသာများသွားတယ် Code တွေက လူဖတ်ရနားမလည်ဘူး။ Bloated ဖြစ်နေတယ်ပေါ့။ အလုပ်လုပ်ရင်ပြီးရောဆိုပြီးရေးထားတာမျိုး။ Code တွေကတန်းကြည့်တာနဲ့နားမလည်ဘူး။ Iteration တစ်ခုစာလောက်ယူပြီးရှင်းပြဖို့လိုတာမျိုးရှိနေပြီဆိုရင်‌အဲ့ Code Base က Software Design မရှိဘူးဆိုတာကိုပြတာပဲ။

Software Design ချဖို့အတွက် အလွယ်ဆုံး Step က Clean Code ပဲ။ ဘယ်လိုလူနားလည်အောင်ရေးမလဲပေါ့။ ဒါ့အပြင် Naming Convention တွေ၊ API Documentation တွေရေးထားဖို့လိုသေးတယ်။ အပျင်းတက်နေလို့မဖြစ်ဘူး။ ဒီလို‌ပျင်းမှုတွေရဲ့ Consequences က Scalable မဖြစ်တာကိုပြတာပဲ။

Naming Convention တွေထားပြီးပါပြီတဲ့။ Architecture ပိုင်းကို Design ချဖို့လိုသေးတယ်။ Architecture ဆိုတာက Folder Structure ကိုနာမည်ဘယ်လိုပေးရမလဲဆိုတာမဟုတ်ဘူး။ ဒီ Code က ဘယ်နေရာဘယ်လို Behave တယ်ဆိုတာကိုပြောတာပဲ။ ဒီနေရာမှာဒါဖြစ်ရမယ်၊ ဒါကို Refactoring လုပ်ရင်ဒါဖြစ်ရမယ်ဆိုတာမျိုးကိုပြောတာ။ Design ချပြီးပါတဲ့ Code စရေးမယ်ဆိုပါတော့။ ချပေးထားတဲ့ Design အတိုင်း Follow လို့မရတာမျိုးတွေရှိလာမယ်။ ဒါဆိုဘယ်လိုလုပ်မလဲ။ ဒီလိုမျိုးအစကတည်းက Projects Analysis and Planning တွေလုပ်ဖို့ကလိုတယ်။ အဲ့လိုမလုပ်တော့ Code တွေကကြည့်လိုက်တာနဲ့ တောသားလိုရေးထားတယ်ဆိုတာမျိုးမဖြစ်အောင်ရေးဖို့လိုတယ်။
Knative eventing - examples
Tags: kubernetes, knative, beginners, eventdriven
Published: 2023-03-09 15:37:02

#### Examples
[GitHub repo](https://github.com/ashok-an/knative-eventing-demoes)

##### `install/`
To create knative resources
```sh
eventing.sh  #to create knative eventing resources
kafka-broker.sh  #to create kafka resources for knative eventing
kafka-cluster.sh  #to create a in-cluster kafka cluster
serving.sh  #to create knative serving resources
```
**Alternate** use `kn quickstart kind` to create a cluster with serving and eventing installed

##### `apisource/`
Run `example.sh` to demo apisource that captures and prints kubernetes api server events

##### `broker-trigger/`
Run `example.sh` to demo a broker based routing with triggers to filter and route to different sinks

##### `in-memory-channel/`
Run `example.sh` to demo a simple InMemory channel implementation

##### `pingsource/`
Run `example.sh` to demo a ping-source to be used in cronjob kind of scenario to send predefined events periodically to the event pipeline

##### `simple-sequence/`
Run `example.sh` to demo a sequence of 3 services, passing the result to a final service

---
##### In-progress
- `kafka/` - to implement a demo from `KafkaSource` to `KafkaSink`
- `triggermesh/` - to implement sources and sinks(target) with HTTP servers and cloud-events
Diagrams as Code
Tags: uml, diagrams, documentation
Published: 2023-02-28 07:02:17

Have you ever started working on a new project, started going through the documentation and you realize that the architecture diagrams or sequence diagrams are out of date.


![shocked meme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0earaq8np9rtokfd0zvf.gif)

I've certainly seen this situation arise numerous times in my career so far. So what do you do? One solution would be whoever's reading the document needs to do the work to figure out the updated architecture or flows and generate the new diagrams using UML tools. This isn't ideal and these are bound to get stale again in the future.

Another solution which I prefer is - maintaining diagrams as code which live in the same repos as the code. There are many tools these days which help us author diagrams from code.
My favorites are [Mermaid](https://github.com/mermaid-js/mermaid) and [PlantUML](https://plantuml.com/).
Now your code can live in the repo and evolve along with the codebase. You might need to do additional setup if you'd like the diagrams to be generated as part of your CI/CD.
I like to maintain these in a `/docs` folder within the project repo.


An example of how the code would look like in mermaid and it's output are below:

Code:
```mermaid
flowchart TD
    A[Christmas] -->|Get money| B(Go shopping)
    B --> C{Let me think}
    C -->|One| D[Laptop]
    C -->|Two| E[iPhone]
    C -->|Three| F[fa:fa-car Car]
```

Output:

![output](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42b7p04nvn75mxbiyxj0.png)

Bonus: Mermaid.js has built in support in GitHub for markdown files. You won't need to do anything special to generate diagrams here.


That's it, what's your take on these? Do you know any tools which offer better options or more customization? Leave a comment :smile: !
SolidWorks Training in Chennai
Published: 2023-02-28 10:15:21

IntelliMindz is a [SOLIDWORKS training in Chennai](https://intellimindz.com/solidworks-training-in-chennai/) . Our trainers are certified SolidWorks professionals. Each module of our SolidWorks training in Chennai was designed by including fundamental skills and concepts which will help you to master the use of SolidWorks Mechanical Design Software. Even though it has so many complex functionalities, it is the favorite tool of designers. Literally, SolidWorks is a favorite tool with a range of small to large projects.
Getting Started with React: Creating Our First Project
Tags: programming, tutorial, react, guide
Published: 2023-02-28 11:01:40

React is a popular JavaScript library for building user interfaces. It was created by Facebook and is widely used by developers all over the world. In this tutorial, we’ll walk through the basics of React and create a simple application.

## Prerequisites

Before we begin, you’ll need to have a basic understanding of HTML, CSS, and JavaScript. You should also have Node.js and npm installed on your machine. If you don’t have them already, you can download them from the [official website](https://nodejs.org/en/download/).

## Setting up the project

To create a new React project, you can use the `create-react-app` command-line tool. Open up a terminal and run the following command:

```bash
npx create-react-app my-app
```

This will create a new directory called `my-app` with all the necessary files and folders for a React project.

## Creating our first component

In React, everything is a component. A component is a reusable piece of code that can be used to build user interfaces. Let’s create our first component by creating a new file called `HelloWorld.js` in the `src` folder.

```js
import React from 'react';

function HelloWorld() {
  return (
    <div>
      <h1>Hello, World!</h1>
    </div>
  );
}

export default HelloWorld;
```

In this code, we define a new function called `HelloWorld` that returns some JSX. JSX is a syntax extension for JavaScript that allows us to write HTML-like code inside our JavaScript files.

We then export this component using the `export default` syntax, so that it can be used in other parts of our application.

## Using our component

Now that we’ve created our `HelloWorld` component, let's use it in our `App` component. Open up the `App.js` file in the `src` folder and replace the existing code with the following:

```js
import React from 'react';
import HelloWorld from './HelloWorld';

function App() {
  return (
    <div>
      <HelloWorld />
    </div>
  );
}

export default App;
```

In this code, we import our `HelloWorld` component and use it inside our `App` component.

## Running the project

To run our project, open up a terminal and navigate to the `my-app` directory. Then run the following command:

```bash
npm start
```

This will start a development server and open up our application in a new browser window.

## Conclusion

In this tutorial, we’ve walked through the basics of React and created a simple application. We’ve learned how to create a new project, create a new component, and use that component in our application. We hope you found this tutorial helpful!
How to build mobile- ready business app?
Tags: mobile, development, appdevelopment, lowcode
Published: 2023-02-28 18:14:53

Let's say you have a great business idea that you know will take off, but you need to think of all the important internal processes like managing resources, handling employee data, unified dashboards, and portals that matter the most. Now to streamline these processes you will need internal tools that are also mobile-friendly to make it truly successful. You're not a developer and don't have thousands to spend on hiring one. What do you do?

I would say, using low code/no code tools you can easily achieve this.

You might find this useful > https://www.dronahq.com/mobile/
CodingDojo: First Impressions
Tags: webdev, programming
Published: 2023-02-28 19:24:06

The first couple weeks, you come in learning "Programming Basics". Beginner programmers learn how to download an IDE, what's an IDE, what a variable is, etc. They then go through platform algorithms with basic Javascript to learn if statements and for loops. This continues for two weeks.

After these two weeks end, students begin "Web Fundamentals". Students are introduced to HTML. What's a div, a p tag, a tags, etc. After days of working on HTML, CSS is introduced to style their pages. They get practice assignments that are short to get hands-on practice to implement their studies. Afterwards, they brush on how to implement and connect Javascript to their websites using getElementByID and querySelector. After the exam, they are introduced to Bootstrap and what APIs are. They are introduced to fetch and, depending on the instructor, possibly ajax.

For beginner programmers who have not touched an IDE or had any programming experience, the first month and a half would be a good starter. But if anyone has any coding experience, it is very tedious to sit through. The instructors and TAs are reluctant to answer any questions they deem "too advanced" for the class to learn or help on any projects you work on on your own time. Depending on the instructor's experience teaching, the time management during class time can also be wasted. Personally, my instructor is ALWAYS behind schedule and struggles to explain basic concepts in an efficient manner, when a beginner programmer can explain concepts better.

If you get a "beginner" instructor, I would ask to switch as soon as possible, especially if you are an experienced instructor since they will waste your time. And you will find yourself twiddling your thumbs for a month and a half. But if you get the head instructor, or simply an instructor who encourages their students to learn and pushes their curiosity to venture outside the class's material, find yourself lucky.

At the end of the day, the cost of the bootcamp is cheaper than going to university. And you learn more hands-on material that is needed in the industry. But what I do not respect is instructors not treating students fairly based on their experience level and instead generalizing an entire class and making everyone slow down for the beginners.
Additional Rails setup
Published: 2023-03-02 08:52:27

When we approach application development we are probably all familiar with DRY - Don't Repeat Yourself. This is a good thing to learn in everything you do in life. If we're going to do things time and time again let's try and make it as efficient as possible. And not to mention let's make our life easier so we don't have to remember everything.

There have been countless times this week I've checked out a new project.

```bash
bundle install
bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:seed
RAILS_ENV=test bundle exec rake db:schema:load
```

For a start there's a great way to reduce rake tasks down 

```bash
bundle install
bundle exec environment rake db:{drop,create,migrate,seed}
RAILS_ENV=test rake db:schema:load
```

That's still four tasks reduced to one, they're all run from our shell so let's just put it in a `./bin/setup` file

```bash
#!/bin/bash

bundle install
bundle exec environment rake db:{drop,create,migrate,seed}
RAILS_ENV=test rake db:schema:load
```

Make sure it's executable

```
chmod 750 ./bin/setup
# then we can run it with
./bin/setup
```

I tend to put scripts into ./bin/ to just speed up even just booting a rails server. What's wrong with

```bash
rails s
```

Well, nothing. Unless you're running 5 different applications on localhost at the same time. They can't all share port 3000. If you're working on a project where many applications interact with one another. Or your focus changes multiple times a day, which is often does. So how about `./bin/server`

```bash
#!/bin.bash
rails server -b 0.0.0.0 --port=8042
```

Just be to sure to assign a valid port to each of your applications to save you clashing. Well, since we've done that we're now going to have to remember all the port numbers for each of our apps. No, let's refactor that. That's what they invented DNS for.

Let's install `puma-dev`. [https://github.com/puma/puma-dev](https://github.com/puma/puma-dev)

```
brew install puma-dev
sudo puma-dev -setup
puma-dev -install
```

`puma-dev` is great. It effectively hijacks your local machine's DNS resolver for the .test Top Level Domain. Looks up the hostname against the existing files in your `~/.puma-dev/` directory. In my case it's something like.

#### **`~/.puma-dev/iplayred`**
```
8000
```

#### **`~/.puma-dev/robl`**
```
8001
```

Then I can visit `https://iplayred.test` or `https://robl.test` and it will load my application. Your web browser makes the request, and looks up your hostname, determines it is for the local machine and then Puma-dev running on port 80 and 443 proxy and forwards requests to your application on localhost port 'whatever was in my config' and it also manages SSL - which is the icing on the cake if you're looking to do any development testing against anything that requires SSL e.g. OAuth workflow redirect urls or say Rails apps that are SSL Only.

I could at this point write a script to dump these scripts into a new application based on what ports are already allocated, insert all my setup scripts so I don't have to do this again and again. One day I will.
How to learn UI/UX Design?-Volume
Tags: webdev, javascript, beginners
Published: 2023-03-01 06:27:47


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

## How to learn UI/UX Design?-Volume(3)

UX is an exciting field to explore, even if the idea of starting a career in the field can be a bit daunting, especially if you don’t have any UX design experience. In the world of UX design, there’s so much to learn and take in! The idea of going from complete novice to professional seems impossible. Surely you need some kind of design background? Or at least a vaguely relevant design qualification?

UX is an exciting field to explore, even if the idea of starting a career in the field can be a bit daunting, especially if you don’t have any UX design experience. In the world of UX design, there’s so much to learn and take in! The idea of going from complete novice to professional seems impossible. Surely you need some kind of design background? Or at least a vaguely relevant design qualification?

1. Read and research all things UX
2. Understand what UX designers actually do
3. Learn UX design tools
4. Structure and formalize your learning with a UX design course or bootcamp
5. Get inspired by the best designers
6. Build your UX portfolio
7. Start networking with other UX designers

**Read and research all things UX**
UX is an exciting field to explore, even if the idea of starting a career in the field can be a bit daunting, especially if you don’t have any UX design experience. In the world of UX design, there’s so much to learn and take in! The idea of going from complete novice to professional seems impossible. Surely you need some kind of design background? Or at least a vaguely relevant design qualification?
How to Gain Visibility into GitHub Actions
Tags: devops, githubactions, github
Published: 2023-03-01 12:45:01

Hi, we're [hosting a workshop](https://www.opsera.io/webinars/end-to-end-visibility-into-github-actions) on how to set up insights into your team's GitHub Actions workflow performance, duration, success, and failure rate. 

I'd love to see you there but in case you got any questions, let me know.
Dificuldade com Form Field - Angular
Published: 2023-03-01 13:32:23

Eu estou aprendendo a usar o angular e por conta disso decidi escrever algumas dificuldades que estou tendo durante essa jornada.

Estou com a tarefa de montar os componentes do Design system da empresa onde trabalho, e no meio do caminho tem aparecido algumas dificuldades.

1°: a documentação do angular e do material angular. 
É muito fácil para uma pessoa que sabe uma linguagem de programação, virar para um iniciante e dizer que na documentação encontrar todas as respostas. Isso não é totalmente verdade, pois tem algumas coisas que fica subentendido que você já sabe fazer.
Já fique empacada em uns problemas onde na documentação não está claro a necessidade de importar determinados módulos, o que me tomou bastante tempo.

Eu vou pegar aqui um exemplo simples: 
Preciso de um componentes de input que valide se a entrada do usuário é um email, caso não for mostre uma mensagem de erro.

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

É um exemplo muito simples, copiei e colei da documentação para o VS Code e puft! Erro! No meu terminal só aparecia: 
`Can't bind to 'formControl' since it isn't a known property of 'input'.`

Depois de idas e vindas na documentação, buscas e mais buscas, descobrir que faltava um módulo a ser importado
`import { ReactiveFormsModule } from '@angular/forms';`

E o input funcionou...

A intenção aqui é criar uma espécie de anotação das dificuldades para caso aconteça novamente, vim direto ou quem sabe ajudar alguém que esteja começando e perdido.
The Weekend Coder: What Are Your Favorite Coding-inspired (or Inspiring) Movies?
Tags: discuss, beginners, codenewbie, motivation
Published: 2023-03-11 08:00:00

It’s the weekend! Time to relax, pursue some hobbies, maybe check out a new flick or a rewatch an old fave. Speaking of which…some of our favorite movies here at DEV are ones that feature coding, tech, or hackers. From classics like WarGames to newer releases like The Imitation Game, documentaries like Code 2600 and romances like Her ❤️😢, there's something for everyone.

So, what’s on your personal list of must-see movies for programmers and coders? Do you like the realistic portrayals or the more fantastical ones? Share your rec’s and let's talk movies!
Content & Tooling Team Status Update
Tags: puppet, modules
Published: 2023-03-10 16:55:29

---
title: Content & Tooling Team Status Update
published: true
date: 2023-03-10 00:00:00 UTC
tags: puppet, modules
canonical_url: https://puppetlabs.github.io/content-and-tooling-team/blog/updates/2023-03-10-status-update/
---

## We had visitors this week!

This week has been super busy as we had some visitors in the Belfast office. This resulted in the whole content and tooling team being under the one roof. To mark this we were lucky enough to fit in some team building (in the form of axe throwing) and have some great conversations.

![content team engineering meeting](https://puppetlabs.github.io/content-and-tooling-team/images/team_chat.jpeg)

## SQL Server 2022 is now supported!

Thanks to some heavy lifting by [jordanbreen28](https://github.com/jordanbreen28) our sqlserver module now supports SQLServer2022 and has gone through quite an extensive number of changes. Now that the work has been completed, it has been released and is available on the Forge.

## Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

- [`puppetlabs-firewall#1107`](https://github.com/puppetlabs/puppetlabs-firewall/pull/1107): “Ignore OpenBSD, similarly to FreeBSD”, thanks to [buzzdeee](https://github.com/buzzdeee)
- [`puppetlabs-stdlib#1295`](https://github.com/puppetlabs/puppetlabs-stdlib/pull/1295): “Safely handle a missing root user”, thanks to [ekohl](https://github.com/ekohl) and the following people who helped get it over the line ([hboetes](https://github.com/hboetes))
- [`puppetlabs-stdlib#1281`](https://github.com/puppetlabs/puppetlabs-stdlib/pull/1281): “Add Stdlib::Ensure::Package type”, thanks to [arjenz](https://github.com/arjenz) and the following people who helped get it over the line ([ekohl](https://github.com/ekohl))
- [`puppetlabs-tomcat#503`](https://github.com/puppetlabs/puppetlabs-tomcat/pull/503): “Allow adding and removing attributes in Context (#502)”, thanks to [uoe-pjackson](https://github.com/uoe-pjackson)
- [`puppet-lint#103`](https://github.com/puppetlabs/puppet-lint/pull/103): “(maint) Corrects legacy macOS facts”, thanks to [mhashizume](https://github.com/mhashizume)

## New Module / Gem Releases

The following modules were released this week:

- [`puppetlabs-concat`](https://github.com/puppetlabs/puppetlabs-concat) (`7.3.2`)

- [`puppetlabs-wsus_client`](https://github.com/puppetlabs/puppetlabs-wsus_client) (`5.0.0`)

- [`puppetlabs-sqlserver`](https://github.com/puppetlabs/puppetlabs-sqlserver) (`3.3.0`)
Reinventing IBM | DevSecOps, AI, Quantum Computing
Tags: security, devops, ai, podcast
Published: 2023-03-09 23:15:51

No company is immune to transformation, not even one with as storied a history as IBM. 

This week on Dev Interrupted, Rosalind Radcliffe, the CIO DevSecOps CTO at IBM, joins us to chat about how one of tech's greatest legacy companies is positioning itself for the future. 

Rosalind shares what it means to be named an IBM Fellow, her work to bring DevOps and open source to the z/OS environment, and what the future looks like at IBM. [Hint: it involves quantum computing and AI!]

{% spotify spotify:episode:5aMbWCkL858QNRSPd9FSCo %}

## Episode Highlights:
* (2:01) What does it mean to be an IBM Fellow?
* (3:45) DevOps transformation at IBM
* (8:38) z/OS
* (12:40) IBM's founding in 1924
* (16:38) Moving to a zero trust environment
* (23:36) Fit for purpose
* (30:00) Scaling apprenticeship programs
* (35:11) Quantum computing and AI

***While you’re here, check out this video from our [YouTube channel](https://www.youtube.com/c/DevInterrupted?sub_confirmation=1), and be sure to like and [subscribe](https://www.youtube.com/c/DevInterrupted?sub_confirmation=1) when you do!*** 

{% youtube 6LvUiex6YPk %}

### Want to cut code-review time by up to 40%? Add estimated review time to pull requests automatically!
*gitStream is the free dev tool from LinearB that eliminates the No. 1 bottleneck in your team’s workflow: pull requests and code reviews. After reviewing the work of 2,000 dev teams, LinearB’s engineers and data scientists found that pickup times and code review were lasting 4 to 5 days longer than they should be.* 

*The good news is that they found these delays could be eliminated largely by adding estimated review time to pull requests!*

### Learn more about how gitStream is making coding better [HERE](https://linearb.io/blog/why-estimated-review-time-improves-pull-requests-and-reduces-cycle-time/?utm_source=Substack%2FMedium%2FDev.to&utm_medium=referral&utm_campaign=gitStream%20-%20Referral%20-%20Distribution%20Footers).

![Start using gitstream today!](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xg1l6hxt134px501bf7d.png)