teleren/devto huggingface dataset:
An Ode to AngularJS
Tags: angular
Published: 2022-01-19 09:14:26

---
canonical_url: https://wicki.io/posts/2022-01-an-ode-to-angularjs/
---

In remembrance of my first love.

Your LTS came finally to an end. You retired on 31st December 2021. You will always have a special place in my heart.

> _You arrived with great anticipation,_
> _&nbsp;&nbsp;&nbsp;&nbsp;Put the web dev world upside down;_
> _Model, View and Controller were in separation,_
> _&nbsp;&nbsp;&nbsp;&nbsp;Even Javascript beginners didn’t frown._
> 
> _Be it JavaScript, CoffeeScript or SCSS,_
> _&nbsp;&nbsp;&nbsp;&nbsp;You handled them all in a snap;_
> _Grunt helped you to transpile and compress,_
> _&nbsp;&nbsp;&nbsp;&nbsp;The only thing needed was an `ng-app`._
> 
> _You were patient with faulty code,_
> _&nbsp;&nbsp;&nbsp;&nbsp;Throwing errors with the where and why;_
> _Did selectors return a wrong DOM node?_
> _&nbsp;&nbsp;&nbsp;&nbsp;Did watchers kill the CPU workload?_
> _&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Did a variable on `$scope` get overshadowed?_
> _Maybe the external callback needs an `$apply`!_
> _&nbsp;&nbsp;&nbsp;&nbsp;Maybe `$inject` lacks used params to minify!_
> _&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maybe avoid `$rootScope` for all events passing by!_
> 
> _You were either praised or attacked,_
> _&nbsp;&nbsp;&nbsp;&nbsp;Yet, you advanced and left doubters behind;_
> _Daily flame wars you fought against react,_
> _&nbsp;&nbsp;&nbsp;&nbsp;Until the day `window.angular` became `undefined`._

---

If you found this post interesting please leave a ❤️ on this tweet and consider following my 🎢 journey about #webperf, #buildinpublic, #nonfiction books and #frontend things [on Twitter](https://twitter.com/zwacky).

{% twitter 1483745787632828423 %}
Install zsh/zimfw on Ubuntu 20+
Tags: ubuntu, tutorial, terminal, zsh
Published: 2022-01-19 09:12:47

# Install zsh
*Open terminal and run*
```
curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
```

# Check zsh is installed
*Open terminal and run*
```
which zsh
```

# Config zsh
*Open terminal and run*
```
zsh
```
*Config whatever you like*
I choose `0`

# Install zimfw
1. Download this file from 
```
https://github.com/zimfw/install/blob/master/install.zsh
```
2. Open terminal, type in `zsh`, cd to the directory that contains the file you just downloaded, type `zsh ${fileName}`

# Config / Add theme
1. Go to file .zimrc
2. Edit `zmodule ${themeName}`. default is `asciiship`
3. Save
4. Run `Zimfw install` inside zsh terminal or just restart the terminal
ZC Rubber develará enormes vallas publicitarias en 4 países para las marcas de neumáticos Westlake y Arisun

Published: 2022-01-19 09:10:44

“Lo vemos como una oportunidad perfecta para incrementar tanto nuestra imagen de marca global como nuestro valor de mercado. Esta campaña generará millones de impresiones de marca a nivel global y asocia a WESTLAKE, ARISUN y GOODRIDE con algunas de las más reconocidas y mejor posicionadas marcas a nivel mundial” ZC RUBBER dijo.

ZC RUBBER logró una evolución ascendente y mantuvo un crecimiento sostenido en el año 2020, un año lleno de conflictos. “Ya que la seguridad y el valor continúan siendo uno de los pilares de nuestro éxito, estamos comprometidos a incrementar nuestra inversión en investigación, desarrollo y atención al cliente para cumplir con una mayor demanda del mercado. Nosotros valoramos nuestra relación con nuestros socios y distribuidores y esperamos ayudarlos a expandir su cuota de mercado mediante estrategias más diversificadas para el año entrante”.

En este año 2020, ZC RUBBER está entre las 10 principales compañías de neumáticos a nivel global por noveno año consecutivo, con ventas calculadas en 3585 millones de dólares estadounidenses en el año 2019. En el 2020 se ve una continuación en la tendencia de crecimiento a pesar del impacto de la pandemia.

