teleren/devto huggingface dataset:
Spring Boot multi-module architecture and Angular frontend for a blog application
Tags: java, angular, architecture, beginners
Published: 2019-10-10 12:53:49

We just published a course on Udemy: https://www.udemy.com/course/build-your-blog-from-zero-to-hero/?couponCode=BOOTYOURSKILLS, where we present how to create a multi-module architecture in a Spring Boot and also how to create and put in production a real world application.
We decided to use a clean architecture as a base.

![Multi module architecture](https://thepracticaldev.s3.amazonaws.com/i/pukufoyfiokkrwxi31zy.jpg)

We will have 3 modules: core, web and admin. Core is the main module and all the dependencies point towards it. The only dependency from core is ‘javax.validation’, because we need it in annotations (so we just married one dependency). Admin module will use Thymeleaf template engine and it will be an application that runs on your computer — it will allow you to add blog posts. You can write posts with CKEditor. Web module will expose endpoints to retrieve blog posts (also we will implement backend pagination).
The frontend application that will actually display the blogposts will be written in Angular 8.

The result can be found at: http://coddifyblog-env.pcgxyyztrp.eu-west-1.elasticbeanstalk.com/
Thank you very much for your attention and hope this will help you!
Quick Tip — Using The Chrome DevTools FPS meter
Tags: fps, chromedevtools, animation
Published: 2019-10-10 16:43:45

---
title: Quick Tip — Using The Chrome DevTools FPS meter
published: true
date: 2019-10-10 12:53:05 UTC
tags: fps,chrome-dev-tools,animation
canonical_url: https://medium.com/@gilfink/quick-tip-using-the-chrome-devtools-fps-meter-1bb400b63f7
---

### Quick Tip — Using The Chrome DevTools FPS meter

One of the hidden gems in Chrome DevTools is the FPS meter. The FPS meter enables you to monitor frames per second during runtime. It’s very useful for animation monitoring and can help you to understand if you are running below 60 FPS.

How do you use the FPS meter? This is what this short post will cover.

#### Using The Chrome DevTools FPS meter

Open the Chrome DevTools and then open the Command Menu by using _Control+Shift+P_ in Windows or _Command+Shift+P_ in Mac. In the Command Menu, type ‘Show frames’ and pick the first option (should be “Show frames per second (FPS) meter”):

![](https://cdn-images-1.medium.com/max/1024/1*9nJTneMtP0K3VgJ8OvjFGw.png)<figcaption>Showing the FPS Meter</figcaption>

Doing this will open the FPS meter and you will be able to monitor your FPS. You can also open the Rendering tab and just check the FPS meter checkbox.

Here is how the FPS meter looks like:

![](https://cdn-images-1.medium.com/max/555/1*EMgZClU2gA76kYMPYMWMPw.png)<figcaption>FPS meter</figcaption>

If your animation is running in 60 FPS then it should look smooth. Below 60 FPS means that some frame rendering is taking too long and the animation might not look smooth and may be even janky. Another thing that is shown in the FPS meter is the GPU memory usage. In the previous figure it’s 26.3 MB out of 1024 MB, which means low GPU usage.

After you finished your monitoring you can close the FPS meter. To do so, in the Command Menu search for ‘Hide frames’ and pick the first option (should be “Hide frames per seocnd (FPS) meter):

![](https://cdn-images-1.medium.com/max/1024/1*LGBiNCD8RLDPiH9AWdLN4w.png)<figcaption>Hiding the FPS Meter</figcaption>

Another option is to open the Rendering tab and uncheck the FPS meter checkbox.

#### Summary

In this short post I showed you how to use the FPS meter in Chrome DevTools to monitor your animation FPS.
So today I bought some stickers on the dev.to shop 😎
Tags: hacktoberfest, stickers
Published: 2019-10-10 12:26:57

Every once in a while I attend local conferences and meetups here in Harare, Zimbabwe and sometimes I get to leave with a bag full of swag (t-shirts, stickers, mugs, you name it).

It is a strangely amazing feeling of belonging to a community when you get to wear that [#Hactoberfest](hacktoberfest.digitalocean.com) tshirt, slap your laptop with [forLoop](https://www.forloopzim.co.zw/meetups) stickers or drink from that cool [dev.to cup](https://shop.dev.to/collections/she-coded/products/she-coded-mug-1).

I feel so lucky to have found an online community that really embraces me as a developer, and that is [the DEV🖤 community](https://dev.to). I would like to see this community live on and on as long as humanely possible because it gives us a voice to be heard and a platform to connect with other like minded developers.

When I'm burned out, I can talk to other developers here and get advice on how to handle certain scenarios. When I'm stuck whilst writing code, I can find technical articles that are really helpful, and it's generally a nice place to hang out and chat.

So today I visited [shop.dev.to](https://shop.dev.to) and browsed through all the merchandise. The merch is absolutely high quality but I chose to buy stickers (coz I really ❤ 'em stickers, and they are the only thing I could afford 😂).

I hope my tiny tiny contribution to this community will go a long way to ensure its sustainability.


---
Cheers 🥂
[@kudapara](https://twitter.com/kudapara)
Kubernetes Logging 101
Tags: kubernetes, logging, devops, containers
Published: 2019-10-10 11:48:39

Understanding the inside of your Kubernetes cluster is vital to system and application performance. Logs provide that insight, by understanding and reviewing your logs, you can fine-tune your applications and ensure the stability of your system. When debugging problems and monitoring cluster performance logs are particularly handy. Compared to traditional applications and services Kubernetes maintains its logs much differently.Learn more about kubernetes & the best practices about Logging.
https://www.magalix.com/blog/kubernetes-logging-101
Kubernetes 101 - Concepts and Why It Matters
Tags: kubernetes, concepts, devops, docker
Published: 2019-10-10 11:42:46

If you are into the DevOps or the IT field in general, you surely heard the term Kubernetes. In this article, we explore Kubernetes from a 10,000 ft. We’ll also shed light on some of its most important use cases and best practices.Learn more about what is kubernetes & why it is important? 
https://www.magalix.com/blog/kubernetes-101-concepts-and-why-it-matters
Kubernetes myths; app security 101; & change management in teams
Tags: todayilearned, architecture, security, kubernetes
Published: 2019-10-10 11:30:27

*TL;DR versions of articles I read today on software engineering. [Sign up for my newsletter](https://mailchi.mp/appsmith/insnippets?utm_source=devto&utm_medium=post1&utm_campaign=is) to receive these in your inbox every weekday.*



### [Kubernetes in production vs. Kubernetes in development: 4 myths](http://bit.ly/kubernetes-myths)

* Myth #1: Running Kubernetes in dev/test gives you a firm handle on your operational needs.
* Myth #2: You have got reliability & security all figured out.
* Myth #3: Orchestration makes scaling a cinch.
* Myth #4: Kubernetes runs the same in every environment.

Here is what I have realized about running anything (not just k8s) in dev/test environments vs running it in production: **Running services locally is like playing with lego blocks - you join small simple pieces together to make what you want. Running in production is like building the Windsor Castle. It must be robust and stand the test of time.**

*[Full post here](http://bit.ly/kubernetes-myths), 12 mins read* 

---

### [How to make your app's architecture secure right now](http://bit.ly/secure-architecture)

A good starting point for building secure application architecture 

- **Separate your storage**: Don’t mix core application files & assets with other data. Keep user-uploaded files and activity logs separate from the main app.

- **Customized configuration**: review the configurable features of all architecture components. Look for unattended areas such as: 
   * Default accounts, especially with default passwords, left in service
   * Unnecessary ports left in service, or ports left open to the 
   Internet
   * Unrestricted permitted HTTP methods
   * Default configured permissions in managed services

- **Controlled access and user scope**: focus on access control configurations in the early stages of development. Consider factors such as sensitive tokens, or keys passed as URL parameters, or whether a control fails securely or insecurely. 

*[Full post here](http://bit.ly/secure-architecture), 7 mins read* 

---

### [How should you structure your engineering team?](http://bit.ly/eng-team-change)

Answer: No one size fits all. Structure your team in accordance with what works best in your company's context. Here are 5 things to think about before and during the process of making changes to your engineering team structure:  

* Know what you want to solve with the change - a collaboration, communication, clarity or direction problem
* Consider the impact of the change on other teams & the organization 
* Don’t make change a big deal
* Decide who decides on what 
* Over-communicate all aspects & consequences of change 

*[Full post here](http://bit.ly/eng-team-change), 8 mins read* 

----
Spotify uses Svelte, do you?
Tags: discuss, watercooler, webdev
Published: 2019-10-10 11:11:46

I just found out Spotify(US) is using [Svelte](https://svelte.dev/). 

According to their website, 

> Svelte is a radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue do the bulk of their work in the browser, Svelte shifts that work into a compile step that happens when you build your app.
>
>Instead of using techniques like virtual DOM diffing, Svelte writes code that surgically updates the DOM when the state of your app changes.

Are you using Svelte? If not, would you?
SwiftUI @Environment and BindableObject
Tags: thetealpickle, swiftui, ios, swift
Published: 2019-10-10 10:40:17

---
title: SwiftUI @Environment and BindableObject
published: true
description: Data flow tools for SwiftUI
tags: #thetealpickle #swiftui #ios #swift
cover_image: https://thepracticaldev.s3.amazonaws.com/i/8wt5bnwu0dequny1vz3j.JPG
---

The drop of SwiftUI this summer 2019 shook the iOS/Swift dev game. The way views are created and how data flows through apps have become declarative. BindableObject, Environment, State, Binding are new tools to cut through the waves and make it to the other side.
__________

<h1>Property Wrapper & Protocols</h1>

New in Swift 5.1, property wrappers. Property wrappers wrap property access with additional behavior. @Environment is a property wrapper.

Protocols define a set of requirements which are then implemented by the adopting class, structure, or enumeration. BindableObject is a protocol.

<h1>Environment</h1>

The Environment property wrapper is part of the new Combine framework and is designed as a general purpose container for all types of data. The Environment data is used for indirect data passing and pushes dependencies down the hierarchy. Environment data has read-only access.  

Writing data into the environment is done by using the .environmentObject modifier on the object you would like to go into the environment.

<h2>Environment vs Binding</h2>

Binding is another data flow tool for SwiftUI views, more information can be found here. 

Environment and Binding are two different tools with the same core functionality, passing dependencies through the view hierarchy. If your entire app is a read-only app, the app could be built using entirely one OR the other. The question, how would you like to access your data?

Environment can be leveraged as a work around from passing a model at every view transition point. Environment is like bag full of candy being passed around the group. Whereas with Binding, everyone holds and passes around each individual candy. 

Another note, Binding provides read/write access. Environment is read-only. For data which child views need to be able to update, the Binding wrapper should be used instead.

<h1>BindableObject</h1>

The BindableObject protocol is part of the new Combine framework and is designed to provide an external reference to your custom model and have SwiftUI track attribute changes over time using publishers. 

Combine uses a Publisher, Operator, Subscriber model flow. By conforming your custom model to the BindableObject protocol, the model becomes setup to trigger view changes to all subscribers in the view hierarchy.

BindableObject is a way to bring SwiftUI’s declarative data handling to custom models. BindableObject brings us into the beginning dive into the new Combine framework. A new age.

<b>@thetealpickle on the internet. Namaste.</b>

<I>This article was brought to you by JESSICA JEAN JOSEPH © THETEALPICKLE</I>
How to design a logo (with the rubber duck methodology)
Tags: startup, design, gitduck
Published: 2019-10-10 10:32:36

---
title: How to design a logo (with the rubber duck methodology)
published: true
description: We recorded the full creation of our visual identity. Watch the timelapse.
tags: startup, design, gitduck
cover_image: https://thepracticaldev.s3.amazonaws.com/i/oo8uzb6ugpb7holho6b6.png
---

Designing a logo is always a magical process. What makes something memorable and beautiful? It's rare to document the full design process, with all the alternatives and errors, but as we are building a platform for developers to show how they work, we used it to record how we created our visual identity.

By the way, if you are reading this and you are a designer, you might not know the rubber duck methodology. It’s a technique that you explain a topic to a rubber duck and in the process of articulating your ideas, you can better understand the problem you are dealing with. It's a very common technique used by programmers when they need to better understand a problem in their code.

We think that’s a powerful learning method for both the person doing it or anyone watching it. We believe so much on this method, that we decided to create a platform to allow developers to easily do rubber duck debugging. This platform is called GitDuck and allows programmers to record and share their code, screen and microphone recording in one place. You can see a [demo here](https://gitduck.com/watch/5d6fcc075e065d6d69a278b4).

![Rubber duck methodology](https://thepracticaldev.s3.amazonaws.com/i/g8xowu9u708cxms7cgeg.JPG)

We started designing our logo from a duck icon, but as our platform is generating videos, we thought would be nice to add a play button to the duck. [Honestly, we didn't know if it would work](https://gitduck.com/watch/5d0a90573ed297e1919a2d70).

We used GitDuck to record all our design process. Check the time-lapse of the logo creation. It's funny how fast we got to the final (kind of) version, but then we had to do a lot of fine-tuning to make the logo perfect for all situations.

{% youtube la-7r1nc-TM %}

This is the process we followed. We started with a duck icon, applied the brand colors, added a play button and made a lot of fine adjustments to it. In total, we worked almost 3 hours in the logo (not counting the time we were thinking about it).

![Logo process](https://thepracticaldev.s3.amazonaws.com/i/4sqyrnfi6ntf55qe4lbn.png)

The final result 👇

![GitDuck colors](https://thepracticaldev.s3.amazonaws.com/i/o6ogz9ta9kymnlfz740l.png)

![GitDuck logo](https://thepracticaldev.s3.amazonaws.com/i/hgkl0ymilblbt3sgm5wv.png)

![Tshirt is nice](https://thepracticaldev.s3.amazonaws.com/i/96d66tr8ir4tgj71ry9q.jpg)

What do you think about it?

Check more about GitDuck at [https://gitduck.com](https://gitduck.com) or watch some of the recent [coding sessions here](https://gitduck.com/explore).

Thank you
Advanced PHP Interview Questions 2020
Tags: sql, python, javascript, phpinterviewquestions
Published: 2019-10-10 10:31:18

https://thepracticaldev.s3.amazonaws.com/i/x15qqgm8s7yht4uetlq0.jpg

Do you want to be a software engineer but finding it difficult to crack the interview? You might have an unnerving experience while facing interviews for being a developer. Prepare yourself for the best PHP Interview Questions  2020 with the most frequent asked real-world interview questions published by the Coding Tag. These PHP interview questions have been listed after many pieces of research. Thus, it will help you to set apart during the process of your hiring.
Some of the most frequently asked questions are listed below:
1-	What do you mean by Zend Engine?
Zend Engine is basically used by PHP as a runtime engine as well as a compiler. It works in a way that the loaded PHP scripts are kept in the memory and then compiled in a Zend Engine.


2-	Name some of the latest features introduced by PHP7?
•	Some of the latest features proposed by PHP7 are as follows:
•	AST-based compilation process
•	Unicode codepoint escape syntax
•	Return type declarations
•	Uniform variable syntax and so on. 

3-	What do you understand by Magic Method in PHP?
Magic Functions in PHP are the functions that are being started by a double underscore. For instance “--------”

4-	Name some of the Magic Functions used by PHP5?
A few Magic Functions used by PHP5 are listed below:
•	Call()
•	Sleep()
•	Clone()
•	Unset()
•	Wakeup()
•	Get()
•	toString()
•	construct()
•	destruct()
5-	What is mean by overloading and overriding in PHP?
Overloading in PHP can be defined as the function that is having the same signatures but different parameters. 

While overriding in PHP can be considered similar to other OOPs programming languages. Simply, the parent and child classes while coding must contain a similar function. 

So this is all about a few of the most frequent asked questions by the recruiters. Moreover, if you have an insight into the CSS language then it acts as a piece of cake for you to get the job. You can also refer to CSS Interview Questions to know about the interview questions. 

Read More: https://codingtag.weebly.com/blog/advanced-php-interview-questions-2020
What are your questions for clients before starting a web project?
Tags: discuss, webdev
Published: 2019-10-10 10:21:28

---
title: What are your questions for clients before starting a web project?
published: true
description: A list of questions you need to ask clients before starting a web project.
tags: [discuss, web development]

---

As a web development agency, we need to understand clients' requirements deeply. Could you share some experiences in asking clients before starting a new project?
Primer post
Tags: groovy, personal, asciidoctor
Published: 2019-10-10 10:15:20

Lo primero es lo primero, así que lo primero será presentarse:

Soy un programador que ya peina canas y que ha pasado por algunos lenguajes de programación como Natural, C, C++, Java y en los últimos años Groovy. Me gusta mucho (demasiado) saltar de idea en idea por lo que dificilmente me verás en un proyecto durante mucho tiempo seguido. 

Digamos que en un tiempo pasado me llamaban "el que abre caminos" mientras que ahora ya sólo me llaman "culo inquieto"

Desde hace ya muchos años todas las cosas que ideo o pruebo suelo publicarlas como código abierto en Gitlab y alguna cosilla en Github, además de comentarlas en Twitter (como @jagedn). Por eso me "sorprendió" cuando un buen amigo me dijo:

> tío no has pensado en hacerte en vez de tanto twitter un blog con la tecnología que vas descubriendo


Como me conozco como si me hubiera parido mi respuesta instantánea fue:

> Que tú me preguntes algo asi, el que me conoce mejor que yo
> El que me ha visto empalmarme con 101 groovy y luego hundirme en que lo quiero borrar
> El que vio nacer el blog de pura vida que sólo duro 2 post
> Bueno lo dejo ya que me canso



Es cierto, y reconocido abiertamente, que Twitter me tiene enganchado (no sólo por cosas tech) y que lo uso para dar algunas pinceladas de mis movidas, básicamente por la comodidad de con una o dos frases, y alguna imágen, "pescar" a quien lo lea.

Pero por otro lado prácticamente todos mis proyectos frikadas incluyen su documentación online, con su @asciidoctor y hasta alguno con su diagrama UML. También he estado escribiendo un blog sobre pequeños scripts en groovy de las cosas más variadas ("101-scripts en groovy") e incluso dado alguna charla intentando explicarlos.

De ahí que el consejo de este amigo me dejara un poco descolocado.

Pero por suerte (o desgracia) es un perro de presa y continuó:

> Vale mal formulada
> Pero es que macho con todo lo que sabes y descubres no solo de una tecnología
> Sino de todo general
> Quizá no has dado con la tecla para mantenerlo durante más tiempo


Obviamente el peloteo nos gusta a todos pero ya tengo experiencia en no caer en él y quedarme con la "chicha":

"¿Tal vez no lo estoy haciendo bien? ¿debería dejar Twitter ? ¿Realmente tengo algo que contar?"

así que mi contestación no pudo ser otra que:

> Algun dia lo lamentare ya lo se
> Algun dia le dire a Dani todo lo que no leen tus ojos lo escribi yo
> Me he dado de alta en dev.to
> Que es mejor q medium
> Pero todavia no he escrito nada


y aquí estoy, preguntándome si será buena idea o no abrir este nuevo melón y si realmente tendré algo que contar más que si a alguien le interesará
Evie's Musical Nuggets
Tags: watercooler, productivity, career, motivation
Published: 2019-10-10 09:45:49

## A Selection of the Music I've been Listening to while Coding this Week


- Video game music (check the first track in this mix, from Ape Escape! Throwback!) https://www.mixcloud.com/hotelradioparis/raimunda-sp%C3%A9cial-jeux-vid%C3%A9o-091019/

- The new album from Run Logan Run: spiritual heavy jazz from Bristol https://runloganrun.bandcamp.com/album/k-an

- Mungo's Hifi mix of versions on the Tin Pan riddim https://www.mixcloud.com/scotchbonnetrecords/mungos-hi-fi-tin-pan-versions/

- Other smooth and bass heavy tunes https://www.mixcloud.com/hotelradioparis/columbian-crush-270919/

What music do you like to listen to during a coding sesh? :headphones: