teleren/devto huggingface dataset:
My First Week As A Software Developer
Tags: beginners, webdev, career
Published: 2019-07-20 12:18:03

It's Saturday morning at the time of me writing this and I'll admit, it still feels surreal. Monday I started my job as a fullstack developer for Community Brands, working on the NimbleAMS DevOps team. It was a fantastic week and I'm enjoying the work environment. 

My team is amazing. Nice seems like a paltry word to describe them. It's more than professional politeness and pleasantries. For the first time, in my entire life, I felt the sense that everyone *actually* was excited for me to be there. There was a earnestness about it, an authenticity that is hard to describe.

Maybe because I worked in IT support my whole career, so most people were hardened and used to turnover. To a degree, IT not an easy realm to thrive in. It takes a special kind of person to wake up and stay highly motivated to tackle issues and wrangle frustrated customers/clients. Many became jaded after years of being under those pressures. Even I had to disconnect from my tasks emotionally many times. I put on that customer service face and went into auto pilot mode most days. I would hope for some quiet time to tinker with computers, because that was the fun part.

Software development appears to have different balance. No doubt some of that same stuff is there, just in lesser doses. Just the act of dreaming up software and learning about new things gets amped up for the day. The notion that I'll be coding something that people will actually use now is crazy to me.

My entire week was dedicated to study and absorbing as much information as possible about our product and systems. Right now I'm just a human sponge. Our team builds custom software for Salesforce on their AppExchange. In fact our product NimbleAMS, is the largest app and offering on the AppExchange. 

Salesforce itself is a beast of its own. I've found myself astounded the breadth and the depth of its capabilities. Even after days straight of reading and delving into the details, I've barely scratched the surface.

I think that's probably also a downside or negative so far. I can't really contribute in a meaningful way, at least not yet. I know it's my first week, but very little of the stuff I learned prior has been relevant to the way things are done with Salesforce.

I practiced mostly HTML/CSS, Javascript, React, and Node in my learning path. The Salesforce stack *does* have Javascript (or I probably wouldn't have this job.) Salesforce created their own entire frontend Javascript framework called Lightning Web Components that I have to delve into. Most of the back end code is in a Salesforce-unique programming language called Apex (it's based on Java.) Another big portion of stuff I'll be doing uses C#. Both of those I'm unfamiliar with.

That's three major things I have to learn and be proficient enough to be able to contribute. My team understands this and are dedicated to helping me get there. I just hope my understanding Javascript at a deep level will prove useful here. I probably just need to be patient with myself though.
How to Stop requestAnimationFrame in Vuejs / Javascript
Tags: beginners, javascript, vue
Published: 2019-07-20 13:10:10

---
title: How to Stop requestAnimationFrame in Vuejs / Javascript
published: true
tags: beginner, javascript, vuejs
canonical_url: http://alexandrubucur.com/blog/2019/how-to-stop-requestanimationframe-in-vuejs-/-javascript/
---

TLDR:

```js
let id = window.requestAnimationFrame(fancyFunctionHere)
window.cancelAnimationFrame(id);
```

Now for the longer version. Technically in Vue.js you might have components/mixins that use window.requestAnimationFrame. Since the `fancyFunctionHere` is used as a callback, everytime you call `window.requestAnimationFrame` you are going to get a new id that you should use on the `destroy` method to stop it.

Unfortunately this is not imediately clear on [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelAnimationFrame) so hopefully my documentation edit with the comment in the code example goes trough.


```js
{
    created() {
        this.id = window.requestAnimationFrame(
            this.fancyFunctionHere
        );
    },

    destroyed() {
        window.cancelAnimationFrame(this.id);
        this.id = undefined;
    },

    data() {
        return {
            id: undefined
        }
    }

    methods: {
        fancyFunctionHere() {

        }
    }
}
```
Thinking about technical debt
Tags: codequality, techdebt, management
Published: 2019-07-20 13:09:08

Technical debt is a common concern among software engineers. But we don't often think about it in the right terms.

# Monetary debt
After you take out a loan, you (usually) have to make interest payments.

If you cannot make interest payments in full, in the short term, your debt grows. If you continue to be unable to repay interest, you may have to declare bankruptcy. This means that you may lose your assets to pay down the debt.