Sobre ZC RUBBER
ZHONGCE RUBBER GROUP CO., LTD. (ZC RUBBER), con sede principal en Hangzhou, China, es el mayor fabricante de neumáticos en China. Esta compañía promociona y distribuye un amplio catálogo de neumáticos para vehículos de pasajeros, camiones, autobuses, vehículos todo terreno, tractores, bicicletas y motocicletas a más de 160 países alrededor de mundo. La compañía posee las marcas WESTLAKE, GOODRIDE, CHAOYANG, ARISUM, TRAZANO y YARTU para cumplir las diversas necesidades de los consumidores a nivel mundial.
[leer mas](https://visiondelsur.com/)
Sobre ZC RUBBER

Published: 2022-01-19 09:00:31

ZHONGCE RUBBER GROUP CO., LTD. (ZC RUBBER), con sede principal en Hangzhou, China, es el mayor fabricante de neumáticos en China. Esta compañía promociona y distribuye un amplio catálogo de neumáticos para vehículos de pasajeros, camiones, autobuses, vehículos todo terreno, tractores, bicicletas y motocicletas a más de 160 países alrededor de mundo. La compañía posee las marcas WESTLAKE, GOODRIDE, CHAOYANG, ARISUM, TRAZANO y YARTU para cumplir las diversas necesidades de los consumidores a nivel mundial.

[leer mas](https://visiondelsur.com/)
The Rise of Browser Os
Tags: webdev, discuss, programming, javascript
Published: 2022-01-19 08:56:34

Why is chrome so heavy? The all to famous question and meme. Well I have the answer. See chrome and other web browsers are more of operating systems than browsers. Lets look at it from this perspective, websites these days are being referred to as web **apps**, why? Well, maybe because they are more of like apps. Is Gmail a website or a web app? What about github? I'll do you one better, what about figma or gravit designer? The days where web developers were "looked down on" by the developer community is long gone. Web developers(backend and frontend) are building some seriously complex systems. 
Let's do a quick experiment.Open [Figma](https://figma.com) If you are on a chromium based browser press `Shift +  Esc` to open your browser's task and check how much memory and cpu Figma is using. Here is mine 👇
![Browser Task Manager](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wa0oc4v5pfgn5anpywm.png)
Figma is using 300+ mb of ram(currently, I just rechecked). More than the browser itself. What about YouTube?

![Youtube Memory Usage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m08kqqbsnsxbqaswmv3h.png)

What's the point? The point is that website are pretty heavy these days. They are apps and the browser is the operating system managing them. We have browsers suspending tabs after some idle time to conserve memory, well that there is memory management, a concept in Operating Systems. We can go all in in mapping operating system functions to features in modern web browsers but I'll stop at that one.

You can perform pretty much 99% of your tasks right on your browser. You can code (stakblitz, code pen, codesandbox),design (figma, gravit designer, vectr), video editing(invideo,clipchamp,veed.io), photo editing (photopea, pxlr, fotor), zip and compress files, heck even gaming with google stadia and xbox game pass. This is why this concept came to me. I can 100% live in the browser. Am guessing this realization was also the fuel for building chrome os. And while we are on that, lets talk about google.
Google and Microsft are hell-bent on making the browser an os. Checkout the [fugu](https://www.chromium.org/teams/web-capabilities-fugu) project that is on a course of availing all native apis (file system access, bluetooth and so on) to the browser. Check this out 👇

![Screen shot of PWA capabilities](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8vvru3q5fl8i3lul26bi.png)
This is a screeshot from the [whatpwacando](https://whatpwacando.today) website that lists all of the features progress web apps can do. This list is just unbelievable. The gap between web apps and native is quickly getting filled. And in the process of bridging this gap, the browser operating systems are slowly being built.

Am not sure whether to support this progression or to oppose it because it has benefits and drawbacks. But whatever my or your stance is on this it wont stop this process. With each passing day we get closer to the "web winning", in the "virtual war" between web and native. What do you think.
C# PDF Viewers
Published: 2022-01-19 08:49:14

---
canonical_url: https://ironpdf.com/docs/questions/net-pdf-viewer/
---

Viewing PDFs in applications is a common request that is easily solved with the [PDF Library for .NET](https://ironpdf.com/use-case/pdf-library-dot-net/).

---

**Step 1**

# 1. Installing IronPDF into Your Project

Use NuGet package manager to install IronPDF:
[https://www.nuget.org/packages/IronPdf](https://www.nuget.org/packages/IronPdf)

`PM > Install-Package IronPdf`

IronPDF DLL can also be [downloaded](https://ironpdf.com/packages/IronPdf.Package.For.net.pdf.viewer.zip) and manually installed.

---

**How to Tutorial**

# 2. PDF Viewers for .NET

We are working on a visual framework for viewing PDFs in C#/.Net - in the mean time you have lots of viable free options without resorting to Adobe Acrobat.

## 2.1. ASP.Net & MVC PDF viewer.

For web applications - PDFs can be viewed in a browser window or iframe. You may also use the amazing pdf.js library from mozilla to leverage a full PDF viewer written in pure javascript code.

[https://mozilla.github.io/pdf.js/](https://mozilla.github.io/pdf.js/)

## 2.2. WPF C# PDF Viewer

For viewing PDF documents directly in WPF you can use the native **WebBrowser** control.

## 2.3. Windows Forms PDF Viewer

For viewing PDF documents directly in windows forms (WinForms) applications the **WebBrowser** control is also a good choice.

## 2.4. Viewing a PDF in a the Default System PDF Viewer

To open a PDF from any application in an external window, we may use a trick involving **System.Diagnostics.Process.Start**.

This will generally open the PDF in the default web browser which supports viewing PDF content, or Adobe Acrobat if installed.

**C#:**
```
// Render any HTML fragment or document to HTML
var Renderer = new IronPdf.ChromePdfRenderer();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
// This neat trick opens our PDF file so we can see the result in our default PDF viewer
System.Diagnostics.Process.Start(OutputPath);
```

**VB:**
```
' Render any HTML fragment or document to HTML
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
Dim OutputPath = "ChromePdfRenderer.pdf"
PDF.SaveAs(OutputPath)
' This neat trick opens our PDF file so we can see the result in our default PDF viewer
System.Diagnostics.Process.Start(OutputPath)
```
Deploying OutlineVPN to Ubuntu 20.04
Tags: security, beginners, productivity, tutorial
Published: 2022-01-19 08:47:46

*This post includes affiliate links; I may receive compensation if you purchase products or services from the links provided in this article.*

Continuing on what I left off on my previous article. I’m learning and doing everything I need to protect myself online after the horrible instance happened to me last month. I was supposed to have spun OutlineVPN on my server and have written about the process and challenges a week ago but the virus struck my family and I hence the late publish. 

Spinning up a server and installing OutlineVPN is not as easy as taking a candy from a baby. Here’s a brief walk-through on how I setup OutlineVPN on an Ubuntu 20.04 server with [Vultr](https://www.vultr.com/?ref=9025791) so you won’t make the same mistake as I did.

First thing’s first, register for an account at [Vultr’s website](https://www.vultr.com/?ref=9025791). 


![Register.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1642581612057/gN7zwlUDit.png)

Once you’ve created and verified your email, you should be able to create a server by clicking on the `+` and `Deploy New Server` option.


![Deploy.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1642581639700/KGrK1IOva.png)

Choose a server instance and location nearest to where you are.


![Location.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1642581655536/IEBXPa4FO.png)

Then choose a plan.


![Plan.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1642581669861/2-TKh4jv5.png)

Next, check the necessary options needed and add your SSH keys if needed and name your server to whatever name you want to name it then click `Deploy Now` 


![Last.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1642581685798/tVIRVB7rW.png)

One of the mistakes I made was checking the `No Public IPv4 Address` which didn’t allow me to SSH to the server.

While waiting for the server to initialize, [download the Outline Manager on their website](https://getoutline.org/get-started/#step-1v) and the OutlineVPN on the Mac App Store or [on their website](https://getoutline.org/get-started/#step-3) and install it both the Outline Manager and OutlineVPN on your machine and OutlineVPN on your mobile phone/tablet. 


![Screenshot 2022-01-19 at 4.34.16 PM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1642581734724/j3Uruxkp5.png)

SSH into your server then run `sudo bash -c "$(wget -qO- [https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh](https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh))".` You’ll be asked to installed Docker - just type Yes or Y then press enter to continue. 

Once installation on your server is done, you’ll get your `apiURL` which will be pasted on your Outline Manager. Open the necessary ports needed on your server by running ``sudo ufw allow <port_number>`

You should then be able to generate new keys which will be needed on the OutlineVPN Clients.

Cheers!
Community friendliness on dev.to? C'mon, its a myth
Tags: discuss
Published: 2022-01-19 08:34:27

I've been browsing feed, and wanted to comment on sth. First comment went through without any fuss, but - on the second article - gave me:


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

I mean: I **think** I understand where this comming from, but **this is highly discouraging**.

**There are many - way more effective - ways to combat spam than this shitty blockage.**

The way it was handled here, speak volumes about person(s) who coded / manage dev.to; Unexperienced newbies.

Dont get me wrong: props for creating dev.to, but its essential to carry out indepth "investigation" on what are best practices **prior** starting things like dev.to
A developer? Check what's your type, mine is "A A AB AB A A B AB" 😂😂😂

Tags: webdev, fun, programming, coding
Published: 2022-01-19 08:01:58

Hi, this article is for fun. I gathered some traits that differ from a developer to another. I noticed a lot of things that are common between developers.
Check what type of developer you are! Let me know in the comment section about your type 😉

[A coder? Check your type!](https://medium.com/geekculture/what-developer-type-are-you-9f4fb8e50b9f)

Some "laugh" vitamin is vital in life 😉
If your want the "laugh++" vitamins:

[Things only developers understand](https://medium.com/geekculture/funny-things-only-developers-understand-347f7d73a228)

Have a good day, 
By FAM with ♥️
A Quick 10-Second Programming Joke For Today
Tags: jokes, dailydeveloperjokes
Published: 2022-01-19 08:00:05

---
title: "A Quick 10-Second Programming Joke For Today"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
published: true
tags: #jokes, #dailydeveloperjokes
---

Hi there! Here's today's Daily Developer Joke. We hope you enjoy it; it's a good one.

![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e125970d9ec2.png)

---

For more jokes, and to submit your own joke to get featured, check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/). We're also open sourced, so feel free to view [our GitHub Profile](https://github.com/dailydeveloperjokes).

### Leave this post a ❤️ if you liked today's joke, and stay tuned for tomorrow's joke too!

_This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit._

<!--
Joke text:
___Q:___ What is a pirate's favorite programming language?

___A:___ You'd think it was R, but a pirate's first love is Objectively C.
 -->
Bash Completion for Git on Mac OS X Monterey
Tags: git, bash, macosx, cli
Published: 2022-01-19 07:23:34

---
title: Bash Completion for Git on Mac OS X Monterey
published: true
description: How to enable tab completion in Bash while using Git on the CLI of Mac OS X Monterey
tags: git, bash, macosx, cli
//cover_image: https://direct_url_to_image.jpg
---

For years now, I've had a working recipe to enable bash autocompletion for git on my Mac. Recently that broke due to a packaging change with Xcode's CommandLineTools. So, let's take a moment to review how this all works, and how we can get it working (again).

## Quick background on bashrc files

bashrc files are environment configuration scripts that Bash includes when it starts. You can use them to customize your CLI experience.

However, the single `~/.bashrc` file can get unmanageable quickly. So just like any other piece of software, we'd like to template things and break the problem into smaller chunks.

My `dotfiles` GitHub repo includes the collection of `.bashrc` template files I use on a day-to-day basis:

{% github jamesonwilliams/dotfiles %}

Basically, they work as follows.

1. `~/.bash_profile` is the hook used by Mac OS X to start loading your Bash customizations. Mine does nothing other than call `~/.bashrc`.
2. My `~/.bashrc` itself contains no real logic, it just sources a bunch of template files that handle specific sub-problems.
3. One of these template files is called `~/.bashrc.darwin`, and it includes some fixes for Mac-specific quirks. Stuff that's generally useful on Linux or other UNIX flavors _doesn't_ go into this file.

## How it used to work on Mac OS X

One of the quirks of using OS X is that tab completion with git doesn't work out of the box. So for years, I've had a little bit of configuration to handle this case:

```bash
# In ~/.bashrc.darwin

cli_tools='/Library/Developer/CommandLineTools'
git_core="$cli_tools/usr/share/git-core"
git_completion="$git_core/git-completion.bash"
[ -x "$(which git)" ] && \
    [ -f "$git_completion" ] && \
    source "$git_completion"
```

If git is installed and the git completion file can be found, we source it into the environment.
 
# How it works now

Recently, that `git-completion.bash` file disappeared from the CommandLineTools install, and so my tab completion stopped working.

Turns out it now lives here:
 
```console
/Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
```

So all that's needed is to update our pathing for `git_core` in `~/.bashrc.darwin`:

```bash
# In ~/.bashrc.darwin

xcode_dev_dir='/Applications/Xcode.app/Contents/Developer'
git_core="$xcode_dev_dir/usr/share/git-core"
git_completion="$git_core/git-completion.bash"
[ -x "$(which git)" ] && \
    [ -f "$git_completion" ] && \
    source "$git_completion"
```

Save the file, reboot your laptop, and profit. Happy git-ing.
Trying out RabbitMQ
Tags: devops, programming, beginners, discuss
Published: 2022-01-19 07:18:00

Recently, on colleagues's advice, I found myself trying out this tool called RabbitMQ(https://www.rabbitmq.com/),
A "message broker" that manages and transmits messages between a client and a server that is usually used to manage "queues" of operations to be performed (an example could be the massive sending of emails).
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sc0f7w4ix4df7wjcal6j.png)

To put it simple there is a "Publisher" that sends data to a "Consumer"

## Publisher
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1poyazkjuclh2iqdjac4.png)
_this is an php's example of a publisher , it will send Hello world in the "hello" channel_
 
## Consumer
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b9e1lhwaa3n7ass1eqpy.png)
 this is an php's example of a consumer , it will receive messages from the hello channel and then when it's called it will send the message in the $callback function

Trying it out I realised the great potential it has as a tool for managing "heavy" operations that can be run in parallel without blocking the main thread (especially for applications) such as video processing, image and video optimisation, emailing and many other applications.
Do you use it? If yes, for what?
From what I've been told it is also widely used in microservice structured systems to connect them.
Interview Questions of the SQL
Tags: dbms, sql
Published: 2022-01-19 07:03:52

**What is a trigger?**  :

- Trigger is a database object which will automatically invoke or execute when a specific event occur in the database.

- The most common type of triggers are DML triggers, DDL triggers and Database triggers

- And this trigger can be invoke before the operation or after the operation.

- If the function include DML operation like INSERT DELETE UPDATE etc. then it can not be called from the SELECT query. because SELECT query can not change the state of the database.

**What is the difference between primary key, unique key and foreign key**

**PRIMARY KEY**
- When you make a column as primary key. then this column will have a unique value or distinct values. Duplicate and **null value ** will not be allow in the column.

- A table can have only one primary key.

- Primary key create by one column or group of column.
**UNIQUE KEY** :

- When you make a column as unique key in the table then that table does not have duplicate value. and in unique key null value allow.
if you talk about the difference b/w the unique and primary key.
then only one difference, primary key does not allow null value but unique key allow null value.



Difference betwen WHERE and HAVING clause
Interview Questions of the SQL
Tags: dbms, sql
Published: 2022-01-19 06:59:21

**What is a trigger?**  :

- Trigger is a database object which will automatically invoke or execute when a specific event occur in the database.

- The most common type of triggers are DML triggers, DDL triggers and Database triggers

- And this trigger can be invoke before the operation or after the operation.

- If the function include DML operation like INSERT DELETE UPDATE etc. then it can not be called from the SELECT query. because SELECT query can not change the state of the database.

**What is the difference between primary key, unique key and foreign key**

**PRIMARY KEY**
- When you make a column as primary key. then this column will have a unique value or distinct values. Duplicate and **null value ** will not be allow in the column.

- A table can have only one primary key.

- Primary key create by one column or group of column.
**UNIQUE KEY** :

- When you make a column as unique key in the table then that table does not have duplicate value. and in unique key null value allow.
if you talk about the difference b/w the unique and primary key.
then only one difference, primary key does not allow null value but unique key allow null value.