teleren/devto huggingface dataset:
E-commerce Mobile App Development in Market - AppIndia
Tags: appdevelopment, ecommerceapp, mobileappdevelopment
Published: 2019-07-04 10:08:17

Almost 4-5 years ago the digitization has ushered effectively in our lives. Earlier we were limited to the desktop and laptops but now the numbers of mobile users have increased more across the globe. A professional e-commerce android app development can boost your business now. In the time of smartphones and iPhones, we find hardly anyone now to spend daily hours on computers.


The reason behind is simple and clear i.e. handy and convenient. In fact, we also know this very well that how to ease mobile browsing is then computer browsing. By keeping in mind the importance and impacts of mobile the top e-commerce stores like Amazon and Flipkart have started introducing their mobile apps to boost their business revenues. For more details visit: https://is.gd/vtCaXN
PHP developer point of view of “The State of Developer Ecosystem 2019”
Tags: php, laravel, productivity
Published: 2019-07-04 09:47:19

[**The State of Developer Ecosystem 2019**](https://www.jetbrains.com/lp/devecosystem-2019/php/) is a report released from Jetbrains to investigate the habits of software developers across most known technologies.

I carefully read the report from my personally point of view as PHP developer. The report, as many others every year, show us just some statistics, it’s not the source of truth.

I firmly believe that PHP 7 opened the doors for PHP to drive more adoption in enterprise environments. Only one thing is missing: “Ecosystem”.

That’s why Laravel is experimenting a huge adoption in PHP world. Its ecosystem give the right foundation to build business critical application knowing that you will have available the right tools to grow, keeping your business safe.

## Adoption
PHP is used regularly from 30% of developers. I think it’s really really good. Building a career around PHP could be a really good idea, and it can be quite profitable since PHP is so wide spread.

## Developer Tools
Some indexes suggested me that PHP developers do not automate their work too much compared to developers in other technologies.

**34% of us use pure PHP than a template engine** like Twig, Blade, etc. is not so good. It means a lot of time lost in technical complications.

**Most PHP developers don’t use anything for profiling or measuring performance. The report says.**

Many of us deliver new code changes almost every day. If we’re waiting for users to report errors or bottlenecks, we’re effectively outsourcing bug discovery to users. **Users don’t reports bugs, they eventually just stop using your app**.

That's why applications that are critical for the health of your business simply can't be monitored manually. Manual monitoring process used by most developers today is costly, time-consuming, and leaves a huge margin for error.

The best IDE is PHPStorm. I’m one of millions of happy PHPstorm’s customers and I really believe that Jetbrains deserve this result.

## Good PHP 7 usage
A lot of developers have migrated from PHP 5.x versions to the newer 7.x ones. In a year, the share of PHP 5 has plummeted from 29% to only 14%.

As I say above PHP-7 provide the right foundation to support PHP adoption in more enterprise environments.

## Conclusion

Thanks to PHP-7, Laravel, Jetbrain itself, PHP developers can rethink to their business as “enterprise ready” but they need to understand that it’s not a technology problem. It’s more about mindset.

My product fits into this scenario to help PHP developers grow their business with the best strategy known: Create a meaningful experience for their customers!

***

### Thank you for all your support!
Homepage: [https://www.inspector.dev](https://www.inspector.dev)

Facebook: [https://www.facebook.com/inspector.realtime/](https://www.facebook.com/inspector.realtime/)

Twitter: [@inspector_rt](https://twitter.com/inspector_rt)

Contact me: [valerio@inspector.dev](https://www.inspector.dev)
A QA engineer walks into a bar
Tags: jokes, testing
Published: 2019-07-04 09:20:20

---
title: A QA engineer walks into a bar
published: true
description: 
tags: jokes, testing
---

A QA engineer walks into a bar

- orders a beer
- orders 2 beers
- orders 0 beers
- orders 1e30 beers
- orders -1 beers
- orders 2.75 beers
- orders abCq053c666012Qz@_05
- orders "\x00"
- orders a gorilla
VS Code and WSL => Godmode
Tags: vscode, wsl
Published: 2019-07-04 09:01:37

Going from Linux to Windows is not easy. When it came to working, nothing could beat the power of the commandline and my legendary vim config (as i so fitted has named it).

## Why Windows?
I recently bought me a Dell XPS 15. Really nice computer. However it seems that Dell has implemented some nice features, which to my knowledge only works on a Windows distribution. Sucks when i spent so much time mastering the vim+zsf. 

The linux subsystem for windows brought light to my weary bones though, and i will teach you how you can harness the true power of Windows (Which is a linux VM).

To harness the power of the linux gods you will have to finish the tasks of three.

1. Activate The linux subsystem for windows.
1. Install a linux distro from the windows store(i use ubuntu)
1. Install the WSL extension for VSCode.

## Activate the linux subsystem
This is done by searching for "Turn windows features on or off" and checking the linux subsystem option. 
![](https://thepracticaldev.s3.amazonaws.com/i/antjxp0vdidjw605i91a.png).

## Install the linux
Simple, get it, run it, love it.
![](https://thepracticaldev.s3.amazonaws.com/i/4o2najis0z78kis8rcpq.png).

### Notes on the linux distro
this will come with git preinstalled, but i have compiled a set of nice to have features which you can copy paste to your WSL terminal to get to the godlike level of linux terminal control.

* Oh my ZSH _[link](https://github.com/robbyrussell/oh-my-zsh)_
```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
```
* Node version manager _[link](https://github.com/nvm-sh/nvm)_
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
```
_*NOTE:*_ if you installed oh my zsh first, it will add the NVM to the path.

* Yarn package manager _[link](https://yarnpkg.com/lang/en/docs/install/#debian-stable)_
```bash
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install --no-install-recommends yarn
```
We will use the --no-install-recommends since we use NVM as our node host. Otherwise delete the flag.

* Node and NPM _[link](https://nodejs.org/en/)_
```bash
nvm install <version number>
```

## The Visual Studio code part

Now this is where the magic happends, in VS Code install the plugin WSL
![](https://thepracticaldev.s3.amazonaws.com/i/cl74tj95b5wpbv0vebl2.png).

Now Simple ctrl-shift-p and search WSL and click open vscode in wsl.

VS code will then start a server in WSL and keep VSCode as a frontend.


If you open a terminal in the new vs code window it will open in the linux bash, and you are now free to keep bash or install zsh and be a linux god on Windows.


This should cover all the basic of getting to use WSL in Windows.
If you like WSL in windows with VS code, leave a comment below or show some love!
Youtube Video: New Windows Terminal Review and Customization
Tags: terminal, commandline, frontend, backend
Published: 2019-07-04 08:30:55

---
title:  Youtube Video: New Windows Terminal Review and Customization
published: true
description: A new command-line from Microsoft to make your life easy
tags: terminal, command line, frontend, backend
---

Command-line is a must needed tool for any developer. Nowadays we need multiple command line tabs for different CLIs. Till now the default windows command prompt was not supporting multiple tabs but now Microsoft has released a brand new windows terminal as a preview. It has got cool features. So in this youtube video, I have explained the following things.



From where you get this brand New Windows Terminal
- From where you can get this video
- What are the features available in New Windows Terminal
- How we can customize the New Windows Terminal

 Hope you like this video. 

{% youtube JUaNyipNWY4%}

If you like this video and wanted to see a similar kind of video then, please subscribe to my youtube channel at - http://bit.ly/codewithjv
Programming is tribal, find your people
Tags: beginners, programming, rust, c
Published: 2019-07-04 08:26:24

---
title: Programming is tribal, find your people
published: true
description: Once you've begun to program for fun, you should work with people you admire  
cover_image: https://images.unsplash.com/photo-1476611317561-60117649dd94?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&w=900&q=60
tags: beginners, programming, rust, c++
---

I used to think deciding on a programming language was a technical decision. It's not. It's a social one.

Some communities are hostile to new ideas. Others are so welcoming of new ideas that it scares traditionalists away. Some communities are sponsored by corporations, others are staunchly independent. Over time, communities form of like-minded people.

Once you've begun programming for fun, you should spend some time thinking about the kind of community you want to associate with before you are too committed. 


## Examples

What do I mean? Well, here are some (probably biased and unfair) examples:


**Rust**

Rust is an incredible technology. But it's also a social experiment in creating an ecosystem that is supportive and inclusive. That is embodied most prominently in its slogan that starts with the phrase "Empowering everyone".


**C++**

Although it's been around since the early 1990s, C++ events adopted a [Code of Conduct](https://github.com/brycelelbach/cpp_code_of_conduct) in 2017. In my experience, C++ programmers can tend to think of behave with a more serious, more industrial tone. I don't expect to see a unicorn emoji at a C++ conference.


**Languages you've never heard of**

If you decide to participate in a smaller, niche community, expect to find people who are wildly passionate, but also fairly unorthodox. By definition, they've decided that the mainstream isn't. There are thousands of language communities out there.

I am particularly fond of a language called [Dylan](https://opendylan.org). It seems like it was cursed by destiny. The people there are incredibly talented and welcoming. There's just not that many of them. 



## What language to choose?

Understand who your people are. You should find a language with syntax and semantics you don't hate, then lurk around until you find the community that clicks for you. For example, if you're choosing between R & Python for data science work, do you want to be surrounded by other statisticians (pick R) or do you want to work with people who are exposed to many ideas (pick Python)?

Some things to look for in a community include:

- a welcoming front door - if you're a junior programmer, the website should be inviting of newcomers
- alignment with your values - some technical communities, such as Rust, are explicitly value-driven. Many others are more neutral.
- a friendly communication style - look through the mailing list archive and lurk in the chat channel for get a feel for how people communicate. If you're unsure, create a fake account and ask a stupid newbie question. Let the tone of the responses guide your decisions.  




----

Cover image by [Alejandro Alvarez/Unsplash](href="https://unsplash.com/@a2foto")
Standard and Streaming Response Comparison with Aiohttp Library
Tags: python, stream, streaming, aiohttp
Published: 2019-07-04 08:23:38

---
title: Standard and Streaming Response Comparison with Aiohttp Library
published: true
description: Get chunk data from large data sets with stream.
tags: python, stream, streaming, aiohttp
---

Github Repository: [Streaming_API](https://github.com/tolgahanuzun/Streaming_API)

In the project I developed, we return a great response message to the API calls of the customers. It takes a long time to process large data. At this stage, the memory swells and the server CPU increases. To prevent this, we started using streaming method.

I've done an analysis to explain what this process has brought us. I have compared a normal response to a call request and streamed a call request.

## Working area

- Python3.6
- Aiohttp
- PostgreSql (SQLAlchemy)
- 500000 rows of data set

(Referenced from the github readme file.)
## How to install

```bash
git clone git@github.com:tolgahanuzun/Streaming_API.git
virtualenv -p python3 venv
source venv/bin/activate
cd Streaming_API
pip install -r requirement.txt
```

`vim settings.py` and you need to edit the settings file yourself.

# How to run

#### Serve
```sh
python run.py
```


#### Client
- JWT needs it. You can remove it if you want.

```sh
curl -H 'Accept: text/plain' -H "Authorization: JWT eyJ0eX....."  -v http://0.0.0.0:8080/standard
```


```sh
curl -H 'Accept: text/plain' -H "Authorization: JWT eyJ0eX....."  -v http://0.0.0.0:8080/chunked
```

# Process analysis

Chunked data comes to you piece by piece.
In the standard, the data comes at once.
Incoming data sample.

![](https://raw.githubusercontent.com/tolgahanuzun/Streaming_API/master/img/response_data.png)



## Standard Response

All data is captured, processed and sent at one time. Blocks each other. In this example, it corresponds to 500000 row.


- Up to 0.16 seconds no data flow occurs. The data comes after that second.

![](https://raw.githubusercontent.com/tolgahanuzun/Streaming_API/master/img/standard_response.png)


## Streaming Response

The dataset size is 500000 rows. Data from the database is taken as 1000 row. Each group of data is processed and streamed without waiting.

- Up to 0.04 seconds no data flow occurs. The data comes after that second.

- Look out! The Streaming API finished before the Standard API started sending data. It didn't block itself because it sent and received data in pieces.

![](https://raw.githubusercontent.com/tolgahanuzun/Streaming_API/master/img/response_data.png)
How to Unit Test LiveData and ViewModel
Tags: android, kotlin, testing, programming
Published: 2019-07-04 03:27:35

---
title: How to Unit Test LiveData and ViewModel
published: true
description: 
tags: 
---

*Originally published [**on my blog**](https://www.arthlimchiu.com/2019/07/03/how-to-unit-test-live-data-and-view-model.html)*.

[Source code](https://github.com/arthlimchiu/unit-test-live-data)

### Import dependencies

```
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
testImplementation 'androidx.arch.core:core-testing:2.0.1'
testImplementation 'org.mockito:mockito-core:2.28.2'
```

*Check the [official Android documentation](https://developer.android.com/jetpack/androidx/versions) for the latest version of these Android packages.*

*For Mockito, check out their [Github repository](https://github.com/mockito/mockito) for the latest version.*

### Create a simple User class

```
data class User(val id: Int)
```

### Create a ViewModel

```
class MainViewModel : ViewModel() {

    private val _user = MutableLiveData<User>()

    val user: LiveData<User>
        get() = _user

    fun fetchUser(id: Int) {
        val user = User(id)

        _user.value = user
    }
}
```

### Create a helper function to mock classes with types (generics)

Create a kotlin file - MockitoUtils.kt inside your test folder.

```
inline fun <reified T> mock(): T = Mockito.mock(T::class.java)
```

### Creating the unit test

```
class MainViewModelTest {

    @get:Rule
    val rule = InstantTaskExecutorRule()

    private lateinit var viewModel: MainViewModel

    private val observer: Observer<User> = mock()

    @Before
    fun before() {
        viewModel = MainViewModel()
        viewModel.user.observeForever(observer)
    }

    @Test
    fun fetchUser_ShouldReturnUser() {
        val expectedUser = User(1)

        viewModel.fetchUser(expectedUser.id)

        val captor = ArgumentCaptor.forClass(User::class.java)
        captor.run {
            verify(observer, times(1)).onChanged(capture())
            assertEquals(expectedUser, value)
        }
    }
}
```
___

```
@get:Rule
val rule = InstantTaskExecutorRule()
```

What this rule basically does is allow us to run LiveData synchronously. This rule is from the core-testing package that was imported earlier.

```
private val observer: Observer<User> = mock()
```

The helper function that we made will help us be able to mock our Observer. Try mocking it the standard way and you'll see what I mean - `mock(Observer<User>::class.java)`.

```
val captor = ArgumentCaptor.forClass(User::class.java)
captor.run {
    verify(observer, times(1)).onChanged(capture())
    assertEquals(expectedUser, value)
}
```

**ArgumentCaptor** does what the class name is called - capture argument(s). We `capture()` the argument when the `onChanged(...)` method of our Observer is called.

Adding `verify(observer, times(1)).onChanged(capture())` allows you to capture instances where the LiveData is called multiple times when you expect it to be called only once.

Assert that the **expectedUser** that we've created is equal to the emitted user of our LiveData.

Lastly, run the goddamn test.
What do you guys use for formatting strings in javascript?
Published: 2019-07-04 07:28:41

Hi there boys and girls!

How do you approach string formatting in javascript? Do you use any library or implement the formating yourselves?

I'm developing a [loggin'](https://github.com/loggin-js/loggin-js) library which relies quite a bit on formatting so i'm really interested in looking for alternatives and what solutions people have come with.

I've been using this library [strif](https://github.com/nombrekeff/strif) I made for my logging library, and it really does the job.
Is using a CDN or hosting your own Fonts a better idea?
Tags: webdev, productivity, discuss
Published: 2019-07-04 07:01:48

Lately, I've come across many articles which suggest that you host your own static assets (especially fonts and css) instead of using a worldwide CDN like [CDNJS](http://cdnjs.com). The argument they cite is that your own site will be much faster than CDN, so the assets will load faster.

But my argument is that if I use a popular library like jquery or bootstrap, chances are that they've already been downloaded to the user's local machine through a CDN (because dozens of other websites the user may have visited use CDNs). So, the network cost is zero! But if I host a jquery.min.js or bootstrap.min.css specifically on my server, it'll be an additional toll on network resources, isn't it?

So, I think that hosting your own asset is an anti-pattern, what do you think?
CSV Upload performance query
Tags: csvuploadperformancequery
Published: 2019-07-04 06:57:58

I am reading the CSV data using react-papaparse. I have tried two way to read the data and store in an array.

 1.   this.state = ({csvData: []}) in constructor after than add to state

this.setState({ csvData: [...this.state.csvData, data.data], isLoading: true, isRender: false } 

2.   this._data = []; in constructor 
       this._data.push(data.data); and after completion 
      this.setState({ csvData: this._data....

performance wise second one much better (First took 22 seconds and second took 4 seconds to read the 37000 records)

My query is, can I use the second approach is it recommended way in react.
Hover States with React Hooks
Tags: javascript, react, tutorial, video
Published: 2019-07-04 06:51:38

{% youtube ToKsxjN6OgQ %}

Third video time, I might keep this daily schedule until university starts back next semester!

This is definitely a series now, it has its own repo and everything:

- Code for all episodes: [Source code contents page](https://github.com/spaciecat/react-hooks-series)
- Code for this episode: [useHover.js](https://github.com/spaciecat/react-hooks-series/blob/master/src/useHover.js)

In this tutorial, we'll be creating a `useHover` hook, that allows our components to know about the hover state of any element that we attach a `ref` to! 

As always, any feedback is highly appreciated (please let me know if there's anything you think I could explain better), thanks for reading and/or watching!
So Where Did You Two Meet?
Tags: jokes
Published: 2019-07-04 06:05:38

![Where did you two meet?](https://miro.medium.com/max/480/1*NSVfi_R4_UrJ12PRJ6Rg5Q.jpeg)

*Courtesy: [Hackernoon.com](https://hackernoon.com/30-jokes-only-programmers-will-get-a901e1cea549)*
Create a Vue Dapp with Drizzle (video tutorial)
Tags: ethereum, dapp, vue, drizzle
Published: 2019-07-04 04:37:11

---
title: Create a Vue Dapp with Drizzle (video tutorial)
published: true
description: 
tags: ethereum, dapp, vue, drizzle
---

Create a Vue Dapp with Drizzle (video tutorial)

{% youtube XaVEZ1ucxac %}
I created a web service to find the awesome repositories on GitHub.
Tags: webdev, github
Published: 2019-07-04 02:35:36

---
title: I created a web service to find the awesome repositories on GitHub.
published: true
description: About a web service that helps to find the awesome repositories on GitHub.
cover_image: https://thepracticaldev.s3.amazonaws.com/i/wvvab4c25bc46junbgsx.png
tags: #webdev #github
---

## Intro

This is the first post in English, so please correct me if I'm wrong.

I'm going to write about a web service that I have launched.

https://awesomerepository.com/

![](https://thepracticaldev.s3.amazonaws.com/i/wvvab4c25bc46junbgsx.png)

## What can I do with it?

It collects the number of the stars of the repositories on GitHub and shows the repositories sorted by the count of the increased stars that the repository has acquired since the last time.

You can find the repositories that are getting popular rapidly.

![](https://thepracticaldev.s3.amazonaws.com/i/997aczq5p8l8y52dtnsx.png)

## Why did I make it?

To gather the information, I read posts about the software that engineers have written. 

They introduce useful libraries in the posts.

When I read the posts and search the libraries, most of them are open to the public on GitHub.

I didn't know the repository until that time, but the repository has already acquired stars over 10K.

After I have experienced the same thing several times, I came to think that I'd like to find those awesome repositories that get popular or getting popular quickly.

It is the reason why I made it.

Thank you for reading this post.
Git and GitHub Explained
Tags: beginners, github, git
Published: 2019-07-04 02:31:40



 Hey guys, just want to share a great tutorial I found on YouTube at [The Coding Train](https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw). Daniel Shiffman is an excellent instructor and his video, [Git and GitHub for Poets](https://www.youtube.com/watch?v=BCQHnlnPusY) answers "what is Git" and "what is GitHub" and "how do I use them," through writing a poem about Rainbows. Yay! I finally fully understand how to use this powerful tool! Thanks, Daniel!


{% user shiffman %}
What project have you worked on, that years later, you are still proud of?
Tags: discuss, development, career
Published: 2019-07-04 01:50:38

---
title: What project have you worked on, that years later, you are still proud of?
published: true
description: 
tags: discuss, development, career
---

I asked a question on Twitter during yesterday's #DevDiscuss about coming across code that you wonder why you wrote it that way.

{% twitter 1146225794034753536 %}

Now my question for the community, what is a project you've worked on, that years later, you are still proud of?

It could be a small tidy function that does its job perfectly, it could be a super large project where even if the code wasn't great, you still did an amazing job for your level of experience?
Quantum KNN Algorithm
Tags: quantumcomputing, machinelearning
Published: 2019-07-04 00:54:40

Another #machinelearning + #quantumcomputing video :D This was a tricky one! It made me sweat a bit! xD  

Part 1 -> https://youtu.be/mmHa-7btLho 
Part 2 -> https://youtu.be/RWRB1vCAV1k  

Enjoy!  

If you guys wants me to break down any concrete algorithm let me know ;)