If circumstances are good, you will be able to both make interest payments and pay down the debt. After enough of these payments, you will be debt-free.

# Technical debt as monetary debt
Introducing technical debt to a codebase is equivalent to taking out a loan.

You must now make continuous interest payments on the loan. Interest can come in various forms. One is engineering time spent on fixing bugs or regressions. Another is an increase in operational load from running the system in production.

Technical debt will grow if you do not have enough income (engineering time) to meet its costs. Lacking the time to make proper bug fixes, engineers will introduce yet more debt to the codebase.

If this situation remains unchecked, you may have to declare technical bankruptcy. This is a terrible situation: you must now drop all other work to fix the technical debt. In the worst case, you may have to drop all support for the system while you rewrite it completely from scratch.

# We should not be afraid of technical debt
There are often good reasons for taking out a loan. For example, it might enable us to make an investment that has a large payoff in the future.

As with loans, so too with technical debt. We must make tradeoffs between technical debt and investment in new features. Those features may pay off in the form of more profits, enabling us to hire more engineers. Thus paying down technical debt becomes much easier.

# Manage technical debt as you would a loan
Just as with real debt, technical debt requires careful management.

We should not be afraid of technical debt for its own sake. What should concern us is poor planning.

If you were going to use a loan to make an investment, it would be prudent to make a plan. This plan would model both the loan's value and the investment's value over time.

Technical debt is harder to model. But we should carefully consider both its cost and the opportunity cost of not taking it on. We should also keep track of our current debt, what it is costing us, and what headroom is available to take on more.
chromedriver role in the world
Tags: chromedriver, selenium, testing, automation
Published: 2019-07-20 12:47:49

---
title: chromedriver role in the world
published: true
description: what is chromedriver?
tags: chromedriver,selenium,testing,automation
---

chromedriver has one job in life and that is running Chrome for Selenium. It is tied tightly to Chrome and is versioned with Chrome. In other words you need chromedriver version 75 to run Chrome 75. If you ever upgrade Chrome for your tests then you will need to upgrade chromedriver too.

To use chromedriver you will need to include it in the source code when you invoke the Chrome constructor. Or you will need to include it in your PATH variable that is used in the environment of your script.

I will show examples of both.

Here is how you would use the path to chromedriver in your source code. 
```python
    cpath = "e:\\projects\\headless\\chromedriver.exe"
    driver = webdriver.Chrome(cpath)
```
And here is how you would set the PATH up and do the same thing. Assume chromedriver.exe is in the directory e:\projects\headless

This is done at the command prompt or in the bat file you are using to run your test. (WINDOWS ONLY BATCH FILE HERE)

```batch
set PATH=e:\projects\headless;%PATH%
```

If you are running in Linux or OSX you will use this syntax in bash. 
```bash
export PATH=/home/yourhome/projects/headless:$PATH
```

And this is the code you will use to start Chrome in that case.

```python
    driver = webdriver.Chrome()
```
The Python language binding for Selenium needs to know where chromedriver is located. You can tell the binding explicitly or implicitly. Either will work.

I have a tendency to use the PATH based one when I writing scripts initially for myself.
Opencart Multivendor: assign subscription plan on products
Tags: opencartmultivendor, opencartmultiseller
Published: 2019-07-20 11:34:38

Admin:-
In Purpletree Opencart multivendor Extension admin can assign the subscription plans on a particular product of seller products. There are two ways to assign subscription plan. For this functionality seller need to subscribe plan or plans to add products in the subscription plan, Seller can only add products in subscription plan according to the plan subscribed by them.
For this functionality seller and admin need some basic requirements.
Admin has to enable the subscription plan from Purpletree multivendor settings.
The seller has to subscribe to the one or more subscription plan which is created by admin.
If the seller is not subscribed any plan then admin can assign subscription plan for the seller from seller subscription > click to view button > assign new seller plan.
Learn More At: https://www.purpletreesoftware.com/multi-vendor-marketplace-opencart.html

Way 1:-
Go to Purpletree multivendor > Seller Products > Edit.

