teleren/devto huggingface dataset:
Twitter and his search
Tags: webdev, ux, twitter
Published: 2019-08-22 13:30:48

Recently, Twitter has changed its search icon to hashtag in the web version. This was not the best solution.
- Changing the icon to another one is always difficult — you have to get used to it, especially if the changes take place in a social network with a billion users.
- Search in all interfaces has long time been associated with a magnifying glass icon, so changing the icon to something else for the sake of individualism is not cool.

![Twitter on mobile](https://thepracticaldev.s3.amazonaws.com/i/v6btiqo179w2hk5fepwu.jpg)

But Twitter had another reason. Initially, the homepage was always arranged in chronological order and showed tweets only from those to whom the user is subscribed. Then Twitter decided to use the algorithms, but users didn't like it and they started to switch the feed back to the chronological order.

Twitter decided to create a second feed and put it on the search menu, as it's now in Instagram. So there is no longer a search menu, and the search string became part of the new feed, that' s why Twitter decided to change the icon. But users still associate this menu not with hashtags or the second tape, and with the search, so the experiment failed.

But at the same time, Twitter still has a separate search menu on each page, so it looks logical only to choose: the tape of interest or the menu with the search — do not interfere.

![Twitter now](https://thepracticaldev.s3.amazonaws.com/i/p86bfo9j78wusw07zfcq.jpg)

Now they have done the following: on the wide screens, where there are icons with signatures, the search is signed by the word and marked with a hashtag icon, and on narrow screens, where there are no signatures, the icon changes to a magnifying glass. But between these two states there is an intermediate one, where there are no signatures, but the icon is marked with a hashtag — it is confusing.
Where in the world do you DEV?
Tags: discuss, watercooler, fun
Published: 2019-08-22 13:23:35

---
title: Where in the world do you DEV?
published: true
description: Show off where in the world you DEV from!
tags: discuss, watercooler, fun
---

**TAKE A PICTURE** with some of your DEV swag, or even just your laptop, then post it and tell us where the picture was taken! 

We know that DEV is a global community, so let's show off just how far-reaching it truly is.
Let's Get Social
Published: 2019-08-25 00:04:54

---
title: Let's Get Social
published: true
tags: 
canonical_url: https://effectivedev.com/lets-get-social/
---

Hey all! Effective Dev is now on Twitter as [@EffectiveDev](https://twitter.com/EffectiveDev)! Follow us for news and tips.

<!--kg-card-begin: embed-->

> Looking to set up a new project? Maybe you just want to get your project up to date? Check out tons of resources for almost any programming language, tools and concepts: [https://t.co/BmWRJO5HJ9](https://t.co/BmWRJO5HJ9)
> 
> — EffectiveDev (@EffectiveDev) [August 21, 2019](https://twitter.com/EffectiveDev/status/1164207598947749889?ref_src=twsrc%5Etfw)

<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><!--kg-card-end: embed-->
mail is finally working for me in beta 8
Published: 2019-08-22 12:57:32

A long saga of mail app for iOS 13, mostly working but with weird quirks especially related to marking read; and then in beta 7 stopped refreshing altogether. With beta 8 it refreshed instantly, and I tried all the action (mark read/unread, reply, forward) all instant!!!! I think I can finally go back to stock as my default app again
Need suggestions for my python repo

Published: 2019-08-22 12:49:09

greetings, i apologize if the formatting of this post is bad, i'm on my phone. so i just recently worked on this repo. i'm planning to put simple problems in this repo which are problems that are typically written long and inefficient by most people. the purpose of my repo is to prove that a problem can be solved without having to write a lot of codes.

for now, the repo only contains one solution to a problem: converting integers into words. usually people would think it's basic. and it is. people are gonna jump the gun and think that this can be solved with multiple ranged if statements, arrays, and repetitive code. but it can be done with just one loop and can pretty much do its job of converting upto 103003 and possibly until the maximum value of integer.

people suggested me problems like determining if a value is odd/even without using if statements and number system conversions. i'm collecting suggestions from everybody. anybody can be a collaborator in my repo.
Are your NPM scripts out of control?
Tags: webdev, npm, node, discuss
Published: 2019-08-22 12:30:13

---
title: Are your NPM scripts out of control?
published: true
description: When should you start moving logic out of package.json?
tags: webdev, npm, node, discuss
cover_image: https://res.cloudinary.com/ajonp/image/upload/w_1000,h_420/ajonp-ajonp-com/blog/NPM_Scripts.png
---

## Example

This works, but I have a feeling it could be WAY better! copy:deps is insanely long lol. 

[Script](https://github.com/AJONPLLC/ajonp-ajsbooks-nextjs/blob/64f9eea1b900a37cbb75a16a745f8ee2a0f8cd81/package.json#L37)


```json

"scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start",
    "export": "next export",
    "analyze": "cross-env BUNDLE_ANALYZE=both next build",
    "analyze:server": "cross-env BUNDLE_ANALYZE=server next build",
    "analyze:browser": "cross-env BUNDLE_ANALYZE=browser next build",
    "build:functions": "npm run build:functions:lint && cpx \"functions/lib/functions/src/**/*.*\" dist/functions",
    "build:functions:lint": "cd functions && npm run lint && npm run build",
    "clean": "rimraf dist && rimraf functions/lib && rimraf .next",
    "copy:deps": "cpx \"functions/*{package.json,package-lock.json}\" dist/functions && ncp functions/node_modules/ dist/functions/node_modules && cpx \".next/serverless/**/*.*\" dist/functions/_next/serverless/ && cpx \".next/static/**/*.*\" dist/public/_next/static/ && cpx \"static/**/*.*\" dist/public/static && cpx \"dist/functions/_next/static/**/*.*\" dist/public/_next/static && cpx \"dist/functions/_next/serverless/pages/*.html\" dist/public",
    "firebase:build": "npm install && npm run clean && npm run build && npm run build:functions && npm run copy:deps",
    "firebase:serve": "npm run firebase:build && firebase serve",
    "firebase:deploy": "npm run firebase:build && firebase deploy"
  },
```

## When should we stop though?

So when is a script too long? I really don't know!

Sometimes I break them up into my cloudbuild.yaml file, which calls another file like this.

```yaml
# Git the submodules, run npm install, hugo build
- name: 'gcr.io/$PROJECT_ID/hugo'
  args: ['bash', './deploy.sh']
```

Then this fires a lot of what could be done using NPM as well. I moved this one because if I have GCloud run it I don't have to worry about git freak out about logins 🦄!

```sh
#!/bin/bash

echo -e "\033[0;32mAdding Submodules...\033[0m"

git submodule init
git submodule update --recursive --remote

echo -e "\033[0;32mInstalling via npm...\033[0m"

npm install

echo -e "\033[0;32mBuilding via npm...\033[0m"

npm run build
```

## Thoughts

So tell me how bad does it get, what is an example that you have??
I left the company after 3 years
Tags: beginners, webdev, devlive, career
Published: 2019-08-22 12:19:28

I left the company that I worked for, [Airtouch New Media](https://www.airtouchmedia.com/) and I consider this a good move for my career. I had few months of thinking before to take the final decision.

### Why I left the company?

After 3 years I felt myself [overwhelmed](https://boobo94.xyz/developer-story/7-traps-from-small-outsourcing-companies/) of tasks that I didn't want, tasks that I had to work on because I had the skills or I could. This didn't help me in my career, because I had a lot of tasks which were not related to backend.

I liked the part when something new came to me and I had to figure it out, but I want to be more focused on backend, trying to be an expert at something. It's nice to know things from multiple areas and I consider this very helpful for everyone, but spending time on subjects like exporting reports from database or doing DevOps, fixings servers and doing development for many projects in parallel didn't fit to my current priorities.

### How were these 3 years?

Awesome, super culio. It was a very nice period in my life with a lot of challenges. I had to work remote for 1 year and half and another year from the office. I learned about self-discipline, developed communication skills and not the least I become [better at programming](https://boobo94.xyz/developer-story/time-to-work-later/).

The company had a diversified portfolio and this allowed me to learn a lot of things. The team that I worked in was not big and this made me to feel the co-workers my family.

### Why I consider this period very useful?

I left the company because doesn't fit my current needs, but I consider the time invested valuable.

Airtouch allowed me to jump in multiple technologies for back-end, front-end, hybrid for mobile, voice development with Amazon Alexa, AWS and DevOps.

I had a very nice environment, and we had a very good period together, as a team in the office.

### What I wanted to be changed?

For a very long period until the last moment when I left the company, I tried to improve the management which for me was chaotic. I'm not talking about management board, but more about trying to find a solution which doesn't put the whole pressure in the developer's head.

As a software developer I had to maintain our internal infrastructure, to discuss with my team about projects that I was involved in, take care of deployments and others. The volume of work wasn't low, but the problem I felt was about the speed of changes about my priorities. I had to work on something, then to jump in another task(different project) and so on, sometimes too much different projects or technologies in the same day. This strategy I didn't consider useful for the final product and I tried to offer the best quality with the time I had.

### What's next?

I looked forward, trying to find the best solution for me and collecting enough experience from different sizes of business. I signed with a bigger company and for the moment I'm trying to offer value and grow my skills.
React Tldr; Functional Programming in JavaScript: How and Why
Tags: functional, javascript, react
Published: 2019-08-22 12:15:03

Functional Programming is a programming paradigm where you mostly construct and structure your code using functions.

Features:
- First-class citizens functions: you can always insert functions inside a function without any  restrictions present.
- A higher-order function: a function that gets a function as an argument.
- Function Composition: an act of composing/creating functions that allow you to further simplify and compress your functions by taking functions as an argument and return an output.

Benefits:
- It doesn’t have side-effects and it’s immutable
- It’s clean, straightforward and KISS

Source: https://blog.bitsrc.io/functional-programming-in-javascript-how-and-why-94e7a97343b
Real life example of why you should sort your code by features, and not by technical layers like MVC
Published: 2019-08-22 11:34:08

Practical example of why you should sort your code by feature (users, notes, analytics) instead of technical layer (models, views, controllers, etc)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/cgktf35grkh71pdmvokn.png)
Do you feel comfortable learning in your own language or do you prefer English? (For non English-native speakers)
Tags: discuss, watercooler
Published: 2019-08-22 11:28:21

I am native Spanish speaker, although English billingual. However, taking coding courses or classes in Spanish feels odd to me.
I think that part of it is due to that I have always learnt coding stuff in English. And another part is that all coding language itself is in English, and of course the documentation is also.
It feels really odd to hear the name of the functions translated into Spanish. And I also think it is not practical at all, since documentation does not translate the names.
What about you? What is your native language and how do you feel about learning in it?
A Step-by-Step Guide to Understand the Process of UX Design
Tags: uiuxdesign
Published: 2019-08-22 11:26:03

What is UX Design?

UX design is the process of creating products that provide meaningful and relevant experiences to users or we can say that to solve the problem in the easiest way. Typical <a href="https://www.oodlesstudio.com/ui-ux-design-services/"> UI UX design services</a> involve allocation of design elements to produce intuitive digital interfaces and mobile applications by means of user research and analysis.

 
The Process of UX Design

It is divided into five categories:
1. Strategy

Planning about the project. It is used to create an understanding between designers, goals of the product, guiding principles of the project, defining long term goals of the organization, how to measure the success of the product and priority of the things to achieve.

 
2. Research

Understanding the problem of the user and get the solution of problems. there are three ways to solve the research through:

(i) Interviews – You are asking questions from the user.

(ii) Observation -You can understand the behavior.

(iii) Survey – It is an easy way to gather a large amount of information about a group.

 
3. Analysis

It is the process of measuring the interaction between a user and a user interface, often a website, an application or a design. In this section, you create a Persona, Scenario, Synthesis and Card Sorting.

(i) Persona- It is a representation of a type of customers, their goals, motivations, skills,  pain points and needs.

(ii) Scenario – It defines when, where and how the story of the persona takes place. When that goal is reached, the scenario ends.

(iii) Synthesis – Combining the number of different parts or ideas to come up with new data or theory.

(iv) Card Sorting – Categorize data. It is used to understand how users think about the content.

 
4. Designing

It is involving input and ideas from different people. These ideas are represented by Workflow, Flow Chart, and  Wireframes.
5. Workflow

It is a process for how a work should be done. It provides a graphic overview of the business process. It is a visual representation of a workflow.
6. Flow Chart

It ‘s A diagram for describing a process, a step-by-step approach to solve a task. It is used in analyzing, designing, documenting or managing a process in various fields.
7. Wireframe

Graphic structure of a website or app containing the content and elements. It is used to identify the elements that will be displayed on the screen.
8. A/B testing

It is another way of learning what actions users take or to enable you to make incremental improvements to your website or app.
Conclusion

In the end, the goal of the UX Process is – solving problems for users, helping them achieve their goals with ease and more than that make them feel delightful while doing so.
IP Geolocation & IP Location Lookup API 
Tags: php, webdev, api
Published: 2019-08-22 11:14:44

The service <a href="https://ipwhois.io/">IP Geolocation</a> is free for the test and small applications and sites.

<b>Development</b>
Due to powerful and optimized servers located on different continents and productive database, achieve a real response of up to 90 milliseconds in most parts of the world.

<b>PHP Library</b>
<a href="https://github.com/ipwhois-io/IP-Geolocation-API">Go to Github Project</a>

<b>PHP Function</b>

    $ip = "CLIENT_IP_ADDRESS";
    $location = get_ipwhois($ip);
    $decodedLocation = json_decode($location, true);
    
    echo "<pre>";
    print_r($decodedLocation);
    echo "</pre>";

    function get_ipwhois($ip, $format = "json", $lang = "en") {
        $url = "http://free.ipwhois.io/".$format."/".$ip."?lang=".$lang;
        $cURL = curl_init();

        curl_setopt($cURL, CURLOPT_URL, $url);
        curl_setopt($cURL, CURLOPT_HTTPGET, true);
        curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Accept: application/json'
        ));
        return curl_exec($cURL);
    }
How to become a better product developer?
Tags: frontend, ux, ui, product
Published: 2019-08-22 11:04:30

---
title: How to become a better product developer?
published: true
description:
tags: frontend, UX, UI, product
---

If you are a product-focused developer? How did you improve your self in blow areas

1. Product:
    1. How the user feels about the product.
    2. How this feature is useful for users.

2. Design:
    1. How to show the right user flow.

3. Code:
    1. How to right the beautiful code which takes consideration of
upcoming features also.
Introducing an unique cybersecurity management solution 
Tags: cybersecurity
Published: 2019-08-22 10:35:54

Introducing an unique cybersecurity management module to manage the cyber security program of small and medium business. Usually the small and medium businesses do not have enough capital to invest on a big team on cybersecurity. For this purpose HLC cyber group introduced this cybersecurity management platform. 

For more details visit: https://www.helical-inc.com/
Will Windows and Linux be merged in the future?
Tags: discuss, windows, linux
Published: 2019-08-22 09:54:21

---
title: Will Windows and Linux be merged in the future?
published: true
tags: discuss, windows, linux
---

We know the change of philosophy of .NET, from being a close system with .NET Framework to cross-platform with .NET Core. 

We also have seen the integration of the Linux terminal (and system) with Windows 10 (with WSL - Windows Subsystem for Linux).

So, will the two OSs ever join?
What do you prefer, keep the two system separated or have a single mega operating system?
HTTP response status codes List:

Tags: webdev, api, http, unsuredev
Published: 2019-08-22 09:08:02

HTTP response status codes indicate whether a specific HTTP request has been successfully completed. Responses are grouped into five classes: informational responses, successful responses, redirects, client errors, and server errors. The below status codes are defined by .

1.Information responses

100 Continue
101 Switching Protocol
102 Processing (WebDAV)
103 Early Hints

2.Successful responses

200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV)
208 Already Reported (WebDAV)
226 IM Used (HTTP Delta encoding)

3.Redirection messages

300 Multiple Choice
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy 
306 unused
307 Temporary Redirect
308 Permanent Redirect

4. Client error responses

400 Bad Request
401 Unauthorized
402 Payment Required 
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Payload Too Large
415 Unsupported Media Type
415 Unsupported Media Type


421 Misdirected Request
422 Unprocessable Entity (WebDAV)
423 Locked (WebDAV)
424 Failed Dependency (WebDAV)
425 Too Early

429 Too Many Requests
451 Unavailable For Legal Reasons

5.Server error responses

500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates
507 Insufficient Storage (WebDAV)
508 Loop Detected (WebDAV)
510 Not Extended
511 Network Authentication Required

ALL these are same for every for Chrome,Edge,Firefox,Internet Explorer,Opera,	Safari,Android webview	Chrome for Android,Firefox for Android	Opera for Android	Safari on iOS	Samsung Internet............etc
Kotlin extension function vs function literal with receiver
Tags: kotlin, functional, lambda, literal
Published: 2019-08-22 09:02:30

# Kotlin extension function and function literal with receiver #
In Kotlin it is possible to add a method (called member function in Kotlin) to an existing class. This is called an *extension function*.

It is also possible to *access* a member function from a class inside a function literal. This is called a *function literal with receiver*.


# Extension function #
Say you want to add a new member function to the `StringBuilder` class, e.g. `appendMonkey()` that appends the string “monkey” to a string. Because `StringBuilder` is in the Java SDK, we cannot modify it. In Kotlin we can define an extension function that extends an existing class like `StringBuilder` with a new member function.

We define the `appendMonkey()` extension function as follows:

```kotlin
fun StringBuilder.appendMonkey(): StringBuilder = this.append("monkey")
```

`this` refers to the `StringBuilder` object, and we can omit it:

```kotlin
fun StringBuilder.appendMonkey(): StringBuilder = append("monkey")
```

Full example:

```kotlin
import java.lang.StringBuilder

fun main() {
    val sb = StringBuilder()

    sb.append("Hello extension function ")
    sb.appendMonkey()

    println(sb.toString())
}

fun StringBuilder.appendMonkey(): StringBuilder = append("monkey")
```

# Function literal with receiver #
Closely related to the *extension function* is the *function literal with receiver*. There are two types of function literals:

* lambda
* anonymous function

In practice you will most [likely][anonymous_function_link] use the lambda expression, so we use that in the example below.

Where with extension functions you can add a new member function to an existing class, with a *function literal with receiver* you can access the member functions of an existing class *inside* the lambda block (inside the curly braces `{}`). 

Let's create a *function literal with receiver* that adds the string "monkey" to a string using the `StringBuilder` class.


```kotlin
val lambdaAppendMonkey: StringBuilder.() -> StringBuilder = { this.append("monkey") }
```

Again, `this` refers to the `StringBuilder` object, so we omit it:

```kotlin
val lambdaAppendMonkey: StringBuilder.() -> StringBuilder = { append("monkey") }
```
 
 Full example: 

 ```kotlin
 import java.lang.StringBuilder

fun main() {
    val lambdaAppendMonkey: StringBuilder.() -> StringBuilder = { append("monkey") }

    val sb = StringBuilder()
    sb.append("Hello lambda ")

    println(lambdaAppendMonkey(sb).toString())
}
```


Here, inside the block of the lambda we can access the `append()` member function because we explicitly stated the return type to be `StringBuilder.() -> StringBuilder`. This return type basically says: 

"return a function that takes no arguments and returns a `StringBuilder object`, __and__ give this function access to the `StringBuilder` member functions".

Good luck!

[extension_function_link]: https://kotlinlang.org/docs/reference/extensions.html#extensions
[anonymous_function_link]: https://kotlinlang.org/docs/reference/lambdas.html#anonymous-functions
Is VBA still a desirable skill to have?
Tags: career, beginners, dev, womenintech
Published: 2019-08-22 08:56:51

---
title: Is VBA still a desirable skill to have?
published: true
description: 
tags: career, beginners, dev, women in tech
---

I am a data analyst at an energy company. I recently had to automate a few Microsoft Excel functions for a colleague using VBA, although I had initially written the code in Python. That got me thinking if VBA is still widely used in the tech world? I'm new to the tech industry. Any suggestions, feedback and tips are appreciated! Thanks :)