teleren/devto huggingface dataset:
A football factory
Tags: java, design, beginners
Published: 2020-05-31 19:44:11

# Intro

A short blog on how you can create again some football legends!
I created a factory that produces football legends by using a software design patter, one of the most used ones, the **Factory Method**!

## Players that we miss

All the football fun's we miss some players, especially players that they did things that we couldn't imagine,
like a dribble, a shot from a long distance, an assist with some weird way and so on.
Let's see how we can re-create them and watch some magic again!

## The football factory

A factory is a static method that takes optionally a number of arguments and creates instances of a certain type.
One good property of the factory method is that the client has no knowledge how the instance is
created (or doesn't even cares, just wants one instance).

What is needed for a method factory:

1. an interface, this is the type that the static method returns
2. a concrete implementation of the interface (we could have more than one)
3. a static method that generates the desired instances

Those are the basic ingredients of the **Factory Method**.

In the football factory the three ingredients are mapped to the following code fragments:

1. **the interface** (the type that the factory returns), includes just two methods for the name and the position of the legendary player

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/5k43irwomqfsl9zjdexr.png)

2. **a concrete implementation** of the interface

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/1r2lhl19372dq55fj2jj.png)

3. **the static method** (factory) that creates the actual instances, takes as an argument an enum (the legendary players) 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/1sj95ofbn2ymirj7109e.png)

- the enum that factory requires as argument (the legends!)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/3reek8q3fl95p32fnnb1.png)

## Let's create some legends

Let's produce some football legends from the factory!

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vvv9bmf9hph0smhi39er.png)


Now we can watch some magic!

Cheers!
How To Root Any Android Device Via Magisk?
Tags: Root
Published: 2020-05-31 19:23:23

<strong>Magisk!</strong>  It is the most trusted name in <span style="color: #3366ff;"><a style="color: #3366ff;" href="https://safeboxguide.com/root-android/"><strong>Root</strong></a></span> industry. Every root user know about Magisk. This application contain some unbelievable features which we discuss below.
<h3><strong>Why Only Magisk</strong></h3>

I'm guiding you with an example. As a root user you know that you can't use any banking application once you root your Samsung device. But what!  If you want to send money from anyone. So here's the Magisk come with proper solution. By using magisk you can use banking application without facing any security problem.

Magisk allow this feature to hide your system root from your banking app. As a result all banking application run easily.
<h4><strong>Steps To Root Any Android Device </strong></h4>
<ul>
 	<li>Download the <span style="color: #3366ff;"><a style="color: #3366ff;" href="https://magiskmanager.com/"><strong>Magisk.zip file</strong></a></span> on Your Android Device </li>
 	<li>Now Boot your Device on recovery mode by pressing <strong>Volume Down + Power Button</strong></li>
 	<li>Next, Tap On <strong>install</strong> and select the downloaded <strong>Magisk.zip file</strong></li>
 	<li>Tap on to <strong>confirm Flash</strong></li>
 	<li>The flashing process is done within a couple of seconds</li>
 	<li>Now <strong>Reboot your device</strong></li>
 	<li>Congratulations! Now you have successfully Root your Android device using magisk zip file. Believe me there is no better alternate app present on the web. Magisk is leading now.</li>
</ul>

Thanks for reading this post. Let me know if you have doubt regarding Root or using magisk.
Source - Safeboxguide.com
First promotion. 
Published: 2020-05-31 19:17:53

#homebased #virtualprograme #socialawareness 
#Risetorights #voluntaryeducation #humanrights
#collegetocorporates 
For more details, visit 
www.intcce.org
https://intcce.org/social-law/
For any queries contact:-
Youth Ambassador:- (Anuj Negi)
Contact No:- (9971736550)
{Few days left}
 Register here:-
https://zfrmz.com/KQNGP2aqvYR2UYca2hSi?ya=negianuj8@gmail.com
¿Qué son API's? (para dummies)
Tags: todayilearned, beginners, espanol, spanish
Published: 2020-05-31 19:16:45

Todos en algún punto hemos escuchado a los programadores hablar sobre las API's. Quizá oíste a alguien decir que "usaría la API de Twitter" para algún proyecto, o tal vez algún experimentado colega quiere "crear una API" por su cuenta.

En mi caso, la primera vez que lo escuché surgieron muchas incógnitas en mi cabeza y, como siempre, acudí al Dr. Google: "API definición":

