teleren/devto huggingface dataset:
Understanding the OSI Model - Basics for Cybersecurity
Tags: beginners, cybersecurity, linux, networking
Published: 2024-01-15 05:00:00

# What is an OSI Model?
If you have been in the tech field for some time, chances are that you have come across the term OSI Model or have heard someone mention the term. If you haven't well you are still in the right place for a simplified answer😊. 

To begin with, the OSI Model stands for Open Systems Interconnection Reference Model. It's a framework that's used to understand how different parts of a computer network communicate with each other. 

The model itself is divided into 7 layers, each having specific functions to ensure that data can be transmitted smoothly across a network.

## 1. Physical Layer (Layer 1)    
This layer is not about protocols, it's about the signaling, cabling, and connectors. It's more of dealing with physical problems like:
* Fixing the cables, punch-downs, etc...
* Running loopback tests, replacing cables, swapping adapters, etc...

## 2. Data Link Layer (Layer 2)
Also referred to as the Data Link Control protocol or the Switching layer. It focuses on creating reliable links between directly connected devices. Its main tasks involve:
* handling data framing
* error detection and correction to ensure that data sent from one device is delivered accurately.

## 3. Network Layer (Layer 3)  
Also known as the routing layer. It's the layer associated with IP addresses. It's responsible for routing data over the network. It determines the best path for data to travel from the source to the destination across multiple devices and networks.

## 4. Transport Layer (Layer 4)
Sometimes also referred to as the post office layer as it describes how data is being delivered and where it is being delivered. Some of its protocols include TCP and UDP. In addition to this it also
* manages data flow, 
* provides error checking, and 
* reassembles data packets in the correct order if they arrive out of sequence.

## 5. Session Layer (Layer 5)  
Designed to establish, maintain, and terminate connections between one device and another.

## 6. Presentation Layer (Layer 6) 
Mainly used for character encoding and application encryption to be easily understood by the receiving device. It's mostly combined with layer 7. It handles tasks like data compression, encryption, and formatting conversions.

## 7. Application Layer (Layer 7)
This is the layer that we as humans get to see and interact with. It includes protocols and interfaces used by software applications to exchange information over the network, such as web browsers, email clients, and file transfer programs.

Throughout your career, you will from time to time refer to this model, and understanding it might be challenging but by using the mnemonic **All People Seem To Need Data Processing**, you can easily recall the entire OSI Model structure. 