Select the "vendor" tab. From here admin can assign the subscription plan to seller products, Seller featured product for category page and Featured product for carousel. Then assign subscription plan to a product after that save all the change by clicking on the save button.
If the dropdowns of the subscription are not visible please make sure that you have enabled the subscription plan from Purpletree multivendor subscription plan and the seller has subscribed the subscription plan.

Way 2:-
Go to Purpletree multivendor > Stores > Edit.
Select "Add product" tab. From here admin can assign the subscription plan to seller products, when clicking to checkbox of any product then the popup will open from the popup select the subscription plan to a product then click to save button.

Seller:-
For the seller, there are also two ways to assign subscription plan to their own products.

Way 1
The seller can assign the subscription plans for their own products, featured product for carousel and featured product for category page on a particular product.
Go to Products.
Left side the column of featured product for carousel by which seller can assign the subscription plan only for carousel on the home page.
Right side the column of featured product for category page by which seller can assign the subscription plan only for a category page.
Click to any checkbox to assign subscription plan for any product.

Way 2:-


To assign subscription plan to a particular product seller need to edit the product.
From here select "Data" tab then assign the Subscription plan, a Subscription plan for the featured product, a Subscription plan for category featured product then clicks to continue button.
If the dropdowns of the subscription are not visible it means the seller does not have subscribed the subscription plan.

For More details Please Visit Purpletree Opencart Multivendor marketplace

Read Full article At: https://www.purpletreesoftware.com/blog/opencart/how-admin-and-seller-can-assign-subscription-plan-to-products
How Prepared Are We Now For an (Attacking) Alien Invasion?
Tags: watercooler, offtopic, alien, technology
Published: 2019-07-20 11:15:45

---
title: How Prepared Are We Now For an (Attacking) Alien Invasion?
published: true
description: let's discuss how human race is prepared for an attacking Alien invasion -Palash
tags: watercooler , offtopic , alien , technology
cover_image: https://thepracticaldev.s3.amazonaws.com/i/8wgy3hntzueel5zyo6de.jpeg
---

