teleren/devto huggingface dataset:
The Challenges I Face While Working Remotely And How I Am Overcoming Them
Tags: andela, adc
Published: 2020-01-30 13:49:25

During the course of my career as a web developer, not once have I faced a job that requires me to work with a team remotely, I have always worked close to my clients and the closest I got to remote work was by phone calls and text messaging. However when I got into Andela rollup program, things took a different angle for me, because I never really worked in remote teams before, and in the rollup, almost everything seems to be carried out remotely.

In this post, I’ll take you through the challenges I faced while working remotely during the rollup program and solutions you have come up with so far..

Having no experience in this field, I faced some challenges at first but as I continue to work remotely with my team, I’m getting better everyday. That being said, let me work you through my challenges working remotely so far.

## The Challenges

- **Lack of a proper workspace**

- **Limited access to quality internet connectivity**
- **Doing things other than writing code**: As a software developer, I’m used to just writing and deploying code in the cloud without going through all the testing and documenting everything you do. In the rollup I spend most of the time writing tests, that is new for me and also challenging.

- **Working in a team**: Spending too long working alone, taking responsibility for everything I do and making decisions without consulting anyone else made me feel like I had to do everything on my own, that changed in the rollup when I started working with people which is also new for me.

## Overcoming the challenges

- **Doing things other than writing code**: Even though this takes time and a lot of effort, I have come to understand the beauty of it and got used to it. One of the benefits of this is writing quality code that anyone can review and understand fast without consulting me the person who wrote the code.

- **Working in a team**: One of the benefits of working in a team I have experienced so far is how fast one can get help from teammates when they need it. I got used to working with other people very fast thanks to my very supporting team.

As for a proper workspace and limited access to quality internet connection, unfortunately this is still an issue for me.
An alternative RubyGems search bar based on an opensource search engine
Tags: opensource, search, webdev, ruby
Published: 2020-01-30 13:37:13


As a Rails and Ruby lover, I often search for the gem that will perfectly cover my use case. When I need to solve a problem I'm having, I want to choose the right one, the most suitable solution.

