teleren/devto huggingface dataset:
How to set custom profile avatar in Google Chrome (macOS) w/out changing your Google Account picture
Tags: howto, google
Published: 2023-04-24 16:32:01

{% youtube Jqxo2nysCAg %}

1. Set your avatar to the cat one
2. Goto `/Users/.../Library/Application Support/Google/Chrome/Avatars`
3. Replace `avatar_origami_cat.png` with the custom avatar you want

Even though it shows as the cat icon:

![avatar_origami_cat.png](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gfjn14alxn2pus709wm0.png)

It will still show up as the custom avatar w/out having to change your Google Chrome profile.

![Custom Google Chrome Profile Avatar](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvw6mse800whihspe3nv.png)

...and in tools like Choosy:

![Custom Google Avatar in Choosy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e7vxbt1fqh9y5rfzmvic.png)
How to fix a borked Elixir install on Windows
Tags: elixir, erlang, chocolatey, windows
Published: 2023-04-24 16:26:03

So you borked the Elixir installation on your Windows machine. Same. Hopefully I can save you some trouble.

About 1.5 years ago, I was fresh out of dev school and managed to install Elixir on my PC without a package manager. Which is all fine and dandy until one needs to update it. Surely I could just follow the [Erlang/Elixir Windows web installer instructions](https://elixir-lang.org/install.html#windows) and I’ll be on my way, right? WRONG. Oh, so very wrong.

I was met with the dreaded crash dump:
```
{"init terminating in do_boot",{'cannot get bootfile','C:\\Program Files\\erl-24.1.7/bin/start.boot'}} init terminating in do_boot ({cannot get bootfile,C:\Program Files\erl-24.1.7/bin/start.boot})

Crash dump is being written to: erl_crash.dump...done.
```

Here’s how I fixed it:
1. Remove every existing trace of Erlang and Elixir installations from your PC. This might take some doing, depending on how creative your previous install was, but ya gotta do it. We want a clean slate here, people.
    - Verify Erlang has been removed by running `erl` in your terminal.
    - Verify Elixir has been removed by running `iex` in your terminal.
        - In both cases, if your terminal returns something along the lines of “`command not found`”, you’re golden.
        - If your terminal still crashes, or tries to look for old files, you have more clean up to do.
2. Choose and install a Windows software manager.
    - I chose [Chocolatey](https://chocolatey.org/install) since I’ll only be using this machine for side projects and am content with sticking to their latest available software versions.
3. Install [Erlang with Chocolatey](https://community.chocolatey.org/packages/erlang) **first**. This is important because Elixir runs on the Erlang VM, which is also another reason why we’re not using the aforementioned web installer.
    - Test that the first installation was successful by running `erl` in your terminal.
        - If the Eshell starts, your install was successful.
4. Install [Elixir with Chocolatey](https://community.chocolatey.org/packages/Elixir) **second**.
    - Your terminal will return a directory where the Elixir commands were installed.
       - Mine was: _C:\ProgramData\chocolatey\lib\Elixir\tools\bin_
5. [Add that directory to your PATH](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/).
6. Test that the second installation was successful by running `iex` in your terminal.
    - If the Interactive Elixir shell starts, you’ve made it, congratulations. 🎉

Happy hacking!
Error while serving angular app in v14
Tags: development, webdev, programming, howtofix
Published: 2023-04-24 16:10:30

Here is the error:

 [webpack-dev-middleware] HookWebpackError: Unexpected end of JSON input
<e>     at makeWebpackError (D:\GitHub\TAP_New\onPOINT\ui\node_modules\webpack\lib\HookWebpackError.js:48:9)
<e>     at D:\GitHub\TAP_New\onPOINT\ui\node_modules\webpack\lib\Compilation.js:3060:12
<e>     at eval (eval at create (D:\GitHub\TAP_New\onPOINT\ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:44:1)
<e>     at fn (D:\GitHub\TAP_New\onPOINT\ui\node_modules\webpack\lib\Compilation.js:480:17)
<e>     at _next3 (eval at create (D:\GitHub\TAP_New\onPOINT\ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:41:1)
<e>     at eval (eval at create (D:\GitHub\TAP_New\onPOINT\ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:60:1)
<e>     at processTicksAndRejections (internal/process/task_queues.js:95:5)
<e> -- inner error --
<e> SyntaxError: Unexpected end of JSON input
<e>     at JSON.parse (<anonymous>)
<e>     at D:\GitHub\TAP_New\onPOINT\ui\node_modules\@angular-devkit\build-angular\src\webpack\plugins\devtools-ignore-plugin.js:42:38
<e>     at fn (D:\GitHub\TAP_New\onPOINT\ui\node_modules\webpack\lib\Compilation.js:478:10)
<e>     at _next3 (eval at create (D:\GitHub\TAP_New\onPOINT\ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:41:1)
<e>     at eval (eval at create (D:\GitHub\TAP_New\onPOINT\ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:60:1)
<e>     at processTicksAndRejections (internal/process/task_queues.js:95:5)
<e> caused by plugins in Compilation.hooks.processAssets
<e> SyntaxError: Unexpected end of JSON input
<e>     at JSON.parse (<anonymous>)
<e>     at D:\GitHub\TAP_New\onPOINT\ui\node_modules\@angular-devkit\build-angular\src\webpack\plugins\devtools-ignore-plugin.js:42:38
<e>     at fn (D:\GitHub\TAP_New\onPOINT\ui\node_modules\webpack\lib\Compilation.js:478:10)
<e>     at _next3 (eval at create (D:\GitHub\TAP_New\onPOINT\ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:41:1)
<e>     at eval (eval at create (D:\GitHub\TAP_New\onPOINT\ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:60:1)
<e>     at processTicksAndRejections (internal/process/task_queues.js:95:5)
Knowledge is a curse and it makes it hard to write for devs
Tags: devrel
Published: 2023-04-24 16:06:40

Knowledge is a curse and it’s likely the top thing blocking you from making great developer content. 🧠🧙‍♀️

In 1990, Stanford researchers set out to study how knowledge makes us overconfident. In an [experiment](https://hbr.org/2006/12/the-curse-of-knowledge), they asked one group of people to tap the melody of a well-known song (such as “Happy Birthday”) on a table. They asked another group to listen and name the song. 

After tapping 120 songs, only 2.5% of the songs were correctly named. But that’s not the surprising part. 

The group tapping the songs? They predicted the listeners would guess the songs correctly 50% of the time. The gulf is huge: Tappers believed they would succeed in communicating one in two times; in reality, they only succeeded one in forty times. 

And this is the curse of knowledge: The tappers knew the songs so well that they believed merely tapping the melodies would be enough to communicate them. And they were wrong.

So, how does this apply to developer content? Well, there’s a small twist. In the experiment, the participants had to tap and had to listen. When creating content, you’re always facing the question “Should I write this at all?” 😬

And that’s where the curse of knowledge is most deadly. It’s all too easy to assume that your audience either already knows what you’re talking about or knows the general topic well enough that a post about it won’t be interesting. But that’s the curse of knowledge speaking and just like the tappers in the experiment, you’re wrong. 

Did your development team solve a challenging technical problem recently? Write about it. 📝

Did your founding team choose a framework that’s still shaping decisions today? Write about it. 📝

Did you see a big problem on the horizon that ended up having little to no consequence? Did you see or miss a small problem that ended up having big consequences? Write about it. 📝

Here’s the hack to shortcut your curse of knowledge: If it’s interesting to you, it’s interesting to someone else. Ultimately, you don’t know what you don’t know and you don’t know what your readers don’t know. 🧠

There will still be work to be done to make a post approachable to an outsider or work to make it maximally interesting or relevant but the seed of a good and worthwhile idea is your own interest. 

And no matter how much you know, don’t let knowledge fool you into thinking you already know what your readers want.
MERN Blog Page
Tags: mern, blog, webdev, contentwriting
Published: 2023-04-24 15:48:05

Hey there...
I was working on a dynamic blog page using mern full stack technologies.
here is the page, visit- [fertileminds.in](https://fertileminds.in/)

I am looking for collaborate who would like to work on react and content creation.
I would like to make it huge, and still wanted to work a lot in it.
Starting initially is the first step, nothing will work without initiation.

If anyone interested in blogging and content creation as their hobby can contact me.
VMClarity: How to use the API
Tags: sbom, opensource, api
Published: 2023-04-24 15:27:42

If you are just now joining us on our multi-post series on the [VMClarity open source project](https://github.com/openclarity/vmclarity), check out these other posts to catch up:

- Introduction to VMClarity and how to get it deployed: https://dev.to/ciscoemerge/vmclarity-virtual-machine-security-5e8g

- Behind the scenes of a VMClarity scan: https://dev.to/ciscoemerge/vmclarity-what-happens-during-a-scan-3g08

---

## The VMClarity API

VMClarity uses the [OpenAPI](https://www.openapis.org/) spec; you can look at it here: https://github.com/openclarity/vmclarity/blob/main/api/openapi.yaml.

You can interact with the API via the following methods:
- VMClarity UI - See the blogs referenced above to understand how to interact with the UI)
- curl commands - See the video and commands referenced below
- API tools such as [Postman](https://www.postman.com/) - See the video below

Once you have VMClarity up and running, check out this video to learn more about interacting with the VMClarity API:

{% embed https://youtu.be/DyOAcB-x73Q %}

---
Here are some of the commands that I referenced in the video:
**SSH tunnel into the VMClarity Server instance (EC2):**

```
ssh -i <your PEM> -N -L 8888:localhost:8888 ubuntu@<VMClarity public IP address>
```

**curl against the VMClarity API to get the scan configurations:**

```
curl -s -X GET http://localhost:8888/api/scanConfigs -H 'Content-Type: application/json' | json_pp
```

**curl to get a list of scan targets (EC2 assets found based on the scan scope in the scan configuration):**

```
curl -s -X GET http://localhost:8888/api/targets -H 'Content-Type: application/json' | json_pp
```

**curl to get the scan results. Note: This is going to generate a LOT of output. It is best to view this information in the UI:**

```
curl -s -X GET http://localhost:8888/api/scanResults -H 'Content-Type: application/json' | json_pp
```

---

## Learn More & Join the Community!

Learn more about VMClarity and join the community! https://github.com/openclarity/vmclarity

I will be back with more posts on understanding how VMClarity works, and how you can contribute to it!

You can also learn more about the other Clarity projects, such as (API security) and KubeClarity (K8s SBOM/Supply chain security) here:

- https://github.com/openclarity/apiclarity

- https://github.com/openclarity/kubeclarity

And several blogs about both projects are here:
https://techblog.cisco.com/

---

Shannon McFarland is a Distinguished Engineer and open source advocate in Cisco’s Emerging Technology & Incubation organization. You can follow him on Twitter @eyepv6.
Closures and callbacks in Javascript
Tags: webdev, javascript, beginners, programming
Published: 2023-04-24 15:27:15

_In the month of April, I'll publish a small blog series called "Questions from the Past". I'll be going through my old notebooks from my first year as a developer and answering the questions I think are most important. Today we will go into Closures and Callbacks in Javascript._

**Closures**
Closures are functions that have access to variables from an outer function, even after the outer function has finished executing. This might sound a bit confusing, but let's go through it together.
Imagine you have a function that defines a variable, like this:

```
function outerFunction() {
  let outerVariable = "Hiiii!";

  function innerFunction() {
    console.log(outerVariable);
  }
  
  return innerFunction;
}

const inner = outerFunction();
inner(); // logs "Hiiii!" to the console
```
In this example, `innerFunction` has access to `outerVariable`, even though it's not defined inside the `innerFunction` itself. This is because `innerFunction` closes over `outerVariable`, creating a closure that allows it to access the variable's value even after `outerFunction` has finished executing.

**Callbacks**
A callback is a function that is passed as an argument to another function and is executed at a later time. Here's an example:

```
function doSomething(num1, num2, callback) {
  let result = num1 + num2;
  callback(result);
}

function logResult(result) {
  console.log(`The result is ${result}`);
}

doSomething(3, 4, logResult); // logs "The result is 7" to the console
```

In this example, `logResult` is a callback function that's passed as an argument to `doSomething`. When `doSomething` is executed, it performs an operation on `num1` and `num2` and then calls the callback function, passing in the result as an argument. In this case, `logResult` is executed and the result is logged to the console.

That's all there is to it! Once you get a handle on closures and callbacks, you'll be able to write better and more efficient code.
What Are the (Other) Benefits of Learning to Code?
Tags: discuss, beginners, codenewbie
Published: 2023-04-24 15:24:01

Coding is becoming an increasingly important skill in today's world. It's no longer just for tech professionals;  anyone can benefit from learning how to code. 

As Reshma Saujani says, 

> Learning to code is useful no matter what your career ambitions are.

Coding can help you work more efficiently, creatively, and independently. It can help you develop problem-solving skills, increase your earning potential, and open up new career opportunities.

In what other areas of work and life can we use coding practices? How have you applied coding practices in creative ways?

---

Follow the [CodeNewbie Org](https://dev.to/codenewbieteam) and [#codenewbie](https://dev.to/t/codenewbie) for more awesome discussions and online camaraderie!

{% embed [https://dev.to/t/codenewbie](https://dev.to/t/codenewbie) %}
Staff augmentation
Tags: staffing, recrutment, staffagumentation
Published: 2023-04-24 15:23:00

In today's fast-paced business environment, companies in Canada are constantly looking for ways to stay competitive and achieve success. One effective way to achieve these goals is through staff augmentation. [Staff augmentation](https://hireinhurry.com/) is the process of adding skilled professionals to a company's existing workforce to meet specific project needs or to supplement the company's regular staffing requirements.
 
**Here are some of the key benefits that Canadian businesses can expect from staff augmentation**:

1. **Flexibility**: Staff augmentation allows companies to quickly scale up or down their workforce as needed. This means that businesses can easily respond to changes in demand or unexpected events, such as a sudden increase in workload or a key employee leaving the company.
2. **Access to specialized expertise**: Staff augmentation provides businesses with access to skilled professionals who have expertise in specific areas. This can be particularly beneficial for companies that require specialized skills that their existing workforce does not possess.
3. **Cost-effective**: Staff augmentation can be a cost-effective solution for businesses, as it allows them to hire skilled professionals on a temporary basis rather than investing in full-time employees. This can be particularly useful for short-term projects or when companies need to control costs.
4. **Reduced risk**: Staff augmentation can help businesses reduce their risk when it comes to hiring. By working with a staffing agency like Hire in Hurry, companies can leverage the agency's expertise and networks to find the right candidates. This can help ensure that the company hires skilled professionals who are a good fit for the job.
5. **Improved productivity**: Staff augmentation can improve productivity by providing companies with additional resources to complete projects or tasks. By adding skilled professionals to the existing workforce, companies can ensure that projects are completed on time and to a high standard.

In conclusion, staff augmentation can be a valuable tool for businesses in Canada. By providing flexibility, access to specialized expertise, cost-effectiveness, reduced risk, and improved productivity, staff augmentation can help companies stay competitive and achieve success. Working with a staffing agency like [Hire in Hurry](https://hireinhurry.com/) can make the process even easier, by providing access to a pool of skilled professionals and expert guidance throughout the hiring process.

Visit our [website](https://hireinhurry.com/) to know more details!
SM66 – Thương Hiệu Giải Trí Bạc Tỷ Cho Các Dân Chơi
Published: 2023-04-24 15:20:34

SM66 là thương hiệu nhà cái đi đầu trong thị trường giải trí trực tuyến hiện nay, lĩnh vực kinh doanh chủ đạo của đơn vị là các hoạt động giải trí cá cược. Được biết tất cả các sản phẩm dịch vụ chơi tại đây đều được cấp phép và ủy quyền giám sát bởi Ủy ban giám sát cờ bạc Isle of Man. Do đó chất lượng ổn định là điều không cần bàn cãi, khi đến đây bạn sẽ không cần lo lắng về các vấn đề lừa đảo.

Được biết để có được sự cấp phép và chứng nhận bởi tổ chức Isle of Man, sân chơi cũng đã trải qua quá trình kiểm định khá nghiêm ngặt về chất lượng. Do đó sân chơi có thể mang đến game có chất lượng tốt nhất, các tính năng có trong trang chủ cũng hỗ trợ cho quá trình chơi của anh em khá nhiều.

Mỗi một sản phẩm game đổi thưởng mà sân chơi ra mắt trên thị trường đều có chất lượng vượt trội và được đông đảo người chơi săn đón. Đơn vị luôn biết cách làm mới bản thân cũng như biết làm hài lòng mọi khách hàng bằng chính sự chỉn chu và chất lượng của mình.

#sm66 #sm66 game #sm66 game club

Website: https://sm66game.club/

SĐT: 0368121519

ĐC: 18 Đ. Xuân Đỉnh, Xuân Đỉnh, Từ Liêm, Hà Nội, Việt Nam

Email: contact@sm66game.club

https://www.facebook.com/sm66game/

https://www.youtube.com/@sm66-game/about

https://twitter.com/sm66game

https://www.pinterest.com/sm66game/

https://www.linkedin.com/in/sm66-game/

https://vimeo.com/sm66game

https://sm66-game.tumblr.com/

https://medium.com/@sm66-game/about

https://www.reddit.com/user/sm66-game

https://www.quora.com/profile/SM66-Game

https://soundcloud.com/sm66-game

https://social.msdn.microsoft.com/Profile/sm66-game
Protecting Yourself from Phishing: Understanding the Threat Following Naivas' Data Breach
Published: 2023-04-24 14:55:47

Following the recent data breach at Naivas Supermarket, it's important to understand the threat of _phishing_ and how to protect yourself from it

Phishing is a type of social engineering where attackers will try to trick you into giving away ua confidential info, such as ua usernames and passwords. They do this by creating fake websites that look almost identical to the real ones, and then convincing you to enter your information on these fake sites.

**Phishing attacks can come in various forms, including:
**
_**Spear Phishing**_: This type of attack targets a specific group of people. Attackers usually gather information about the victim to personalize the phishing attempt, making it more convincing.

_**Whaling:**_ Similar to spear phishing, whaling targets high-ranking individuals such as executives, managers, and other high-level people including religious leaders, politicians.

**_Smishing:_** This type of attack uses SMS messages to trick victims into revealing sensitive information.

_**Vishing:**_ Vishing attacks are carried out through phone calls, where the attacker pretends to be a trustworthy person, such as a bank representative or MPESA Customer Care to obtain sensitive information.

Despite the different types of phishing attacks, _the objective is always the same_: _to trick individuals or organizations into providing sensitive information.

To protect yourself from phishing attacks, it's important to educate yourself and your team or those close to u on the threats of social engineering. Ensure you implement both 2FA and WAFs to significantly improve the security posture of your personal accounts, phone/other gadgets and help ensure that sensitive user data remains secure.

#MlimaVirtual
Hide text in CSS pseudo elements from screen readers with this one weird trick
Tags: css, webdev, beginners
Published: 2023-04-24 14:53:36

Unfortunately this doesn't yet work in Safari or Firefox, but you can keep up to date with support on [caniuse.com](https://caniuse.com/?search=content%20alt%20text).

_**TL:DR; Add empty "alternative text" to the pseudo element content to prevent screen readers announcing your decorative design elements, like so:**_

```css
.someClass::before {
  content: "M" / "";
}
```

I'm currently redesigning my website, and part of the design includes decorative elements provided by a font, specified as single letters in the content of CSS pseudo elements. Psst! If you don't know what a CSS pseudo element is, read this post first:

{% embed https://dev.to/whitep4nth3r/whats-the-difference-between-and-in-css-23p4 %}

Here's some code that adds a large stylised paint brush glyph as a pseudo element attached to the `<main>` HTML element of the page.

```css
main::before {
  font-family: "Atomic Marker Extras";
  content: "M";
  position: fixed;
  z-index: -1;
  /* ... */
}
```

When using [VoiceOver for MacOS](https://support.apple.com/en-gb/guide/voiceover/welcome/mac) to read the page using that code, the letter M is announced. Not ideal! You can also confirm what will be announced using the Accessibility Tree view ([enabled via an experimental flag](https://youtube.com/shorts/XpmLoOcMK_M?feature=share) in Chromium browsers), which gives you a visual display of all elements and their content that accessibility tools will have access to.

![Browser accessibility tree view, showing a static text element with the content M as referenced in the code example above, that will be read out by screen readers.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8d1xoxpw7o8w2nm29b2n.png)

Fortunately, the CSS content property comes with the ability to [specify alternative text](https://developer.mozilla.org/en-US/docs/Web/CSS/content#image_combined_with_alternative_text), which is especially useful if you're using images in your pseudo elements that actually mean something. And what's more, if you want to tell the browser that the content is purely decorative and doesn't need to be seen by assistive technology, you can provide an empty value for the alternative text, like so.

```css
main::before {
 font-family: "Atomic Marker Extras";
 content: "M" / "";
 position: fixed;
 z-index: -1;
 /* ... */
}
```

And that's it! One handy lesser-known feature of CSS to help you make your weird and wonderful website designs more enjoyable to browse, for everyone, everywhere.