![](https://media1.tenor.com/images/3ad8e4275ff0adc89772291c74e1dc2b/tenor.gif?itemid=8007525)

**Let's Discuss How Prepared Human Civilization is for an Alien Invasion...**
Tiny speech recognition web app with a funny game mode
Tags: javascript, html, css
Published: 2019-07-20 10:39:34

---
title: Tiny speech recognition web app with a funny game mode
published: true
description: I've recently published the small web app using Web API to recognize a speech. Also, it has a funny game mode.
cover_image: https://s3-us-west-2.amazonaws.com/s.cdpn.io/1541696/checkyouraccent.png
tags: javascript, html, css
---

Hey, devs! I've recently played with SpeechRecognition Web API, it was pretty nice to see how easy to recognize a speech with few lines of JavaScript code without using any library. Just a browser's API. I've ended up with the small app checking how good your accent is. It also has funny game-mode. But, unfortunately, it works only in modern browsers, since it's using a new web API.

The app lives on [checkyouraccent.com](https://checkyouraccent.com)

Feel free to play with it and check how many points you can score!

If you're interested in the source code, you can simply check it in the browser (it's pretty simple and not transpiled/minified). The implementation is quick and dirty, but if you like it I could make it open-sourced and refactor to be a good one. So please leave a comment if you like it. Cheers!
How IoT Affects The Future Of Fleet Management System
Tags: iot, aritificalintelligence
Published: 2019-07-20 10:30:32

Internet of Things Vs Fleet Management!

(IoT) Internet of things is a vast environment of physical objects, device, or sensors connected with the internet. Any digital device, objects or people that have an ability to transfer data over a network medium without the need of a human to computer interaction, that can be remotely controlled and monitor.

Fleet management is an industrial technique to organize and improve the efficiency and productivity of resources and reduce the cost control over vehicles. Thus, In Fleet Management System Internet of things is considered as an ecosystem of multiple technologies used in fleets like commodity sensors, real-time activity, wireless networks, control systems, embedded systems, and machine learning.

Working Structure of IoT With Fleet Management

In early days Fleet operating companies doesn’t had much connectivity system. In spite of having devices like mobile phones and GPS sensors were not able to provide accurate data. Resulting issues like maintenance and lost control over the vehicle. But with the rise of IoT Technology offering several new tools like live vehicle streaming cameras, scheduling, Load Management, Driver Behaviour, and vehicle tracking have changed the working pattern of the fleet companies.

As mention above different IoT enables devices or objects are used in a fleet like sensors, real-time features, etc. This object transmits real-time data over an internet connected network. Then after this data are collected from individual vehicles and analyzed, helping both fleet operators and drivers.

IoT generally makes use of 3 Technolgy that underpins fleet management which are RFID (Radio-Frequency Identification), GPS (Global Positioning System), OBD I (Onboard Diagnostic) and OBD II.

RFID is used to fetch accurate and reliable information to consistently operate and manage the live behavior of the fleet. These vehicles make use of RFID tags which are hooked on fleet vehicles. Which allows detailed and automated wireless identification of these fleets.

GPS is used to obtain a real-time route map, Route Information, Weather Information over which fleet will travel its trip.

OBD device is used to monitor Vehicle behavior, create and generate multiple alert alarms, check on Fuel Consumption and Mileage analysis and detect a failure in vehicle machines.
IP Geolocation & Exchange Rate API
Tags: php, docker, swoole, webdev
Published: 2019-07-20 10:26:41

The service is free. Maxmind-DB is used for geographic location determination. The European Central Bank and the Central Bank of the Republic of Turkey used to exchange rates.

<b>Development</b>
Written using Swoole Http Server. It achieves an average "35k/sec" request on a 4-core machine.

<b>PHP Library</b>
<ul>
<li>Swoole</li>
<li>FastRoute</li>
<li>Maxmind Reader</li>
</ul>

<b>Automatic Update</b>
Swool Scheduler is made with continuous update. The update is checked every 24 hours. The database is downloaded 2 times in one month.

<a href="https://github.com/appaydin/gclib" target="_blank">Go to Github Project</a>
GPS Tracking Software, And its usage
Published: 2019-07-20 10:20:44

If someone asked you, what is GPS? You will say, GPS stands for Global Positioning System, which provides location and time of any place on the earth.

Are these the only features of GPS tracking software? If so, why are software companies coming up with the latest software with a GPS tracking device?

GPS these days from navigating unknown roads to finding missing people, it can track anything.

Let’s learn about the importance of tracking:

1) Location searching

GPS tracking not only shows the route but also helps in seeing the real-time location. It can help you locate websites or place according to your needs.
Nowadays searching for the place or websites according to your current location is one necessity for all.
For example, if you’re searching for libraries in your nearby area, then it’s possible using GPS.

2) School bus management system
The school and parents can use the school bus tracking system to ensure the safety of the children.
Now the school will know the bus route, real-time location, and driver behavior. A driver can take attendance and know the routes and bus stoppage points.

To understand more about this, go through the article on the school bus management where you will get to know about the SmartBus, a user-friendly school bus tracking system.

3) Consignment tracking
For companies dealing with consignments, the biggest terror is consignment safety and its proper delivery, Gps comes to help.
We can track the transportation vehicle carrying the consignment using the GPS tracking device, which not only tracks the delivery timings but also can find the real-time location.
It also enables the planning of the trip and fleet management.
LogyTrak helps you in consignment management, to understand its features and usage check out consignment management.

4) Field monitoring
GPS tracking software has become a useful software for companies that cannot always be in the fields.
We have on top provided a solution for you, known as TaskEye.
TaskEye includes features like project management, field staff real-time tracking and in knowing the task status.
We can get a task summary with notes, images, and recordings.
TaskEye along with the tracking device, it also has an app that makes your work easier.
A difficult decision - Indentation
Tags: discuss, devlive
Published: 2019-07-20 10:14:01

It's probably a question one has always asked oneself and will probably still ask in 100 years time...


So, I have started a poll on Twitter:

### Do you use **2 Whitespaces or 1 Tab (4 Whitespaces)** in your code? 

{% twitter 1152518738505285633 %}
(click on the tweet to see the voting)