Ruby gems are extensive libraries created inside the Ruby community. The best place to find a ready solution for any task is the website rubygems.org, a public repository of gems that can be searched using the search box on the home page. RubyGems’ website is an efficient tool that facilitates the sharing and installation of packages. But although its search bar is very helpful, I decided to create an [alternative search bar](https://rubygems.meilisearch.com) more suited to our needs.


![Rubygems alternative search bar](https://dev-to-uploads.s3.amazonaws.com/i/1yge7zufzdia6jx3gilm.png)


I made this project with [MeiliSearch](https://github.com/meilisearch/MeiliSearch), an opensource alternative to Algolia.

The complete article is available [on our blog](https://blog.meilisearch.com/meilisearch-finds-rubygems/). I explain my approach in detail and how MeiliSearch works.

Hope you will enjoy my first article! 😁
Best Courses / Resources / Tutorials to Learn Typescript & Angular?
Tags: help, angular, typescript
Published: 2020-01-30 13:31:30

---
title: Best Courses / Resources / Tutorials to Learn Typescript & Angular?
published: true
tags: help, angular, typescript
---

Hi all -

I've began the journey of learning both Typescript and Angular, and would love to know of your favorite resources.

My goal is to take courses in each, then build a quick project to put the course info to test!

Here's specifically some of the resources I'm looking for:
- Courses
- Blogs / Articles
- Newsletters you follow
- Top Twitter handles to follow
- Best books


If you have any awesome resources, please let me know!
Where can I get the free source code for an Uber clone app?

Tags: flutter, uberclone, uberclonescript, uberlikeapp
Published: 2020-01-30 13:07:49

You may get free source code, but have you thought about the quality of your product? Free doesn’t mean it is quality.

I would suggest approaching a mobile development company that already has an on-demand Uber clone product.

[Wooberly](https://www.rentallscript.com/uber-clone/) is the perfect product for an on-demand solution. Why?

1. <b> A Cross-Platform Product</b> — Wooberly is developed with the [Flutter](https://flutter.dev/), which is a cross-platform development tool created by Google. You can run our product in iOS, and Android where the code is written only once.

2. <b> A perfect solution to develop MVP</b> — Wooberly is built having the prerequisites features to launch the MVP product of your marketplace. This helps in knowing your first-hand customers better and collect valuable feedback to develop your platform further.

3. <b>Clean code</b> — Our Uber clone script comes up with a clean code that makes the process more simple and direct. It also helps for easier maintenance and testing becomes easier.

4. <b>Simple and Striking UI Design </b> — The UI design is simple, takes an easy learning process for customers to use the application. The platform is also designed to engage the audience to stay for more hours.

As the Uber clone App revolves around 3 users — Admin, Drivers, and Riders (customers), let’s look at the features of the driver, and rider.

<b>Main features in Driver App</b>

1. Vehicle details — Vehicle and a copy of the original documents of the vehicle.
2. Document verification — Scanned documents of the vehicle.
3. Payout method — Cash and stripe payment is present
Currency and language — Integration of multi-currency and five languages.
4. Trips — Having two sections — upcoming trips and completed.
5. Privacy mode of earned details — Hiding earned pricing to provide security.
6. Driver’s availability — Driver can switch back to offline if he doesn’t want to take a ride.
7. In-call option — Driver can call the rider to know their exact location.

<b>Main features in Rider App</b>

1. Multiple vehicle options — auto/micro
2. Fare breakdown — based on km, durations
3. Live tracking — the rider can monitor their ride
4. Payout options — cash and Stripe payment
5. Multiple currencies and language options — select according to their wish
6. Track ride history — upcoming/past trips
7. Fare estimation — calculate their ride fare
8. Incall options — contact driver regarding trip details
9. Ratings and reviews — customers can rate their drivers

Please try our iOS and Android apps for both Rider and Driver. 

Visit: [Wooberly - Uber clone](https://www.rentallscript.com/uber-clone/)
What are some good books for a front end dev who wants to explore UI Design?
Tags: discuss, design, ux, books
Published: 2020-01-30 13:06:10

I've always worked with a designer handing off all the "aesthetics" part of my jobs, but had an interest on understanding better stuff like Gestalt, UI composition and such.

My focus was always performance and getting from point A to point B, and I never had problem recreating all the crazy stuff our designer made.

Which books you recommend on getting those concepts, so I can also help on the creative process of drafting an layout and such? Every time I try to apply the concepts I read about on my own, it sounds kinda "industrialized" so I'm looking forward some reading material
A production-ready database queue diver for Laravel
Tags: laravel
Published: 2020-01-30 12:26:46

The database queue driver was not recommended to run in production environments due to the problem of deadlocks with Relational database. Let's see how a deadlock happens:

A worker puts a lock on a job to process it.

- Another worker finds the same job locked and it waits for the lock to be released.
- The first worker is done with the job and wants to delete it, so it requests another lock.
- Now we have a deadlock, multiple transactions waiting for each other to release the same locks.

MySQL 8.0.1 and Postgres 9.5 allows skipping a locked record and ignore it. This allowed us to prevents workers from fighting over the same job and thus cause a deadlock.

Starting the next Laravel release, you can use the queue database driver even if your environment is under heavy load. I've tested the changes processing 516,783 jobs by 50 workers and it resulted no deadlocks.

The database driver is easy to setup since you don't need to worry about configuring and maintaining another tool "redis", it also opens the door for complex custom rules like funneling jobs per tenant or ensuring groups of jobs run in a certain order. In addition to this, you can easily configure database backups to ensure you don't lose the jobs in store in case the server crashed.

However, you should know that the database queue driver is not the best driver performance-wise, but it's still pretty efficient as the test results shared above implicate.

If you run MySQL >=8.0.1 or Postgres >=9.5, you don't need to change anything in your app. Just configure the database connection, run php artisan queue:table and php artisan migrate, and set the QUEUE_CONNECTION to database in your .env file.
Daily Developer Jokes - Thursday, Jan 30, 2020
Tags: jokes, dailydeveloperjokes
Published: 2020-01-30 13:00:08

---
title: "Daily Developer Jokes - Thursday, Jan 30, 2020"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
cover_image: "https://private.xtrp.io/projects/DailyDeveloperJokes/thumbnail_generator/?date=Thursday%2C%20Jan%2030%2C%202020"
published: true
tags: #jokes, #dailydeveloperjokes
---

Generated by Daily Developer Jokes, a project by [Fred Adams](https://xtrp.io/) ([@xtrp](https://dev.to/xtrp) on DEV)

___Read about Daily Developer Jokes on [this blog post](https://xtrp.io/blog/2020/01/12/daily-jokes-bot-release/), and check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/).___
### Today's Joke is...
![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258ab6087f.png)

---
*Have a joke idea for a future post? Email ___[xtrp@xtrp.io](mailto:xtrp@xtrp.io)___ with your suggestions!*

*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:___ Where did the parallel function wash its hands?

___A:___ Async
 -->
How to Gain Clients’ Trust
Tags: productivity, timetracking
Published: 2020-01-30 12:58:44


People do not wish to invest their time into someone they do not trust. Gaining trust is essential for achieving your business goals. Dive in a read on tactics that will help you build trustworthy relations with your clients. 

Read full article https://blog.tmetric.com/how-to-gain-clients-trust/
the inevitable loss of system level knowledge
Tags: knowledge
Published: 2020-01-30 12:55:37

---
title: the inevitable loss of system level knowledge
published: true
description: 
tags: knowledge
---

I was scanning for interesting stories today and saw one on Apache Guacamole. The story is about the release of a new version of the software.

But two of the HN comments caught my eye.

> Agreed, the configuration is not pleasant. I also tried ....

Followed by this advice

> My recommendation: Use Docker. No need to deal with all the gritty details. If needed, reverse-proxy it.

And there it is. As Docker becomes used more and more will this lead to knowledge loss on how things are setup and work? I think it will.

I have downloaded/built/setup many packages and programs. And with all those hours and experience it made me a better programmer/technologist/nerd.

The gritty details matter. A lot.

I have worked with JavaScript programmers who barely understood their code runs on computers. It will be sad when this same transition happens to back end developers.

Go check the configuration on the Apache box will be a foreign concept with enough time. It will become, this is not working go fill out a PR and see if the developers can make a new docker file.

In some ways this is not bad. You end up with configuration being locked down in text files. Infrastructure as code.

Maybe back end developers will end up specializing into groups who can work at a system level vs those who only work with docker containers.

I am a back end developer... no wait I am system level back end developer.

:)
:target Pseudo Selector And Performance
Tags: css, javascript, webdev, discuss
Published: 2020-01-30 12:54:51

To add an explanation in short on `:target`, it applies the style to the element that has an id which is same as `location.hash`

As this post intends to discuss the usage, pros & cons of `:target` selector, an example to explain the same in-depth is not considered. 

Say, there is a need for a slider or a tab, we usually apply the styles to all the slides or tabs. The slides or tabs that are not displayed, need not use the `Layout` resources of the browser. There is absolutely no necessity to apply the style to the content that is not displayed to the user. 

If the particular slide/tab CONTENTS(not the tab title) can be given an id and set the hash, all the styles that need to be applied can be written inside `:target`. 

*Yes, the additional styles have to be written to accommodate the changes that happen due to scroll to the element that happens after setting the hash.*

###Pros - A relevant usage
It's good to consider this when the slide/tab is occupying most space on the screen because there's no scroll that will happen.

Here is a github [link](https://github.com/svaani/target-pseudo-selector/blob/master/try2.html) for a similar scenario that was tried. The only style that is applied to target in the example is to change the color. But as the relevant styles that are needed to an app are applied, this will be more beneficial. 

###Cons - Not a successful usage
The same was tried to apply the style only to the content that is displayed on a scrollable content. Here is github [link](https://github.com/svaani/target-pseudo-selector/blob/master/try.html)

This is a failed scenario as there will be a flickering that happens on the screen as the user scrolls. Speaking about performance, to set a new id on scroll should not be expensive as it is done not on every scroll event but in batches. Also, for the browser engine to erase the styles that were applied to the sections which the user has already passed, it shouldn't cause a lot of `Layout` cost. 


```html
<div class="block-custom">hello</div>
<div class="block-custom">hello2</div>
<div class="block-custom">hello3</div>
```

```javascript
var num = 0;
window.location.hash = "#focused_0";
window.onscroll = function(x,y){
//- only chrome for now
  var range = document.caretRangeFromPoint(0,10); // screen coordinates of upper-left corner of a scolled area (in this case screen itself) 
  var element = range.startContainer.parentElement; // this an upper onscreen element
  console.log(range);
  num++;
  if(Number(window.location.hash.split("_")[1])+10 <num){
    element.setAttribute("id", "focused_"+num);
    //pushState can also be used
    window.location.hash = "#focused_"+num;
  }
  
}

```

```css
.block-custom:target {
   background-color:red;
}
```


If the flickering can be avoided, this can be a good benefit to the long scrolling content such as Facebook feed or similar.

*Thanks for reading. Please help me with an update, if any alternatives are known without a flicker to apply style only to the content that is displayed on the screen(scrollable).*
I'm on a Podcast!
Tags: podcast, career, techtalks
Published: 2020-01-30 12:50:48

Patricia Shattock of [Ronald James Group](https://www.linkedin.com/company/ronald-james-group/) -- a leading digitech talent agency based out of Newcastle, England -- recently interviewed me for the first episode of their new podcast, ["Tech Talks"](https://www.buzzsprout.com/834958).

Check out [the full episode here](https://www.buzzsprout.com/834958/2607547-from-physics-to-bio-pharmaceuticals-andrew-s-tech-journey) (also [on Spotify](https://open.spotify.com/show/36beQoxjjN2VfeMmJzTysQ)) to learn about my coding journey, get my advice for carving a niche for yourself at work, and hear me equivocate about the Mac vs. Windows debate.
Sorting in Golang
Tags: go, beginners
Published: 2020-01-30 12:39:17

Sorting numbers in <a href="https://golang.org/">Golang</a> is nothing like C. If you don't know about the C language, it makes you write a sorting function yourself. It is much easier in Go. There's a package named sort.

This package has several methods to sort:

* sort.Ints
* sort.Float64s
* sort.Strings

Use the method you need for the datatype. 

Before trying this, make sure you can <a href="https://golangr.com/hello-world/">run Go programs</a>.

## Sort ints

This example shows you how to use the sort method for integers. Values are sorted from low to high.

```go
package main

import (
        "fmt"
        "sort"
)

func main() {
        s := []int{5, 6, 3, 2, 1, 4} // unsorted
        sort.Ints(s)
        fmt.Println(s)
}
```

Save it and run:

```go
$ go run ints.go 
[1 2 3 4 5 6]
```

## Sort floats

If you have a bunch of floating points instead of integers, you can't use the Ints() method. But the same idea can be used for floats. You use another method Float64s().

```go
package main

import (
	"fmt"
	"sort"
)

func main() {
	s := []float64{7.2, 3.3, 10.7, 13.8, 2.6} // unsorted
	sort.Float64s(s)
	fmt.Println(s)
}
```

Save and run:

```go
$ go run floats.go
[2.6 3.3 7.2 10.7 13.8]
```

**Related links:**
* <a href="https://golang.org/pkg/sort/">The sort package</a>
* <a href="https://golangr.com/">Golang tutorial</a>
Why Choose SaaS Apps For Your Business?
Tags: saas, html, css
Published: 2020-01-30 12:31:26

SaaS business models have continued gaining traction around the world. Companies regardless of their sizes have started embracing SaaS. Computer Economics report says that 60 percent of all companies have adopted some percentage of SaaS application development into their business. 36 percent have plans for increasing their investments in the coming months.
Still, wondering why you should choose the SaaS app for your business? These are some reasons that will change your mind:

<h4>1. More flexibility</h4>
Every business owner needs to have room for flexibility. Your business must have the ability to adjust as per the external factors.
SaaS apps let you choose a flexible and scalable delivery model. It’s easier to add new users and integrate the app with other systems.

<h4>2. It’s Easy to Use</h4>
SaaS has made the selection and deployment of a business app easier than ever. Cloud apps like these are faster to deploy. There are no installation and administration efforts required.
Having the ability to deploy and develop fast will give you a competitive edge. It will also bring business benefits.

<h4>3. Lower Cost</h4>
SaaS doesn’t cost much money. You are using a shared environment where the hardware and software license costs are low.
Building a SaaS app could increase your customer base. Your maintenance cost will also reduce. The SaaS provider owns the environment, which is split between your customers.

<h4>4. New Upgrades</h4>
The price and effort associated with upgrading an app and launching a new release are lower as compared to the traditional model, which forces a user to buy an upgraded package or pay for using specialized services.

<h4>5. Performance and Time Management</h4> 
Deploying a cloud solution takes less time as compared to an on-premises system. You can deploy it across a variety of regions and this could save the cost associated with rollouts. No additional hardware would be required. This means you won’t be wasting time in setting up an IT infrastructure across various sites.

<h4>6. Connectability</h4>
A great thing about <a href="https://origamistudios.us/saas-application-development/">SaaS application development</a> is that you can customize it and connect it to any system. The SaaS developer can take all his time and design front APIs that will be visible to third-party developers. They can use them for extending the capability of the platform. This can be done by integrating the platform with other systems your company uses.
With all these benefits, you wouldn’t want to ignore SaaS. It can solve critical business bottlenecks and meet the needs of your clients.
Learn Git, Github, and Opensource – Course
Tags: opensource, github, git
Published: 2020-01-30 12:30:57

It's more of a beginner course on why git and GitHub, building a personal project with git and GitHub then introduction to open source with a practical approach of contributing to open source projects. It will be helpful for new learners who are just getting started.


This course will introduce you to git with some of its most important commands everyone should know.

In this course, we will use the command-line tool to leverage the full potentials of git as it is a good way to use git.

We will be more practical in explaining the basic concept and commands so make sure you ride along.

### What you will learn

At the end of this course, you will understand 

1. Why Git and GitHub are necessary for the development of software.
2. How to use Git and GitHub for your project. 
3. What open-source software is
4. how you can contribute to some Open Source projects.

#### Lesson 1

In this lesson, you will be introduced to Git, the benefits of using Git, important Git commands and how to install Git.

[Read Lesson 1](https://codesource.io/introduction-to-git/)

#### Lesson 2

In this lesson, you will be able to configure Git on your machine, you will know what a repository is, what GitHub is, how to make changes, add changes and also undo changes in a repository.

[Read Lesson 2](https://codesource.io/getting-started-with-git-on-your-machine/)

#### Lesson 3
In this lesson, you will be introduced to branching in Git and why branching is necessary for Git as I will walk you through a practice project.

[Read Lesson 3](https://codesource.io/understanding-branching-in-git/)

#### Lesson 4

In this lesson, you will learn how to synchronize a local repository with GitHub, how to invite people to your repository and how to add multiple people to the same repository.

[Read Lesson 4](https://codesource.io/how-to-synchronize-your-local-repository-with-github/)


#### Lesson 5

In this lesson, you will understand what open-source software is, what a fork is in GitHub, how to fork a repository and how to contribute to an open-source project. Finally, to solidify your understanding of this course, you will contribute to the Open Source project for the course.

[Read Lesson 5](https://codesource.io/understanding-opensource/)


##Conclusion

With all the knowledge gathered from each lesson in this course, your confidence level and knowledge in making contributions to any Open Source project will increase intensively. Also, remember this course will serve as a reference while contributing to open source projects in the future.