teleren/devto huggingface dataset:
Adventures with a copycat
Tags: watercooler, blogging
Published: 2020-06-19 13:18:51

## Prologue

I have a blog, Code4IT.dev, where I publish content mainly related to .NET.

On April I started writing an article about Enums in C#: it's a small topic, so it was hard to find good ideas to create a complete and interesting article. 

In the end, while doing researches I learned more than I expected, so I split the article in 2 parts:
[__5 things you didn't know about enums in C#__](https://www.code4it.dev/blog/5-things-enums-csharp) and [__5 more things about enums in C#__](https://www.code4it.dev/blog/5-more-things-about-enums-csharp)

It took me about 8 hours to write, correct, publish, share etc those articles, and I'm proud of it.

## An unexpected event

Today on Twitter a bot shared an article called __5 Things You Should Know About Enums in C#__. _It reminds me of something! Let me read it..._

Yes, __that was a copy of my article!__ Someone (a guy called David S) just changed the name of the Enum used as example, and changed some words.

__Come on, if you have to copy, do it better!😅__

## Action

Time for revenge! Or better, public shaming!
I retweeted his article, and I congratulated him for his copycat skills.

{% twitter 1273950078533804033 %}

_Yes, at the time of writing I'm disguising as a woman. I'm running an experiment, so in 3 weeks I'll be back to my normal form._

Of course he deleted the original tweet and changed his username.

So, I retweeted my previous tweet asking him to at least delete MY article

{% twitter 1273954318757101571 %}

## Conclusion

He finally did it. 

Even if the link still appears in the navigation, my article is no longer visible.

He didn't apologize, but just delete my article is enough for me!

## Final words

It takes effort to come up with new ideas, organize and write them down. I was really upset about this situation.

Personally I write articles for fun, because it's a way for me to learn and to share useful (I hope) content with others.

I'm really, REALLY happy when I receive feedbacks: also, if you find something interesting that you want to talk about in your blog, I'm happy to know that I had a very little part in someone else's life. 

But please, don't copy-paste to your blog! Learn, rework, link to the source, __put something of you in your articles__! 

Have you ever had a similar experience?
What are the common bugs in iOS apps
Tags: ios, swift
Published: 2020-06-19 13:17:28

We analysed 2,000,000 bugs reported from android apps in Finotes as of 2 June 2020, 11.59PM GMT.

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

Read this blog to know about our findings.

https://www.blog.finotes.com/post/what-are-the-common-bugs-in-ios-apps
Road to Genius: smart #22
Tags: javascript, beginners, computerscience
Published: 2020-06-19 13:17:22

Each day I solve several coding challenges and puzzles from Codr's ranked mode. The goal is to reach genius rank, along the way I explain how I solve them. You do not need any programming background to get started, and you will learn a ton of new and interesting things as you go.

![coding challenge](https://dev-to-uploads.s3.amazonaws.com/i/t5ewf5q4t4jfu9lxnwc1.png)

I solved two super easy challenges which are not worth mentioning, but then this one is a game changer. Quite a lot of code, but as you may know by now, whenever we have to fix bugs it's not necessary to fully understand the code in order to complete the challenge.

We need to fix the bugs 💰 and 🍎, don't be scared of the amount of complex code, it's easier than it looks. The first bug needs to be an operator, the line of code is:
`if (res 💰 MAX_INTERGER - 1 || res < -1 * MAX_INTERGER)`
Fortunately for us, the variable names used in this line of code reveal the nature of the code. First off, the variable `res` is usually shorthand for result, response or in this case residue (aka remainder). If we simplify the code above it's actually doing the following:
`if (remainder 💰 VERY_LARGE  or  remainder < VERY_SMALL)`
Since the second operator is `<`, the first one is likely going to be `>` or `>=`, one of these will be mathematically more correct, but that's beyond the scope of this post right now.

The second bug 🍎 is the declaration of a variable, to fix it we need to find some variable that hasn't been declared before, and that is `acc` (the accumulator).

![coding challenge answer](https://dev-to-uploads.s3.amazonaws.com/i/jjnbaymb6dxem0pmc8oc.png)

By solving these challenges you train yourself to be a better programmer. You'll learn newer and better ways of analyzing, debugging and improving code. As a result you'll be more productive and valuable in business. Join me on the Road to Genius and upgrade your programming skills, at https://nevolin.be/codr/
This is Me Showing Up
Tags: womenintech, codenewbie, devjournal
Published: 2020-06-19 13:15:57

_This post was originally published on June 19, 2020 on [my blog] (https://alexlsalt.github.io/blog)._

I'm so tired today. It would be so easy to not open up the laptop and write my small piece here, but I want to show up for myself - because I said I would. And that's building integrity with myself.

It's Friday, so I'm ready to rest and relax and enjoy the weekend. Lots of reading and sun-lazing to be done before jumping back into the thick of things when Monday rolls back around.

I think next week I'll probably unveil my latest project (yay!) but I don't think it'll be a huge announcement or anything like that. I'm more going for the slow burn of a sustainable thing than a bright and spectacular explosion all to fizzle out in a short matter of time.

So if you're reading this and you're a gal who codes and you want more time to pursue your creative pursuits and coding projects, make sure to watch this space :)


Thanks so much for reading along! [Now let's be friends over on Twitter >>] (https://twitter.com/alexlsaltt)
Low Code App Development Platforms
Published: 2020-06-19 13:14:15

Low code application development is a visual development approach. The low code platforms allow developers of varied level of experience to create mobile and web applications. They can easily use drag and drop components and model-driven logic through a graphic user interface. Using these platforms, non-technical developers can minimize the need to write code. It also helps professional developers by removing tedious infrastructure tasks required in app development. 

Using [low code app development platforms](https://www.techaheadcorp.com/blog/low-code-development-platforms/), developers and entrepreneurs can create, iterate, and release application in a fraction of the time it takes via conventional methods. It improves productivity and reduces cost as well. This modern method of app development can be utilized to produce full range apps for different businesses.
Using ruby reduce method for refactoring.
Tags: ruby, rails, refactoring
Published: 2020-06-19 13:13:11

### Using ruby 'reduce' method for refactoring our frequently used code.

Assume we have `Employee` class which has more than 20 attributes. We have a method `basic_details` to fetch the 
details of basic 5 predefined attributes value. 

Generally using loop, the code will be as follows.

```ruby
class Employee
  BASIC_FIELDS = ['name', 'age' , 'gender', 'email', 'designation']
  attr_accessor :name, :age, :gender, :education, :email, :designation 
  # + some additional 20 attributes

  # code without refactoring to fetch the basic_details
  def basic_details
    details = {}
    BASIC_FIELDS.each do |attr|	
      details.merge!(attr => send(attr))	
    end
   details
  end
end

```

We shall use `reduce` method to refactor the `basic_details` as follows

```ruby
class Employee
  BASIC_FIELDS = ['name', 'age' , 'gender', 'email', 'designation']
  attr_accessor :name, :age, :gender, :email, :education, :designation 
  # + some additional 20 attributes

  # code using reduce method
  def basic_details
    BASIC_FIELDS.collect{|attr| {attr => send(attr)} }.reduce({}, :merge)
  end
end
```
Hugo + OpenTelemetry - How fast is my site? (Video, Pt. 2)
Tags: opentelemetry, tutorial, javascript
Published: 2020-06-19 13:13:01

We love Hugo for building blazing-fast static sites, but it can be tricky to understand how well they perform for everybody. There can be hundreds or thousands of variables from an end-user's browser, to their ISP, to the vagaries of routing and content delivery networks around the world. Wouldn't it be nice if there was a simple way to quickly understand the performance of your static site? OpenTelemetry makes that easy! You can see how to add OpenTelemetry in my previous video - {% link lightstep/hugo-opentelemetry-how-fast-is-my-site-video-pt-1-2dl4 %}

Once you've integrated OpenTelemetry into your site, how do you actually get the data somewhere that you can analyze and review it? In this video, we'll walk through the configuration and deployment of the OpenTelemetry Collector in a Kubernetes cluster, and expose it to the world via HTTP. I'll show you how to add some interesting attributes to the automatic instrumentation that you can analyze later, and we'll see how you can easily connect your OpenTelemetry Collector to Lightstep in order to visualize the traces being emitted.

{% youtube ovMM3-GYd4o %}

We're almost there - the last step is getting ready for production by configuring HTTPS on our Collector. Keep an eye out for the wrap-up post where I'll write up the entire journey, and offer some suggestions on how to add OpenTelemetry to your site!

**Links and References**

{% github open-telemetry/opentelemetry-js no-readme %}
{% github open-telemetry/opentelemetry-collector no-readme %}

**Questions? Comments? Want to watch the next show live?**
[Follow me on Twitter for all the latest!](https://twitter.com/austinlparker)
[Follow On-Call Me Maybe on Twitch!](https://twitch.tv/oncallmemaybe)
Full Stack Development – Why Programmers Should Consider It
Published: 2020-06-19 13:12:16

Full Stack Developers are professionals who have acquired skills for back end as well as front end development. These software experts can work with most of the programming languages and can help in developing your desired application.

[Full-stack development](https://www.techaheadcorp.com/blog/full-stack-development/) is beneficial over regular app development because of developers' wide range of knowledge on various aspects of the MVP development. They can manage customer-end as well as server-end of the app development. If you are looking for a skilled and experienced full stack developer, then kindly reach out to us.
How to detect memory leaks in watchOS apps
Tags: watchos, ios, swift, objectivec
Published: 2020-06-19 13:03:09

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

Developers can now use Finotes to detect memory leaks in watchOS apps. More details in this blog.

https://www.blog.finotes.com/post/how-to-detect-memory-leaks-in-watchos-apps-that-are-created-using-objective-c-or-swift
DAY 9: RECURSION
Tags: python, beginners
Published: 2020-06-19 12:40:08

When I was learning programming in school I never understood what recursion was and kept getting confused. I thought I would never have to write such code again and you can imagine my surprise when I saw this challenge.

Luckily, I did some research on it yesterday and looking at the explanation and code in Python it was quite simple to grasp as it was clear plus I read it like three times to get the gist of it.

Basically a recursive function is a function that calls itself.

**The Task:**
Write a factorial function that takes a positive integer, N as a parameter and prints the result N! of (N factorial).

```python
# defining my function that accepts an integer.
def factorial(num):
    # if the integer is 1 then the function returns the value 1
    if num ==1:
        return num
    #if the intege ris not 1 then it calculates the factorial by calling the same function we created subtracting 1 from the integer.
    else:
        return num * factorial(num -1)
         
'''
Sample Input

3

Sample Output

6
'''
```
Homeschool - learning in a community
Tags: tutorial, serverless, testing, aws
Published: 2020-06-19 12:33:33

Ant Stanley and I started [Senzo](senzo.io) on the belief that there is huge value in learning face to face, with others in the room to augment and expand your understanding. We hope Senzo [Homeschool](homeschool.dev) will take the best of those possibilities in a time when the physical classroom is not viable.

Homeschool combines some of the best collaboration tools on the market with access to excellent teaching in subject areas that drive your empowerment and learning.

## How Homeschool works
![how to homeschool](https://dev-to-uploads.s3.amazonaws.com/i/2to90qzv8qf7r09ruwuf.png)

Homeschool works in weekly sprints. 

*Monday*: Lectures, exercises and course materials are released. 

Over the next couple of days, you work on the exercises set in the lesson, collaborating with your class mates in chat. Any questions can be submitted to the instructor as well as crowd-sourcing answers from each other.

*End of the week*: live Q&A with the instructor. 

Ask questions, go over sections that people need clarification on and share your learnings. The correctly completed exercises will be shared so you're ready for the next week's materials.

Our next courses are: 

- [Testing Serverless Apps using Hexagonal Architecture](https://homeschool.dev/class/testing-serverless-apps/), 22 June (2 weeks) £200, €220, $200
- [Serverless for Frontend Devs](https://homeschool.dev/class/serverless-for-frontend-devs/), 6 July (4 weeks) £400, €440, $400

## Building a community of learning

You retain access to all the services in perpetuity, including the chat channels, so you can carry on learning from each other.

![Homeschool Learning Spectrum](https://res.cloudinary.com/senzo/image/upload/c_scale,w_800/v1587374231/senzo/homeschool_spectrum.png)

In the spectrum of how we learn from self-paced study through to heavily structured, multi-year, on campus learning, we hope Homeschool has the right balance. We aim to provide feedback and flexibility that allows you learn fast whilst also being supported, in these interesting times we're living in.
Apache Web Server Hardening
Tags: security, beginners, devops, cloud
Published: 2020-06-19 12:28:46

The web server has a crucial role in web-based applications. Since most of us leave it to the default configuration, it can leak sensitive data regarding the web server. Apache is one of the most popular and widely used out of all of them. Because of this popularity, it is also most vulnerable to cyber-attacks. 

By applying numerous configuration tweaks we can make Apache withstand malicious attacks up to a limit. Most common misconfiguration and hardening techniques are:

### Hide Server Version Banner

The default Apache configuration will expose the server version. This information might help an attacker gain a greater understanding of the systems in use and potentially develop further attacks targeted at the specific version of the server.

### Alter Server Banner

Change server details to misdirect the attacker.

### Disable Directory Listing

By Apache’s default configuration, If your web server root directory doesn’t contain index.html, the user can see all files and subdirectories listed in the web root.

### Make use of mod_security

mod_security works as a firewall for web applications. It can also be used for real-time web application monitoring and logging. You can install mod_security from your default package installer. 


### Make use of mod_evasive

mod_evasive provides effective actions against Distributed Denial of Service (DDoS/DoS) attack or brute force attack. Its capabilities also extend to work with ipchains, firewalls, routers, and more. mod_evasive reports events via email and syslog facilities.

### Hide ETag Header

The ETag header involves quite a significant number of sensitive details regarding your server. It's interesting that for PCI-compliance it is required to hide the Etag header.

### Disable CGI and SSI

SSIs are directives present on web applications used to feed an HTML page with dynamic contents. They are also capable of opening your website up to a certain number of security issues if left unchecked. The same case happens for the CGI scripts. So as to prevent hackers from injecting malicious scripts in your code.


### Setting the HTTP Limits

Setting up some HTTP limits can defend against DDoS (Distributed Denial of Service) attack, it is really easy if you know the sort of actions to look out for. 

### Enable XSS Protection Header

Cross-site scripting (XSS) is a common vulnerability found in web applications. X-XSS-Protection header can prevent some level of XSS (cross-site-scripting) attacks.


A more detailed version on how to implement these Apache webserver hardening techniques to improve security published [here](https://blog.beaglesecurity.com/blogs/2020/06/15/Apache-Web-Server-Hardening.html)
Did you know about HTML5 figure tag?
Tags: html, ux, css, javascript
Published: 2020-06-19 12:25:59

###HTML5 introduced the figure element, along with the related figcaption. Used together, these items wrap a visual representation (like an image, diagram, or chart) along with its caption. This gives a two-fold accessibility boost by both semantically grouping related content, and providing a text alternative that explains the figure.###

###For data visualizations like charts, the caption can be used to briefly note the trends or conclusions for users with visual impairments. Another challenge covers how to move a table version of the chart's data off-screen (using CSS) for screen reader users. ###

###Here's an example - note that the figcaption goes inside the figure tags and can be combined with other elements:###

```
<figure>
  <img src="roundhouseDestruction.jpeg" alt="Photo of Camper Cat executing a roundhouse kick">
  <br>
  <figcaption>
    Master Camper Cat demonstrates proper form of a roundhouse kick.
  </figcaption>
</figure>
```
Take the Upper Hand in Your Salary Negotiation
Tags: career, freelancing, beginners, codenewbie
Published: 2020-06-20 02:10:08

---
title: Take the Upper Hand in Your Salary Negotiation
description: It's hard to negotiate salary, especially when you're a new dev. I'll teach you to flip the power dynamic by being able to walk if you don't get what you want.
published: true
date: 2020-06-19 12:23:00 UTC
tags: career,freelancing,beginners,CodeNewbie
canonical_url: https://raddevon.com/articles/take-the-upper-hand-in-your-salary-negotiation/
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/aypz7sy9bi2rqfmdhnnp.jpg
---
{% youtube q9ZEu2ktOCU %}

Video Notes
-----------

It’s not easy to negotiate salary, especially when you’re a new developer. In this video, you won’t learn ways to trick people into paying you more than you’re worth. You’ll learn to actually flip the power dynamic by being able to walk away if you don’t get exactly what you want.

If you like the idea of tipping the scales by starting with freelancing, [my free crash course](https://raddevon.com/enroll-in-the-freelancing-crash-course/) will help you get your business going!
June 19th, 2020: What did you learn this week?
Tags: weeklylearn, discuss, weeklyretro
Published: 2020-06-19 12:17:29

It's that time of the week again.

So wonderful devs, what did you learn this week? It could be programming tips, career advice etc.

<center>

![PSA "Learn to use the Internet Level II](https://media.giphy.com/media/SPZFhfUJjsJO0/giphy.gif)

</center>

Feel free to comment with what you learnt and/or reference your TIL post to give it some more exposure.

{%tag todayilearned %}

And remember, if something you learnt was a big win for you, then you know where to drop it as well.👇👇🏻👇🏼👇🏽👇🏾👇🏿

{% link https://dev.to/devteam/what-was-your-win-this-week-k04 %}

<center>

![Wrestler screaming "Yes!"](https://media.giphy.com/media/2RGhmKXcl0ViM/giphy.gif)

</center>
Top 10 Web Scraping Tools and Software Compared
Tags: saas, webscraping, tool, analysis
Published: 2020-06-19 12:06:18

Looking for getting hold of large quantities of data?

But you can not do it by manually copy and paste.

So there is only a way to scrape the data.

All you need to do is get hold of a robust web scraping software/tool that can automate the web scraping process and relieve you of all the burden of monitoring and managing a web scraping process in-house.

You might think that there are hundreds of tools in the market, which one is best?.

We have put together a comprehensive analysis of the top 10 web scraping tools for you to choose from.
Running Geo Django on ElasticBeanstalk
Tags: django, testing
Published: 2020-06-19 12:04:40

I want to share you [this story](https://blog.maddevs.io/running-geo-django-on-elasticbeanstalk-fd7b9862fb2c?source=friends_link&sk=c82987a32efd53ed2952e0320eeba448) because I wasted about 14 hours to realize how to achieve it correctly...
Replacing your website background with live videos. : 3 LINES OF CODE
Tags: showdev, webdev, html, beginners
Published: 2020-06-19 12:01:36

#Look at this

If you find this pretty amazing then go ahead! 
This article is for you🥳

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

#Playing a YouTube Video in HTML
To play your video on a web page, do the following:

1) Upload the video to YouTube
Take a note of the video id
2) Define an <iframe> element in your web page
3) Let the src attribute point to the video URL
4) Use the width and height attributes to specify the dimension of the player
5) Add any other parameters to the URL (see below)

Define the HTML TAG AS-

Tag open (iframe width="420" height="315"
src="https://www.youtube.com/embed/Your_URL">
/iframe) Tag Close

For AUTOPLAY JUST ADD

autoplay=1  IN THE URL. 

At last if you find this interesting give it a like! 

😍
Daily Developer Jokes - Friday, Jun 19, 2020
Tags: jokes, dailydeveloperjokes
Published: 2020-06-19 12:00:25

---
title: "Daily Developer Jokes - Friday, Jun 19, 2020"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
cover_image: "https://private.xtrp.io/projects/DailyDeveloperJokes/thumbnail_generator/?date=Friday%2C%20Jun%2019%2C%202020"
published: true
tags: #jokes, #dailydeveloperjokes
---

Generated by Daily Developer Jokes, a project by [Fred Adams](https://xtrp.io/) ([@xtrp](https://dev.to/xtrp) on DEV)

___Read about Daily Developer Jokes on [this blog post](https://xtrp.io/blog/2020/01/12/daily-jokes-bot-release/), and check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/).___
### Today's Joke is...
![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258eb1a429.png)

---
*Have a joke idea for a future post? Email ___[xtrp@xtrp.io](mailto:xtrp@xtrp.io)___ with your suggestions!*

*This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit.*

<!-- 
Joke text:
___Q:___ Why was the developer's family upset with them at dinner?

___A:___ They forgot to git squash before going home
 -->