teleren/devto huggingface dataset:
Send WhatsApp message without storing contact details.
Tags: html, javascript, netlify
Published: 2019-10-13 10:56:05

---
title: Send WhatsApp message without storing contact details.
published: true
description: Send message to Whatsapp without storing contact details
tags: HTML, JavaScript, Netlify
---

I have created simple web app which can send message to whatsApp user without storing contact details.
 
__How it works__
Input contact number (with country code) and message for users.
User redirect to the WhatsApp Application or WhatsApp web app.

__Things you'll need__
WhatsApp application in your device.


[Send Message](https://sendmsg.netlify.com)
What are some funny O RLY? "books" you've seen?
Tags: watercooler
Published: 2019-10-13 10:46:35

These are always refreshing, especially if you can relate to the titles.

![book1](https://thepracticaldev.s3.amazonaws.com/i/9b7fu73vxoth30ik8d3u.jpg)

![book2](https://thepracticaldev.s3.amazonaws.com/i/hd0djh0y9yyrqwehrquv.jpg)

![book3](https://thepracticaldev.s3.amazonaws.com/i/i2y2mph5c9rq75d2e0co.jpg)

![book4](https://thepracticaldev.s3.amazonaws.com/i/34hrdhm6k7brl0xt8alx.png)
Why you should consider develop apps for big screen devices
Tags: smarttv, appletv, roku, firetv
Published: 2019-10-13 10:46:06

This is a small post with my thoughts about development opportunities for big screen devices.

I’ve been working with HTML based Smart TV apps for 3 years, and I remember how hard was to get answers to issues I faced. Smart TVs’ marketing wasn’t big enough to companies consider invest money — at least for my experience.

### Current scenario
Smart TVs and stick devices (Fire TV, Apple TV, Roku, etc.) are increasing as options to spent time watching Netflix (who doesn’t have Netflix in 2019?) and other stream platforms like Amazon Prime.

> The number of Wi-Fi homes using a streaming stick or set-top increased by just 1% in the last year, to 49%. The number using a smart TV jumped 5%, to 42%.

Source: https://nscreenmedia.com/connected-tv-growth


And the scenario is not good for Pay TV providers. They lost 1,5mi subscribers past year in United States.

> Leichtman Research Group, Inc. (LRG) found that the largest pay-TV providers in the U.S. — representing about 93% of the market — lost about 1,530,000 net video subscribers in 2Q 2019, compared to a pro forma net loss of about 420,000 subscribers in 2Q 2018.

Source: https://www.leichtmanresearch.com/major-pay-tv-providers-lost-about-1530000-subscribers-in-2q-2019/

I encourage you to join this opportunity. Broadcasting media industry already have apps for Smart TV nowadays, but I think other kind of industry can get some spot on this wave.


### Technology
Here is a summarised information about technology the major manufactures are using.

#### Samsung
- Operational System: Orsay (legacy) and Tizen
- Technology: HTML/JavaScript
- Reference: https://developer.samsung.com/tv/develop

#### LG
- Operational System: Netcast (legacy) and webOS
- Technology: HTML/JavaScript
- Reference: http://webostv.developer.lge.com/

#### Sony
- Operational System: Linux and Android TV
- Technology: HTML/JavaScript and Android
- Reference: https://www.android.com/tv/

#### Panasonic
- Operational System: Linux and FirefoxOS
- Technology: HTML/JavaScript
- Reference: https://developer.vieraconnect.com/

#### Fire TV
- Operational System: Fire OS (Android based)
- Technology: Android
- Rerefence: https://developer.amazon.com/en/apps-and-games/fire-tv

#### Roku
- Operational System: Roku OS
- Technology: BrightScript
- Reference: https://developer.roku.com/overview

#### Apple TV
- Operational System: tvOS
- Technology: Swift
- Reference: https://developer.apple.com/tvos/


Hope this post can be useful for you. Send me a message if you want to know more about. I will be happy to talk about. :)

Original post:
https://medium.com/@iepsen/why-you-should-consider-develop-apps-for-big-screen-devices-580940eab2a8
BxJS Weekly Episode 84 - javascript news podcast
Tags: javascript, node, podcast, news
Published: 2019-10-13 10:44:37

Hey dev.to community!

BxJS Weekly Episode 84 is now out! 🚀
Listen to the best javascript news of the week in a podcast form right here.

Here's all the mentioned links (also found [on github](https://github.com/BuildingXwithJS/bxjs-weekly/blob/master/links/19-41-Episode-84.md)):

## Getting started:

- [The Beginner’s Guide to Chart.js](https://www.stanleyulili.com/javascript/beginner-guide-to-chartjs/)
- [React hooks... Oops! Part 2 - why does my effect run multiple times with the same dependencies?](https://lukaszmakuch.pl/post/react-hooks-oops-part-2-effect-runs-multiple-times-with-the-same-dependencies/)
- [The Ultimate Guide to Next.js Authentication with Auth0](https://auth0.com/blog/ultimate-guide-nextjs-authentication-auth0/)

## Articles & News:

- [JavaScript Broughlike Tutorial](https://nluqo.github.io/broughlike-tutorial/)
- [Service workers at TPAC](https://jakearchibald.com/2019/service-workers-tpac/)
- [Letting web app users run multi-module JavaScript code](https://2ality.com/2019/10/multi-module-eval.html)

## Tips, tricks & bit-sized awesomeness:

- [TIL — The power of json.stringify replacer parameter](https://pawelgrzybek.com/til-the-power-of-json-stringify-replacer-parameter/)
- [Top-level await](https://v8.dev/features/top-level-await)
- [LastPass's Chrome Extension may slow down your browser by ~50%](https://twitter.com/_pastelsky/status/1180864405648502784)
- [Introducing Create Next App](https://nextjs.org/blog/create-next-app)
- [Learn to code with Grasshopper, now on desktop](https://www.blog.google/outreach-initiatives/grow-with-google/grasshopper-desktop-learn-to-code/)

## Releases:

- [VS Code v1.39](https://code.visualstudio.com/updates/v1_39)
- [Next.js 9.1](https://nextjs.org/blog/next-9-1)
- [React-hooks v1.4.0](https://github.com/kripod/react-hooks/releases/tag/v1.4.0)

## Libs & demos:

- [cropperjs](https://github.com/fengyuanchen/cropperjs)
- [raw-wasm](https://github.com/binji/raw-wasm)
- [is-website-vulnerable](https://github.com/lirantal/is-website-vulnerable)
- [ferrum](https://github.com/adobe/ferrum)
- [prray](https://github.com/Bin-Huang/prray)
- [diagram](https://github.com/graphql-editor/diagram/)
- [Harmony-of-the-Spheres](https://github.com/TheHappyKoala/Harmony-of-the-Spheres)
- [webassembly.sh](https://webassembly.sh/)
- [uPlot](https://github.com/leeoniya/uPlot)
- [js13kgames winners](https://2019.js13kgames.com/#winners)

## Interesting & silly stuff:

- 💤

Any feedback is appreciated 😁

Additional stuff:
- [Youtube channel](https://youtube.com/c/TimErmilov)
- [Twitch channel](https://www.twitch.tv/yamalight)
- [Discord server](https://discord.gg/hnKCXqQ)
- [BxJS Weekly github repo](https://github.com/BuildingXwithJS/bxjs-weekly)

Social media links:
- [Twitter](http://twitter.com/yamalight)
- [Github](http://github.com/yamalight)

If you enjoy my content, please consider [supporting me](https://codezen.net/support.html) 😉
Which trackers do you use?
Tags: watercooler
Published: 2019-10-13 10:10:24

---
title: Which trackers do you use?
published: true
description: "In order to improve you need to have some kind of metrics, right? Be aware of Goodhart's law"
tags: watercooler
---

In order to improve you need to have some kind of metrics, right? (Be aware of Goodhart's law)

I'm doing small research about trackers. I wonder what kind of trackers do you use? Fitness, sleep, food, expenses, heart bit rate, hardware or software - anything.
J-tockauth - Easy way to manage Ruby on Rails auth with JS frontend
Tags: rails, react, javascript, ruby
Published: 2019-10-13 08:51:55

Hello everyone, I recently released an npm module that allows you to easily manage all authentication when you use a ruby on rails backend with the Devise Token Auth gem.

I find the existing projects too complicated and poorly maintained.

Any contribution will be welcome.

https://www.npmjs.com/package/j-tockauth
React Todo Tutorial Series
Tags: react, javascript
Published: 2019-10-13 08:44:05

Hello dear readers :smile: ,

it is time to do a tutorial on react state management. Thats why I build out the same application 5 times. If you're interested to just jump right in and open the [Github repo](https://github.com/Sm03leBr00t/react-todo-application). I organised the different versions in branches, so if you just want the basic hardcoded application use the master branch.

We will cover:

- building a basic todo app with [react](https://reactjs.org/) and [bulma](https://bulma.io)
- using reacts state and conetext api to manage todos
- using [MobX](https://mobx.js.org/README.html) to do the job
- using [Redux](https://redux.js.org)
- using [easy-peasy](https://easy-peasy.now.sh/) to simlify redux

In the future we will maybe add a database to our app and make it sharable. So stay tuned in and follow the articles :sunglasses:
Security audit for your online devices
Tags: android, security, kotlin
Published: 2019-10-13 08:06:03

To all the security geeks out there, I'm proud to present you the new app I made, entirely written in Kotlin and providing you three sources you can check up security upon.
Shodan
ZoomEye
Censys

Enjoy.

https://play.google.com/store/apps/details?id=com.crazylegend.sekktor
How to truncate multi-line string with Pure CSS
Tags: css, beginners
Published: 2019-10-13 07:03:15

It is easy to truncate a single-line text.

```
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
```

### Multi-line Tuncation
However, what if you want to truncate after some lines? The **CSS -webkit-line-clamp property** comes in handy. It helps to limit the block of text into specified number of lines ( 1 or more, as desired). Then ellipsis is added automatically at the end after the truncated point.

```
   display: -webkit-box;
   -webkit-box-orient: vertical;

   /* to specify the number of lines you want the text to run through... */
   -webkit-line-clamp: 3;
   /* hide the overflowing text, i.e, texts that did not fit in to the box */
   overflow: hidden;
```
This is a practical example in the codepen below.

{% codepen https://codepen.io/temmietope/pen/RwwrMNv %}

I hope that is clear enough!
Properly Include Component Function from `useEffect` and `useCallback` Dependency List
Tags: react
Published: 2019-10-13 06:19:33


I was working on [Slots](https://codesandbox.io/s/slots-3q0ks) (letting a portal component render into a potentially not mounted portal home) when initially I was violating a [hooks rule](https://reactjs.org/docs/hooks-rules.html). Namely, I did not include the `setSlot` function I called within the `useCallback` body inside its dependency list.

```jsx
export const SlotHome = ({ slotName, className }) => {
  const [, setSlot] = useSlot(slotName)
  const ref = React.useCallback(node => {
    // we're lying to hooks because we're using setSlot without including it in the deps list
    setSlot(node)
  }, [])
  return <div className={className} ref={ref} />
}
```

But if I do include it, the function is different every time the component render is called and therefore would re-render like a maniac. Without including it, the implementation still works, but we're lying to hooks and it is [strongly advised against](https://overreacted.io/a-complete-guide-to-useeffect/#dont-lie-to-react-about-dependencies).

This made me finally decided (cuz it says it's a 49-min read) to read Dan Abramov's article, [A Complete Guide to `useEffect`](https://overreacted.io/a-complete-guide-to-useeffect/) and decided to properly figure this out. Here are some key takeaways:

- class components mutate state
- functional components + hooks retain the proper closure behavior (always use closed variable, no mutating crap)
- _3 ways to optimize dependency list_
  - remove unnecessary use of params in component lifecycle scope
  - use reducer
  - _memoize functions with `useCallback`_

The highlighted takeaway was what solved this problem. The idea is to tell hooks that the function won't change unless what we specify in that `useCallback`'s dependency list change.

```jsx
const [, setSlot] = useSlot(slotName)
// specify that setSlotMemo won't change unless slotName changes
const setSlotMemo = React.useCallback(setSlot, [slotName])

// now ref is safe to include setSlotMemo in its deps list
const ref = React.useCallback(
  node => {
    setSlotMemo(node)
  },
  [setSlotMemo]
)
```

Once again Dan's article covers a complete guide to properly use `useEffect` (which extends to `useCallback` because they share the same signature).

## Relevant links

- [Slots CodeSandbox](https://codesandbox.io/s/slots-3q0ks)
- [A Complete Guide to `useEffect`](https://overreacted.io/a-complete-guide-to-useeffect/)
- [Rules of Hooks](https://reactjs.org/docs/hooks-rules.html)
FireDI – Getting Started
Tags: php, showdev, webdev, html
Published: 2019-10-13 23:59:35

---
title: FireDI – Getting Started
published: true
date: 2019-10-13 05:04:20 UTC
tags: php, showdev, webdev, html
canonical_url: https://ua1.us/updates/firedi/firedi-getting-started/
---

In this tutorial, you will learn how to get started with FireDI! A quick recap, FireDI is a PHP dependency injection library that makes it simple to help you manage dependencies within your classes. If you haven’t quite decided whether you should be using FireDI or not, checkout our page about [When Should I Use Dependency Injection?](/updates/firedi/firedi-when-should-i-use-dependency-injection/).

## Installing FireDI

Installing FireDI is so easy by simply using composer.

```
composer require ua1-labs/firedi
```

That’s It! It’s included in your project and ready to go!

## Using FireDI

FireDI is simple to use and has a simple API.

```
$fireDi = new UA1Labs\Fire\Di();
$myClass = $fireDi->get('myClass');
```

Hint: When integrating FireDI into your project, you may want to consider implementing it as a singleton. Doing so will allow you to simply pull it into what ever part of the code you want. This way you can take advantage of it’s built in object caching. Plus, whenever you instantiate an object using a FireDI container, that container will keep keep track of all dependencies and be much faster in resolving them as your application grows.

**Note: It is much more efficient to only use one instance of FireDI within your project.**

The post [FireDI – Getting Started](https://ua1.us/updates/firedi/firedi-getting-started/) appeared first on [UA1 Labs](https://ua1.us).
Apple Watch or a Decent Alternative?
Tags: discuss, smartwatch
Published: 2019-10-13 03:33:03

Photo by [chuttersnap](https://unsplash.com/@chuttersnap?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/watch-apple?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)

Hi DEVers,

I received some award points at work that translate to gift cards and I was looking to buy a smart watch.

I have enough to pay for the majority of an Apple watch. The one lingering question I have though is, can you put music on your Apple Watch that isn't from iTunes/Apple Music subscription? I have music in iTunes that I ripped from old CDs and ideally would like to put that on my watch. I also have some music purchased from Google Music, but I know that there is no Google Music app for Apple watches, most likely because of competition. Same for Amazon Music.

I have no plans on getting an Apple Music subscription, so if this is not possible, I am going to consider other smart watches. The other smart watch I was considering is the Fitbit Versa 2.

Any recommendations peeps?
Duolingo App clone com Xamarin.Forms 
Tags: xamarinforms, xaml, xamarin
Published: 2019-10-13 02:08:58

---
title: Duolingo App clone com Xamarin.Forms 
published: true
description: Fala galera! Tudo bem com vocês?Depois de um tempo, aqui estou escrevendo novamente! Mas hoje não vai ter nenhum artigo técnico, apenas vou compartilhar com vocês uma série de live streams que estou fazendo para desenvolver um clone do app &hellip; Continue lendo &rarr;
tags: xamarin forms, xaml, Xamarin
canonical_url: https://www.ionixjunior.com.br/duolingo-app-clone-com-xamarin-forms/
cover_image: https://www.ionixjunior.com.br/wp-content/uploads/2019/10/destaque_live_do_duolingo_com_xamarin_forms.png
---

Fala galera! Tudo bem com vocês?
Depois de um tempo, aqui estou escrevendo novamente!

Mas hoje não vai ter nenhum artigo técnico, apenas vou compartilhar com vocês uma série de *live streams* que estou fazendo para desenvolver um clone do app do **Duolingo** com **Xamarin.Forms**. Se interessou? Então acompanha aí esse post para saber mais informações.

Por que iniciei estas lives? Bom, recentemente tive a oportunidade de participar de algumas lives na [Maratona Xamarin do Monkey Nights](https://www.youtube.com/channel/UCFaQBRaoHrAxcGoeY8E5jvQ) (live [desenvolvimento de telas com XAML](https://youtu.be/fEgpcreVcyk)) e no [Canal dotNET](https://www.youtube.com/channel/UCIahKJr2Q50Sprk5ztPGnVg) ([clone do app Yellow parte I](https://youtu.be/x_sNPEwS3kA) e [parte II](https://youtu.be/k3oediCzZvs)). Gostei tanto dessa experiência que resolvi fazer minhas próprias lives.

O principal objetivo é desenvolver com **Xamarin.Forms**, um aplicativo conhecido para mostrar como desenvolver um app profissional e elegante, mostrando o potencial da plataforma.

Até a data de publicação deste post já existem sete partes destas lives. Estou fazendo transmissões simultâneas no [Twitch](https://www.twitch.tv/ionixjunior), [Periscope](http://periscope.tv/ionixjunior) e [Youtube](https://www.youtube.com/channel/UCD_Cgiqajwi-u-n3lYvp8Ig?view_as=subscriber) (escolha sua rede social favorita e me acompanha lá). Para quem gosta mais de Youtube, [criei uma playlist com as lives](https://www.youtube.com/playlist?list=PL6M6J_6V_um9tuXHl-Tq-T1qmiuxu3AM9) do **Duolingo**, assim fica mais fácil acompanhar a evolução delas.

![](https://www.ionixjunior.com.br/wp-content/uploads/2019/10/live_do_duolingo_com_xamarin_forms-1024x594.png)Parte VII da live do clone do Duolingo com Xamarin.Forms. Na imagem o resultado parcial obtido da implementação do Android e iOS e um print do app original para comparar.

Estas *lives* são semanais, geralmente no sábado pela manhã, e duram cerca de duas horas cada. Que tal participar da próxima live ao vivo? Inscreva-se nos canais para saber quando a live irá começar ou siga-me no [Twitter](https://twitter.com/ionixjunior). Sempre posto lá quando a transmissão está começando.

E aí, bora participar da próxima *live*? Te espero lá. Um abraço!
WEB375 Week 5
Tags: apache, servers, linux
Published: 2019-10-13 00:22:59

## Understanding and configuring web servers

Web servers are responsible for sending the content you view every day on the Internet. An organization's web server is the backbone of the company's Internet presence. Apache is by far the most popular web server on the Internet and is included with all major Linux distributions and macOS.

How I configured the Apache web server on a Linux system. 

* Checked to see if Apache was installed. *You can install using dnf install -y httpd*

* Set up the name of the web server to match the name of the computer using vi /etc/httpd/conf/httpd.conf

* Changed the name at about line 95

* Deleted the hashtag from the beginning of the line to uncomment and replaced the www.example.com:80 with 192.168.0.2

* Replaced the localhost with the IP address 

* Saved the file and started the Apache server and then checked the status

* Setup a rule for iptables to allow HTTP traffic to our server and then saved the rule 

* Tested for installation using links to display web pageson both systems

* Once on the web server, created a web page and saved it. In the file entered *"APACHE IS COOL!!!"* and sent the message

* Logged in to different client to display the message
WEB375 Week 4
Tags: ftp, servers
Published: 2019-10-13 00:22:12

## FTP Servers and Service-Level Agreements

FTP (File Transfer Protocol) is the most common method of uploading files to a server. A wide array of FTP servers, such as vsftpd, and clients exist for every platform.

This week I configured a secure FTP server and used it for both sftp and ftp. Started by first checking if it was installed and then edited the file to configure it. Once it was configured, I started the vsftpd service and enabled it to launch during boot. 

Had a few complications with user permissions. Started from the beginning and everything went smoothly.
WEB375 Week 3
Tags: linux, client, server
Published: 2019-10-13 00:20:54

**Week 3 Lab Overview:** 
Set up a sendmail server on the Linux system. I also sent a message to my own username and made sure that the mail was sent correctly.

**Lecture Overview** 
Electronic mail has become an integral part of our daily lives. The architecture behind electronic mail is similar to the postal system. Email is address similar with to and from addresses and is dropped off at an outgoing mail server. Mail is then transferred from one server to another server. This week, we will set up our own post office to accept e-mail address and transfer them to other post offices to deliver them to a local user's mailbox. Two commonly used e-mail server apps on Linux are Sendmail and Postfix. Both of these server applications are actually comprised of smaller programs that each perform specific tasks. We will also look at many different protocols and approaches to set up an e-mail architecture, with separate incoming and outgoing mail servers and clients that are applications themselves or web-based clients.

The following are two types of e-mail servers:
* Outgoing Mail Server: Using the simple mail transfer protocol (SMTP), this server type receives e-mail messages from an e-mail client application or another server. This server forwards the message to the server of the recipient's domain or, if the recipient is part of the same domain, forwards it to the incoming mail server for the domain. The outgoing mail server is referred to as the mail transfer agent (MTA). Two common outgoing mail servers for Linux are Sendmail and Postfix.

* Incoming Mail Server: The incoming mail server receives e-mail from the local outgoing mail server and stores it in a local directory the user can access when his or her mail client connects to this server. When a client connects to an incoming mail server, either the post office protocol version 3 (POP3) or Internet message access protocol (IMAP) is used. The incoming mail server is referred to as the mail delivery agent (MDA). If a system is using Sendmail as the outgoing mail server, the MDA is the program procmail.

SMTP - protocol. To send e-mail

MUA - e-mail client application i.e.  Thunderbird

MDA - Connect to this server to receive mail

MIME is the format used to send attachments with mail

IMAP is the protocol mail clients use to synchronize their mail with the server.

MTA is another way to refer to the outgoing mail server.

POP3 is the protocol used by clients to move a copy of a. mail message to their computers.
Spring Starter Packs - Looking for contributors
Tags: spring
Published: 2019-10-12 23:22:38

In this Github repository [gentaliti/spring-starter-packs](https://github.com/gentaliti/spring-starter-packs) I started writing starter packs in Spring with a DB combination.

These small projects aim to give you a starting point for your Spring based APIs.

Tech stack: 

- Java > 1.8
- Spring boot
- Docker
- Docker compose
- And a DB combination

I am looking for contributors, so we can have more supported databases. 

**If you have any other question feel free to contact me: alitigenti@gmail.com**