> La interfaz de programación de aplicaciones, conocida también por la sigla API, en inglés, application programming interface, es un conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción...

Si tu cara fue la misma que la mía, entonces entiendes el motivo por el que escribo esto. No es tan malo como la Wikipedia lo hace parecer.

Este [video](https://www.youtube.com/watch?v=s7wmiS2mSXY) logra una gran explicación del tema y pone el ejemplo del cliente en un restaurante:
- El cliente tiene en frente la carta de platos.
- La cocina es la parte del sistema que preparará el platillo.
- El mesero es el nexo entre ambos. Recibe la orden del cliente, la comunica a la cocina y devuelve el plato listo a la mesa del cliente.

El mesero viene a ser la API y un concepto importante es el de "interfaz". Una interfaz es una __capa de abstracción__ que permite al usuario interactuar con algún sistema, quitándole la carga de conocer la complejidad que hay detrás de su funcionamiento. En el caso del ejemplo, el mesero cumple este rol pues el cliente puede obtener su comida sin siquiera conocer cómo se prepara el "canelón tibio de manitas de cerdo con parmentier trufada y encurtidos" que pidió.

Para aterrizar el tema al plano tecnológico, tenemos los siguientes ejemplos:

1. Cuando planeas unas vacaciones y buscas por el mejor precio del boleto en un sitio de viajes online, éste se está comunicando con las diversas API's de las aerolíneas, quienes consultan en sus respectivas bases de datos y devuelven la información sobre asientos disponibles y precios para que tú puedas elegir.

2. Los desarrolladores de una app móvil "Foticat" no tienen que preocuparse por cuestiones de tan bajo nivel como configurar una conexión Wi-Fi o por cómo comunicarse con los sensores del dispositivo (acelerómetro, GPS...). El sistema operativo del dispositivo ya provee a los developers las API's necesarias para simplificar estas operaciones, de manera que la app puede "simplemente" efectuar sus solicitudes a la API en cuestión para, por ejemplo, obtener acceso a la cámara del dispositivo ("¿Permitir a Foticat acceder directamente a la cámara para tomar fotos o videos?"... ¿te suena el mensaje? API's everywhere).

En sencillo, una API es el mensajero que permite la comunicación o interacción entre aplicaciones (en general, todo tipo de software), data y dispositivos. O sea... ¡es la base de la conectividad!
Does HTML Grid replace media queries?
Tags: discuss
Published: 2020-05-31 18:27:44

The Grid, with excellent horizontal and vertical layout control, does a great job of making all content abide by its template rules. Use of the repeat, auto-fit, and minmax functions seem to handle all screen sizes if they have the correct values.

What specific instance would require a media query that the Grid couldn't perform? 

*Update Jan. 2021*
Per Joel's reply below (and plenty of lab time), the grid doesn't seem to be able to accomplish mobile screen sizes too well.  It gets close but is not a one-stop-shop.  

Even when we specify VW and VH units for columns or rows it just doesn't seem to work without media screen queries for specific sizes. 

The answer is no, it doesn't replace them, rather the columns and rows need to be tweaked for specific screen sizes.
Some of the underrated MacOS apps
Published: 2020-05-31 18:18:32

I would like to share some of the underrated apps for macOS, hope you find it useful

### Annotate

- This is not the default annotate in the macOS, [‎Annotate - Capture and Share on the Mac App Store](https://apps.apple.com/in/app/annotate-capture-and-share/id918207447?mt=12)

   - Arrow & Line
  
   - Text
  
   - Overlay
  
   - ....and much more

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/dt4vki6u4ddg1h5jd1x0.jpeg)

### Rectangle