**Which one do you use and why? 😊**
Do you know these weird parts of JavaScript?
Tags: javascript, weirdjs, webdev
Published: 2019-07-20 09:54:59

---
title: Do you know these weird parts of JavaScript?
published: true
description: 
tags: js, javascript, weirdjs, webdev
---

What?! You called JavaScript Weird? Come on dude, I have using it for years, it is the **best** language I have ever met.

![What?!](https://media3.giphy.com/media/VeB9ieebylsaN5Jw8p/giphy.gif?cid=790b76115d32e3a27961654a73194541&rid=giphy.gif)

Let's have a coffee and see if we can ask some of these questions in our next interview, hehe. 

Here we go:

```javascript
> 0.1 + 0.2
0.30000000000000004
```

```javascript
> 1 + “23” - 10
“113”
```

```javascript
> null == undefined
true

> NaN == NaN
false
```

```javascript
> typeof null
"object"

> typeof NaN
"number"
```

```javascript
> ['1', '7', '11'].map(parseInt)
(3) [1, NaN, 3]
```

```javascript
> function foo() {
    return 
    {
      foo: 'bar'
    }
  }
foo()
< undefined

> function bar() {
  return {
    foo: 'bar'
  }
}
bar()
> {foo: "bar"}
```

```javascript
> [] + []
""

> {} + {}
"[object Object][object Object]"

> [] + {}
"[object Object]"

> {} + []
0

> +!+[]
1
```

```javascript
3 > 2
true

3 > 2 > 1
false
```

```javascript
> function Test() {
}()
Uncaught SyntaxError: Unexpected token )

> var test = function() {}
undefined
```

![OMG JS](https://media3.giphy.com/media/V0IdVIIW1y5d6/giphy.gif?cid=790b76115d32e09a59426e437366085e&rid=giphy.gif)


## References:
https://blog.mgechev.com/2013/02/22/javascript-the-weird-parts

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators

https://wtfjs.com/
[MIT] Personal management system
Tags: webdev, showdev, php
Published: 2019-07-20 09:09:26

<p align="center">
<img src="https://github.com/Volmarg/personal-management-system/blob/beta1.0/public/assets/images/logo/smaller.png?raw=true" width="150px;" />
</p>
<p align="center">
<img src="https://github.com/Volmarg/personal-management-system/blob/beta1.0/github/bar.jpg?raw=true" />
</p>

Hello,

For the past few months I’ve been working on my personal tool which I’ve named *Personal Management System*, sounds familiar isn’t it? Content Management System, but no it’s not designed for any blogging or website management. 

Just like I’ve called it - it’s for personal usage only, for data that should not be available over internet and so on. 

I’ve created this app because I really wanted some central point for storing my contacts, personal notes, plans for visiting some places, some schedules, goals etc. Everything just in one place, not between few clouds or still on paper.

I really wanted something that I can control - that means being able to simply create any additional extensions for my usage. 

* You can find more information on my repository: https://github.com/Volmarg/personal-management-system
* Project is totally MIT, and demo version is accessible at: http://185.204.216.136:8000, with:
 * **Login**: admin
 * **Password**: admin
* Documentation can be found at: https://volmarg.github.io/

And run it on: Chrome (that’s the only browser that i support)

Feel free to use it and also feel free to leave any feedback, maybe You can even find some bugs (and since I’m using this tool some of them might be dangerous for me as well). 

Some features/changes are planned, but since I’m just working slowly on it alone and I prioritize some things above others then it won’t happen to soon.

<img src="https://github.com/Volmarg/personal-management-system/raw/beta1.0/github/preview2.png?raw=true" />

<img src="https://github.com/Volmarg/personal-management-system/raw/beta1.0/github/preview3.png?raw=true" />
What's your favorite programming/hacking movie/show?
Tags: watercooler, offtopic, movies
Published: 2019-07-20 08:35:16

---
title: What's your favorite programming/hacking movie/show?
published: true
description: 
tags: watercooler, offtopic, movies
---

I was actually thinking about making a post about best hacking/programming movie, and then I saw Ben post lol.

{% link https://dev.to/ben/what-s-your-most-re-watchable-movie-4fmp %}

For me, I have to say Die Hard 4, and Mr. Robot for tv show.