For a more elaborate guide check this video by Professor Messer. 
{% embed https://www.youtube.com/watch?v=owDh6FNJUog&list=PLG49S3nxzAnlCJiCrOYuRYb6cne864a7G&index=2&pp=iAQB %}
Video.js 8 quality selector
Tags: videojs, codequality, selector, webdev
Published: 2024-01-15 04:24:35

Demo:[Player in js fiddle](https://jsfiddle.net/Physcocybernatics/anw9pmzr/53/)

Video tag:
```html
<video id="my-video" class="video-js vjs-default-skin" width="640" height="360" controls>

    <source src="https://cph-p2p-msl.akamaized.net/hls/live/2000341/test/master.m3u8" type="application/x-mpegURL">
    <!-- <source src="https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd" type="application/dash+xml"> -->
  </video>
```
Lib used:
```js
<link href="https://unpkg.com/jb-videojs-hls-quality-selector/dist/css/jb-videojs-hls-quality-selector.css" rel="stylesheet">

 <!-- videojs-contrib-quality-levels plugin -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-quality-levels/2.0.15/videojs-contrib-quality-levels.min.js"></script>
  <!-- jb-videojs-hls-quality-selector -->
  <script src="https://unpkg.com/jb-videojs-hls-quality-selector"></script>
```

make sure to add this is
```js
  <script>
    document.addEventListener('DOMContentLoaded', function() {
      const player = videojs('my-video');

      player.ready(function() {
        player.hlsQualitySelector({
       displayCurrentQuality: true,
          });
      });
    });
  </script>
```
Deploying a Static Site (feat.Vite, gh-pages)
Tags: vite, ghpages, deploy, react
Published: 2024-01-15 03:47:26

다시 React 공부를 시작했다.

간단한 토이 프로젝트를 만들어 **gh-pages**로 간단히 배포하려고 했는데, 여기서 이슈가 발생했다. 

배포후 확인해보니 **404 not found error**가 뜨는 것!

구글링 하다가 vite 관련 [해결방법](https://stackoverflow.com/a/76110734)을 찾았는데 vite에 익숙해질겸 해서, 우선 creae-react-app으로 만들어진 프로젝트를 vite로 migration하는 것 부터 시작했다.

(요즘은 cra보다 가볍고 빠른 vite를 사용하는 추세인 것 같다. [관련 링크](https://semaphoreci.com/blog/vite))

[migration](https://www.freecodecamp.org/news/how-to-migrate-from-create-react-app-to-vite/)하는 과정은 크게 어렵지 않았다.

---

하지만 vite로 migration 후, 위 해결 방법을 적용해도 빈 페이지가 나오는 이슈는 여전히 있었다😅

다른 방법들을 다 적용해봐도 해결을 못하고 있던 중에, **React Router path**와 관련되어 있다는 것을 찾았다. ([관련 링크](https://blog.devgenius.io/how-to-deploy-your-vite-react-app-to-github-pages-with-and-without-react-router-b060d912b10e))

> `vite.config.ts` 파일에 **basename은 `/repoName/`으로 설정되어있는데, router의 basename은 추가로 설정하지 않았기 때문에** `/`로 되어 있다는 게 원인이었다.

```typescript
// vite.config.ts

export default defineConfig({
    base: '/<repoName>/',
    plugins: [react(), viteTsconfigPaths()],
    server: {    
      open: true,
      port: 3000, 
    },
})
```


따라서, router의 basename을 아래와 같이 조건에 맞는 path로 변경해주면 된다.

```typescript
import { createBrowserRouter, RouterProvider } from 'react-router-dom'

function App() {
 const routes = [...];

  const router = createBrowserRouter(routes, { basename: import.meta.env.DEV ? '/' : '/repoName/' })

  return <RouterProvider router={router} />
}
```

`import.meta.env.DEV`는 Vite에 내장된 환경변수로, dev 모드일 때 값을 return 한다.

---

이 이슈를 해결하기 위해, 때문에 꼬박 하루를 사용했다. 

초반엔 당연히 배포 설정 문제일 거라 생각하고 gh-pages 관련 이슈 위주로 찾아봤었다. router path 문제였을 줄이야...

위 블로그에도 나와있지만, 404 not found error 메시지가 화면에 뜨는데 console에선 어떤 에러도 보이지 않아서 더욱 의심하지 않았던 것 같다.

나와 같은 이슈를 겪는 사람들에게 도움이 되길 바라며..!!🤓
HI79 - HI79 Casino Link Đăng Ký Nhận Khuyến Mãi 100K
Published: 2024-01-15 03:43:45

Nha cai HI79 la mot trong nhung nha cai uy tin va duoc danh gia cao trong thi truong ca cuoc hien nay Voi hon 10 nam hoat dong trong linh vuc nay
Dia Chi: 272 D Do Ngoc Thanh Phuong 4 Quan 11 Thanh pho Ho Chi Minh Viet Nam
Email: hi79casino@gmail.com
Website: https://hi79.at/
Dien Thoai: (+63) 962 209 9372
#hi79 #hi79_at #hi79_casino #nha_cai_hi79
Social Links:

https://hi79.at/
https://hi79.at/dang-ky-hi79/
https://hi79.at/nap-tien-hi79/
https://hi79.at/rut-tien-hi79/
https://hi79.at/tai-app-hi79/
https://hi79.at/xoc-dia/
https://hi79.at/game-bai-online/
https://hi79.at/keo-rung/
https://hi79.at/xo-so-sieu-toc/
https://hi79.at/ban-ca-bingo/
https://hi79.at/no-hu-hi79/
https://hi79at.blogspot.com/
https://hi79at.weebly.com/
https://www.facebook.com/hi79at/
https://twitter.com/hi79at
https://www.youtube.com/channel/UCDHC08us_4F__SCVUEvhx_w
https://scholar.google.com/citations?hl=vi&user=uwxPangAAAAJ
https://www.pinterest.com/hi79at/
https://500px.com/p/hi79at
https://social.msdn.microsoft.com/Profile/hi79at
https://social.technet.microsoft.com/profile/hi79at/
https://www.skillshare.com/en/user/hi79at
https://soundcloud.com/hi79at
https://bbs.now.qq.com/home.php?mod=spacecp&ac=profile&op=info
https://draft.blogger.com/profile/01286754079336677389
https://twitback.com/hi79at
https://favinks.com/profile/hi79at
https://www.blogger.com/profile/01286754079336677389
https://hi79at.blogspot.com/
https://www.reddit.com/user/hi79at
https://gravatar.com/hi79casino
https://medium.com/@hi79at
https://www.flickr.com/people/hi79at/
https://www.tumblr.com/hi79at
Lesser known stock market APIs for 2024 for data science and quant trading
Tags: api, datascience, finance, community
Published: 2024-01-15 03:35:13

## Alpha Vantage

**Alpha Vantage** is a popular provider among data-driven investors & traders due to its vast accessibility. They’re known for their clear documentation, affordable pricing, and generous free tier. A great option for investors looking to gain an edge!

Coverage: Stocks, Fundamentals, Technicals, Forex, Crypto, Commodities, Financial News, Economic Data, Corporate Events, and more. 20+ years of historical data.

API DOCS: https://www.alphavantage.co/documentation/
PRICING: 25 requests per day for free
## Barchart OnDemand

**Barchart OnDemand** is another accessible financial data platform offering customizable plans that allow customers to pick & choose which data feeds they want to pay for. They cover a broad range of endpoints from equity pricing data to futures & options.

Coverage: Stocks, ETFs, Fundamentals, Options, Futures, Forex, Crypto, Commodities, Financial News, Corporate Events, and more. 15 years of historical data.

API DOCS: https://www.barchart.com/ondemand/api

## Tradier

**Tradier** combines market data with a brokerage account to allow users to build & test trading strategies, and also execute those trades with just one integration. (Alpaca is another similar platform.)

Coverage: Stocks, Fundamentals, Options (including greeks), and more.

API DOCS: https://documentation.tradier.com/
PRICING: [https://tradier.com/individuals/pricing](https://tradier.com/individuals/pricing)
## Intrinio

**Intrinio** offers a unique pay-per-service model, allowing you to choose the specific data packages you need. A good option for sophisticated investors and app developers looking for a focused and deliberate approach to data services.

Coverage: Stocks, ETFs, Fundamentals, Technicals, Options, Financial News, Economic Data, Corporate Events, and more. 50 years of historical data.

API DOCS: https://docs.intrinio.com/documentation/api_v2/getting_started
PRICING: https://intrinio.com/pricing
## Xignite

**Xignite** is one of the most expensive, yet powerful APIs available in the industry. They source institution-grade data from over 6,000 exchanges globally and power many high-profile fintech and wealth management companies such as SoFi & Betterment.

Coverage: Stocks, ETFs, Fundamentals, Options, Futures, Forex, Crypto, Commodities, Swaps, Mutual Funds, Fixed Income, Corporate Events, and more.

API DOCS: https://www.xignite.com/financial-data-apis
PRICING: https://www.xignite.com/pricing

Thanks for reading
[20 Days of DynamoDB] Day 6 - Atomic counters with UpdateItem
Tags: go, serverless, dynamodb, cloud
Published: 2024-01-15 03:04:52

*Posted: 15/Jan/2024*

Need to implement atomic counter using DynamoDB? If you have a use-case that can tolerate over-counting or under-counting (for example, visitor count), use the `UpdateItem` API.

Here is an example that uses the SET operator in an update expression to increment `num_logins` attribute:

```go
	resp, err := client.UpdateItem(context.Background(), &dynamodb.UpdateItemInput{
		TableName: aws.String(tableName),
		Key: map[string]types.AttributeValue{
			"email": &types.AttributeValueMemberS{Value: email},
		},
		UpdateExpression: aws.String("SET num_logins = num_logins + :num"),
		ExpressionAttributeValues: map[string]types.AttributeValue{
			":num": &types.AttributeValueMemberN{
				Value: num,
			},
		},
		ReturnConsumedCapacity: types.ReturnConsumedCapacityTotal,
	})
```

Note that every invocation of `UpdateItem` will increment (or decrement) - hence it is not idempotent.

Recommended reading - [Atomic Counters](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.AtomicCounters)
Has SEO Died?
Published: 2024-01-15 03:00:00

> This article talks about my experience with SEO over the last 20 years, a perception I have not only about SEO techniques but much more about how the market has changed.

What inspired this article was a question someone asked me a few days ago about my experience with SEO...

> At that moment, I kind of froze 🥶 and words failed me; normally this doesn't happen. But I reflected on it and decided to share my perspective here with you...

## Early Days
My first encounter with SEO was around 2004~2005 (it's been a while), back when I worked for a group of companies, each with a portfolio of different websites.

Google was still the only search source on the internet, and the infamous Google PageRank bar existed.


![Google Page Rank](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0eeo2fo1c4lr3w4z760.png)


Back then, we did everything to improve this PageRank. Some techniques I remember include **(1)** stuffing keywords into hidden tags on the page, **(2)** being meticulous about the site's description and header, **(3)** paying attention to H1 tags, **(4)** considering the relationship between words throughout the text versus indexing keywords—this was part of the techniques, but there were others, and I confess I don't remember them all.

But there was a cool side: we quickly saw results improving the PageRank.

## SEO vs Ads
Here's where the whole shift began.

Google Ads was launched in Brazil around the 2000's, but I started dealing with it around 2006~2007.

![Google Adwords](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zk8f3zajffqt9aara751.png)


At that time, our focus began to change, and it was very rapid—I'll tell you why. I remember we had meetings with the Marketing director to discuss keywords, keyword strategies, and competitors in searches—meaning the focus that was previously on PageRank quickly changed, all thanks to one word: MONEY 💸.

The company started spending about R$ 1,000 per month on Ads, which was good money for them at that time, especially in an investment they hadn't made before, and you know why?

<center><b>It yielded results!<b></center>

Even though it was still a simple tool compared to what exists today, it was infinitely better than PageRank and organic search results.

## Evolution
Since then, I've worked on B2B and a lot of B2C projects, especially between 2015 and 2022. And do you know the importance of SEO in these projects?

<center><b>Almost ZERO 🤭<b></center>

The only concern is to write a good HEAD and its meta tags, and nothing more.

No one cares about SEO on a day-to-day basis anymore; I haven't seen a dedicated team for it, never heard any UX designer talk about it.

But the Ads market became massive; Facebook, TikTok, and Google came in, and the algorithms became so advanced that SEO became a distant past. Now, the delivery of results is focused on the user and profile, not just keywords.

This could be a pub conversation; obviously, the title is just a provocation, but there it is for reflection.

I hope I've helped you; until next time!
Chiropractor Alpharetta, GA
Tags: chiropractic, physicaltherapy, chiropractichealthcare, chiropracticservices
Published: 2024-01-15 02:47:56


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i43su7c4gn8n9fxtwrm7.png)
Discover personalized care and relief at All About Wellness Chiropractic Center in Alpharetta, GA. Our experienced chiropractors are dedicated to promoting overall wellness and alleviating discomfort.

Whether you're dealing with chronic pain, injuries, or seeking preventive care, our team employs a holistic approach to address your unique needs. 

Through spinal adjustments, therapeutic techniques, and lifestyle guidance, we aim to enhance your body's natural healing abilities. 

From back and neck pain to headaches and joint issues, we provide patient-centric chiropractic solutions. Experience improved mobility, reduced pain, and enhanced well-being with our Alpharetta chiropractic services. 

Prioritize your health and schedule a consultation today.
































Find All About Wellness Chiropractic Center On:

✓ GOOGLE - https://goo.gl/maps/uq9SseZBPaEVaC2M8
✓ YELP - https://www.yelp.com/biz/all-about-wellness-alpharetta
✓ WEBSITE - https://aboutwellnessonline.com/chiropractic-services/
✓ YOUTUBE - https://youtu.be/8_sE2PCg9sg
Refined goals in 2024: PMP, SQL, and Linux. Annual bucket list.
Tags: sql, mysql, discuss, linux
Published: 2024-01-15 02:24:45

Projects take longer if you're doing it alone, they involve unknown risks, a full time job, and a family.  If you're going to fail, fail quickly and fail often.

People who set a New Year's Resolution normally discontinue their resolution by January 31st.  This year I am doing an annual bucket list with a theme to track my progress.  This year's theme is to engender more joy in 2024, in work and in play.

There are no rules to the annual bucket list, but I try to think of a goal for each year I am old.  Most of my unedited list are suggestions on how to live, such as, it is impossible but try playfulness at work, and light sarcasm counts.

Once in a while, I get an actual goal like try and do something that creates an MVP that create $600 MRR.  I don't know how to effectuate that bucket list item, so it stays on the list without judgement for now.

As I listen to the Lofi Diablo channel on YouTube, I will make as my bucket list in 2024:
1. PMP - March 30th
2. SQL (mySQL only because I installed it on my system) - Dec 31st
3. Linux networking
  a. Learn Terminal  - Dec 31st 
  b. Learn Networking - Dec 31st

As I get more data, I can continuously update the list and define until it becomes more refined.  More importantly, to keep with my engender joy theme, I will need to enjoy a certain amount of unknown.  Goals are meant to be revised. 

I'm excited to start on a portfolio of projects. Share any SQL or Linux networking stories, and if you are in that industry, I would love to talk with you to learn more about what exactly that means to you.

All the best, Joe
Structure ..Structure
Tags: computerscience, learning, beginners, datastructures
Published: 2024-01-15 02:14:27

**I** haven`t been writing for a while, so when I get the chance, I write. Please forgive me for lacking content and proper layout.
That subject was simmering in my mind for a while. Data structure is something we all know and love.Basically, it`s figuratively speaking our boxes to put our toys in; the boxes are structures, and toys are data since we play with them.While I was searching and revising the basic and advanced structures I found two keywords I do not know: "container" in C++ and "struct" in C.
Now "struct" here particularly has been puzzling me till I decided to drop my OO glasses and remember C is a classic structured imperative procedural language.
While I am getting to that later on, basically it means it`s a raw primal language that does not like fancy stuff like predefined objects or types.
With C, if you want something, you make it, so in short, "Struct" is making your own advanced data type.
like a pizza restaurant with a DIY recipe, you create the structure and create it`s behavior, and the keyword is just a palate or template, or, in analogy, that pan where the dough and ingredients are put before stuffing into the oven (compiler).That's it so far for my structure understanding. I am yet to learn Container ADT in C++.Have a good reading.
Automatic OpenTelemetry for Kubernetes Jobs (Hands on)
Tags: tutorial, devops, kubernetes, opentelemetry
Published: 2024-01-15 02:03:46

Use the [tracepusher Kubernetes Operator](https://agardnerit.github.io/tracepusher/usage/k8sjobs/) to automatically generate OpenTelemetry traces for Kubernetes `Job` and `CronJob` resources.

## Step 0: Create a cluster & Start Jaeger

If you don't already have a cluster, create one now:

```
kind create cluster

# Or install jaeger on Kubernetes with the jaeger operator
# https://www.jaegertracing.io/docs/1.53/operator/
docker run --rm --name jaeger \
  -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 4317:4317 \
  -p 4318:4318 \
  -p 14250:14250 \
  -p 14268:14268 \
  -p 14269:14269 \
  -p 9411:9411 \
  jaegertracing/all-in-one:1.53
```

## Step 1: Install tracepusher Custom Resource Definitions on cluster

```
kubectl apply -f https://raw.githubusercontent.com/agardnerIT/tracepusher/main/operator/crds.yml
```

## Step 2: Create a `JobTracer`

Modify the OpenTelemetry collector URL as appropriate for your setup and then apply the file. One `JobTracer` per namespace please!

This file instructs tracepusher to monitor for all `Job` resources in the given namespace (you can ignore on a job-by-job basis with annotations that you'll see next):

```
cat <<EOF | kubectl create -f -
---
apiVersion: tracers.tracepusher.github.io/v1
kind: JobTracer
metadata:
  name: tracer
  namespace: default
spec:
  # Specify your OpenTelemetry collector endpoint
  # Here I've given the docker URI
  collectorEndpoint: "http://host.docker.internal:4318"
EOF
```

## Step 3: Create a Normal k8s Job / CronJob

Create a `Job` / `CronJob` as normal. The tracepusher annotations are optional and will override the behaviour of the above `JobTracer`


```
cat <<EOF | kubectl create -f -
---
apiVersion: batch/v1
kind: Job
metadata:
  name: pi
  namespace: default
  #annotations:
  #  tracepusher/ignore: "true"
  #  tracepusher/collector: "http://example.com:4318"
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl:5.34.0
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 0
EOF
```

![tracepusher job tracer result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pc8s814k4p3gh0io0jns.png)
1/15/24
Tags: beginners, roblox, gamedev, learning
Published: 2024-01-15 02:02:50

Added Some more land and some cool lantern pole things too because it felt a little empty. Also me
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3okaqzwpeviev1hgbx1i.png)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrm67y0mssi6hpteluqn.png)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t7zihet0rszz9g2561tc.png)