- If you are coming from a windows operating system, you might miss the windows rearrangement in the macOS , previously I used [spectacles]([Spectacle](https://www.spectacleapp.com/)) but it&#39;s not being actively maintained, I came to know about rectangle from the spectacle [GitHub Repo]([GitHub - eczarny/spectacle: Spectacle allows you to organize your windows without using a mouse.](https://github.com/eczarny/spectacle#important-note)), it&#39;s similar to the spectacle but have lot of features
  
- [Rectangle](https://rectangleapp.com/) Official page

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/x3qyjmm7iz2saqsk91tv.jpeg)

### Mark Text

- It&#39;s a markdown editor ,I can&#39;t recommend this highly enough , even this post was edited for markdown by using the mark Text ```Ctrl+C Ctrl+V 😁``` 

- It's available in all platforms

- [Mark Text](https://marktext.app/) Official Page

### Table Tool

- If you&#39;re working with CSV file, you might need to check this [‎Table Tool on the Mac App Store](https://apps.apple.com/in/app/table-tool/id1122008420?mt=12)

### Teampaper Snap

- It is similar to annotate but some bunch of additional feature , you can mark an area in the screenshot add a notes over there while generating the image it will include all those note which are added
  
- [‎Teampaper Snap on the Mac App Store](https://apps.apple.com/in/app/teampaper-snap/id1199502670?mt=12)

### Dozer

- Hide status bar icons to give your Mac a cleaner look.

- [Dozer](https://github.com/Mortennn/Dozer) GitHub Page

![](https://raw.githubusercontent.com/Mortennn/Dozer/master/Stuff/demo.gif)

### Cacher

- Code snippet organizing app
  
- [Code snippet organizer for pros | Cacher](https://www.cacher.io/)


### RunJS

- Write & run JS instantly , for some quick code tidbits this is so helpful
  
- [RunJS - Write and run JavaScript instantly](https://runjs.dev/)

If you want to find much more app you can check this [awesome-mac github repo](https://github.com/jaywcjlove/awesome-mac)

This is my first post on Dev 😇 & hope 😊 this will be useful to you, thanks for reading :)
Cohort 5 Recap
Tags: collablab, juniordevelopers, earlycareerdevelopers, webdev
Published: 2020-05-31 18:11:42

---
title: Cohort 5 Recap
published: true
description: 
tags: collablab, juniordevelopers, earlycareerdevelopers, webdev
//cover_image: https://direct_url_to_image.jpg
---

Collab Lab’s 5th cohort wrapped up a few weeks ago! You should totally hire this bunch. They're so amazing!

This cohort took place during uneasy and troubling times for all. I hope I speak for everybody that was involved that this was something I looked forward to every week and was a shining light in the darkness.

[This cohort](https://the-collab-lab.codes/about-us/#cohort-5) consisted of [Aisling Hennessy](https://github.com/AshlingH), [Diane Kim-Lim](https://github.com/dkimlim), [Jennifer Batara](https://github.com/jendevelops), and [Jon Bascos](https://github.com/jonbascos). [The mentors](https://the-collab-lab.codes/about-us/#mentors) were Lauren Beatty, Stacie Taylor-Cima and Joey Laguna.

This group *really* put the Collab in Collab Lab. After only a few weeks, the team on their own was working like a real software development team. They really focused on getting a strong understanding of the requirements each week. Each week their code review skills improved and their communication as a team was on point! By the end of the cohort, the group was getting weekly requirements knocked out early and started opening their own issues and making tickets!

![Collab Lab's last sprint check-in](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F397187f6-46ce-41e5-8098-dd2f802f5b68%2F707AA117-3DAF-40C8-94EC-94EB1F4490F8.jpeg?table=block&id=6d7afc66-f3ab-4e1e-b16a-2811a05d25cd&width=5120&cache=v2)

After this cohort, Jennifer and Aisling went on to a new pilot program from Collab Lab. There should be more info on that coming soon! 

What I'm really trying to say from all this is that this is an excellent group of software developers and you should totally hire them! Checkout our About Us page to get in contact with them!
Flutter?
Tags: flutter, mobile
Published: 2020-05-31 17:51:42

---
title: Flutter?
published: true
description: What's flutter
tags: #Flutter #Mobile
---
#Flutter Kezako?
![Alt mvn](https://www.appstud.com/wp-content/uploads/2020/01/72AF9324-C50A-42F9-9236-C21DB13B90D9.png)
**Flutter** is an open source framework for multi-platform application development created by **Google in 2017**. Flutter supports mobile (Android & iOS), desktop (Windows, Mac OS, Linux etc), embedded devices (Raspberry Pi , Google Home Hub etc) and web. Flutter uses Android and iOS SDKs to render natively, whether using Material Design or Cupertino. It is possible to render an application using material design on iOS, as well as a Cupertino application on Android. As with all iOS application development, a macOS machine is required to compile the iOS application.
 
#The Dart language
Flutter is based on **Dart**, a programming language developed by Google that is very easy to learn.
For developers who are used languages like C#, Java or even JavaScript, the syntax of Dart should look familiar. The [Dartpad](https://dartpad.dev/)  is a very useful tool for training. Dart already existed before the birth of Flutter because Google designed it for the web. It was beginning to fall into oblivion, but the programming language is regaining popularity with the arrival of Flutter. In fact, it is one of the main reasons for the success of Flutter among developers. Today, Flutter is the only mobile SDK that provides reactive views without interpreted code.
![Alt mvn](https://miro.medium.com/max/1400/1*f-DNPnkA6gB5wkT_TVVpSQ.gif)

 
#Widgets
One of the fundamental principles of Flutter is that everything is a widget. Flutter widgets are built using a modern framework inspired by React. The main idea is that you build your user interface from widgets. Each widget is used to describe what their view should look like based on their configuration and status. Flutter widgets integrate all platform differences such as scrolling, navigation, icons and fonts, and your Flutter code is compiled into native ARM machine code using Dart's native compilers.
 
#The hot reload
Flutter includes hot reloading functionality that allows you to quickly test user interfaces, features, and fix bugs during debugging. Hot reloading works by injecting the modified source code into the running Dart virtual machine (phone, emulator or simulator). Once the new code is injected, the framework rebuilds the widget tree. Another time saving for developers!
![Alt mvn](https://buildflutter.com/wp-content/uploads/2018/04/UIChange.gif)
 
Conclusion
Flutter seems to be a very promising framework. The Dart language as well as the widget system are easy to handle. The development is done quickly and quite simply. Here's a course complete enough to get started with Flutter: [App Brewery](https://www.appbrewery.co/courses/851555) 
![Alt mvn](https://www.filepicker.io/api/file/rJsojwbiQCGfWUWkDv6b)
Build a Quiz App | JavaScript Project Tutorial (Video Format)
Tags: javascript, tutorial, css, codenewbie
Published: 2020-05-31 17:45:33

{% youtube 2dFsIQGYMA8 %}

In this tutorial, we will build a Multiple choice Quiz Project with HTML, CSS & JavaScript. This project-based tutorial is suitable for all especially Beginners.

We will also be styling the entire application and build Awesome Glowing NEON Button using modern styling practices. This video will not only teach you how to build a quiz application, but it will breakdown the steps you need to take when building any project.

We will be using modern JavaScript best practices to create this application. By the end of this video you will have an entire quiz application built which can be easily extended and customized.

📕 Concepts Covered in this Video:

 - How to create Awesome Animated Responsive Dynamic Product Cards
 - CSS Flexbox
 - JavaScript DOM 
 - Box Shadow
 - CSS Transform
 - Event Listener
 - setInterval function

[**SUBSCRIBE**](https://www.youtube.com/channel/UCBF2LIwr2Odb3-pRnNBRegA?sub_confirmation=1) our [**Youtube channel**](https://www.youtube.com/channel/UCBF2LIwr2Odb3-pRnNBRegA) if you want to get notified for more real-world **project-based tutorials**

Share this [video](https://youtu.be/82PZQ6NdCSk) with a friend

Let’s connect:
[Twitter](https://www.twitter.com/codeleague7) 
[Instagram](https://www.instagram.com/codeleague7)
[Github](https://www.github.com/codeleague7)
Leetcode Problem: Group Anagrams
Tags: java, leetcode, programming
Published: 2020-05-31 16:57:11

---
title: Leetcode Problem: Group Anagrams
published: true
description: 
tags: java, leetcode, programming
series: programming-exercises
---

## Background
Recently, I decided to solve some of the problems in leetcode.com for fun and practicing my java which I have not used in a while. I decided to document my thought process as I solve these problems. You can find some of the other solutions in the series table above this section.

## Problem
[Group Anagrams](https://leetcode.com/problems/group-anagrams/)
Given a list of strings, return a list where all anagrams are grouped together. 

```
Input: [ate, cat, tac, eat, mat, tea, tam, bat]
Output: [[ate, eat, tea] [cat, tac], [mat, tam], [bat]]
```

### Note
A word is considered an [anagram](https://en.wikipedia.org/wiki/Anagram) of another if it can be formed by rearranging all the letters of the first word.

## Solution
### Finding an anagram
There are a couple of ways to finding if a word is an anagram of another. 

#### Sorted String
If you have two string `bac` and `cab` if you sort them, they both result in the same string `abc`. Hence they are anagrams of each other. 

#### Count of characters
With the same two strings `bac` and `cab` if you can count the number of characters in each one of the like `{ a: 1, b: 1, c: 1 }` and if these match, then they are anagrams of each other. 

### Grouping Anagrams
My first thought was that counting characters might not be straightforward. So I went with the sorted string approach. 

The rough algorithm was: 
1. Initialize an empty map which will store `SortedString -> List of original Strings`
2. For every string in the list,

    2.1 Sort the string

    2.2 If there is an entry in the map for the string add current string to the list.

    2.3 Create a new list with this element and add it to map. 

3. Return a list of all values in the map.

This yields the following code: 

{% gist https://gist.github.com/deepakvenkat/a1db4426c1b6dc1adcc69f7d4c671f90 file=groupAnagrams.java%}

#### Complexity
The complexity of this solution is `O(n.m.logm)` where is *n* is the number of strings in the list and *m* is the average length of the strings in the list. 

### Note
After solving this, I went through the solutions in leetcode, and found that you can use the character count solution to get a better `O(n.m)` solution. I will attempt that next.
AR Design
Published: 2020-05-31 16:49:55

[AR design tools & a few UX principles](https://uxdesign.cc/ar-design-tools-a-few-ux-principles-96f989511783)

[Prototyping for AR - WWDC 2018 - Videos - Apple Developer](https://developer.apple.com/videos/play/wwdc2018/808)

Prototyping doesn't require fancy tools but some paper labels and camera app is enough to test most of the things.

To test a design the simplest first step is to just print the labels and add them to the real world the way they would be in the app.

1. Test designs in context
2. Find issues early
3. Get new ideas

In the video they found things like it's important to keep the label faced to the camera, a lot of text and small labels make it hard to read, and having some way to label the object helps to see what the label is for.

## Torch

[](https://www.torch.app/)

I don't like the fact that they don't have any simple objects like boxes to play with but you need to import everything.

## Reality Composer

[‎Reality Composer](https://apps.apple.com/us/app/reality-composer/id1462358802)

Great tool for testing AR designs. They have a bunch of different 3D objects to put to the real world. Seems to be working well even on iPhone 6s. Very similar to Torch but better but my tests weren't very comprehensive.

[Sketchbox - #1 design & collaboration tool for AR/VR](https://www.sketchbox3d.com/creation#home-start-trial)

This seems to be more sophisticated software for VR glasses so I can't test it right now as I don't have one.

[Wiarframe | The Home of AR Design](https://www.wiarframe.com/)

Maybe a little bit more complex than Reality Composer and it offers desktop editing but imo it's not required in most of the cases and by having too complex tools just ruins the idea of quick testing.
🛑🛑 All You Need To Know About Automation Testing Life Cycle.
Tags: testing, tutorial, beginners, webdev
Published: 2020-05-31 16:48:02

In this video, We are discussing the Life cycle of automation Testing, This is Day 1 of the series of Automation Testing for Beginner.

✅ If you are new consider subscribing and follow day by day to become an Automation Testing expert in 30 days.


[![30 Days of API Testing](https://i.imgur.com/B5XTdw4.png)](https://youtu.be/Uk8iDmacN0U "30 Days of API Testing")




🚀 Important Links :  
- https://en.wikipedia.org/wiki/Test_automation
- https://www.guru99.com/automation-testing.html
- https://www.testing-whiz.com/blog/understanding-the-dynamics-of-automation-testing-when-how-and-why


🚀 Day 1 Task :  Look up some definitions for ʻAutomationʼ, compare them against definitions for 'Test Automation'.


🚀 Thread :  https://scrolltest.com/automation/day1


🚀 All Task List : https://scrolltest.com/automation/task


🚀 Watch Full Playlist : https://scrolltest.com/automation/playlist


🚀 What is Automation Testing?

Automation testing is a Software testing technique to test and compare the actual outcome with the expected outcome. 

This can be achieved by writing test scripts or using any automation testing tool. 

🚀 What is Test automation?

Test automation is used to automate repetitive tasks and other testing tasks which are difficult to perform manually.

🚀 Life Cycle of Automation Testing

 1. Scope of Test Automation
 2. Selection of Automation Tool
 3. Test Plan, Design, Strategy
 4. Test Environment setup
 5. Test scripts and Execution
 6. Test Results and Reports

🚀 Why we do Automation Testing?

 - Eliminate the manual efforts
 - Ad hoc Test- cases are required to run.
 - Rerun the critical or important cases continuously.
 - Long manual flows are tidies