teleren/devto huggingface dataset:
Digital Agency in Mumbai
Tags: digitalagencyinmumbai, digitalmarketingagencyinmumbai
Published: 2021-04-02 06:34:22

Orion Digital Mumbai is one of the top digital marketing agencies which has handled over 500 clients past decade and is capable of delivering the results on time and committed to the client's premises. They provide the Digital Marketing Services like SEO (Search Engine Optimization), Website Development, SEM (Search Engine Marketing), SMM (Social Media Marketing), SMO (Social Media Optimization), Mobile Application Development, ORM Online Reputation Management), Blogging Content Production, Online Advertising Campaign, Article Posting Services...Etc Orion Digital Are Specialist in providing these services and has delivered excellent results for the clients past decade. Hence choose wisely before going to other digital marketing agencies.
For more info about Orion Digital services 

Please Visit: https://www.oriondigital.in/
Design Twitter — Microservices Architecture of Twitter Service
Published: 2021-04-02 06:22:51

Twitter is an online social networking service where users post and read short messages called “tweets”.

Most candidates try to design Twitter as a monolithic service in System Design Interview. If you check several existing online resources, they also try to design Twitter as a monolithic service. However, in our opinion, designing a gigantic service like Twitter as a monolithic service shows that the candidate lacks experience in designing distributed systems. Nowadays, it is a norm to design distributed systems in terms of microservices and even lamdas (or functions). No one is writing a new service as a monolithic service and companies are gradually converting their big monolithic services to a set of microservices. Hence, the candidates should discuss Twitter system design as a microservices architecture.

Here, we will discuss the high-level design of the Twitter service. The Twitter service comprises several micro-services as follows:
* Tweet Service
* User Timeline Service
* Fanout Service
* Home Timeline Service
* Social Graph Service
* Search Service

![IMAGE ALT TEXT HERE]
(https://miro.medium.com/max/4800/0*55pSDB6x62VeNIOS.jpg)

The following is the architecture of different logical components or micro-services in the Twitter service. Please note it is not an architecture of physical components. Also, we are not showing LB in front of each micro-service here for the sake of simplicity.

If you are interested to know more, you can checkout out the below videos where we are discussing the microservices architecture of Twitter in greater details:

[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/1_HIpTBUHAs/0.jpg)](http://www.youtube.com/watch?v=1_HIpTBUHAs)

[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/NSmFpZk4H2I/0.jpg)](http://www.youtube.com/watch?v=NSmFpZk4H2I)

For greater details on the microservices architecture system design of Twitter service, check the chapter on the Twitter System Design in Distributed System Design Interviews Bible.

<a href="https://www.thinksoftwarelearning.com/?utm_source=dev-twitter" target="_blank"><img src="https://dev-to-uploads.s3.amazonaws.com/i/rt9de51qnzcit0w2fs8g.jpg"/></a>

This is a great resource to not just improve your distributed system design skills but also to ace your distributed system design interviews and targeting level L5+ in companies like Facebook, Google, etc. The book/course is still in-progress work. There are already quite a few chapters discussing the design of TinyURL, Twitter, Distributed Cache, Uber, Whatsapp, Netflix, Dropbox, etc. We will be adding more chapters soon.

The course also includes a section on mock system design interviews. This is a great resource because it will provide you the experience of an actual distributed system design interview. More mock system design interviews are being added as well.
Typescript - Tips & Tricks - Rest Parameters & Rest Arguments
Tags: typescript, webdev
Published: 2021-04-02 06:11:02

Hi guy and welcome back :)
Today I'll talk about the Rest Parameters and the Rest Arguments.
Sometimes we need to write a simple code like this:
```ts
function multiply(a: number, b: number): number {
  return a * b;
}

const result1 = multiply(2, 2); // 4
const result2 = multiply(2, 3); // 3
```
but after a while the customer asks us to multiply for unbounded numbers, so we need to change our code.
In these cases, typescript helps us with a feature called Rest Parameters.
This feature permits us to identify this list of parameters as an array type so we can leave our consumer to call the method with the correct number of items he needs, and we can manipulate these parameters more easily.
Therefore the previous example can be transformed in this way
```ts
function multiply(a: number, ...args: number[]): number {
  return args.reduce((acc, curr) => acc * curr, a);
}

const result1 = multiply(2, 2, 2); // 8
const result2 = multiply(2, 3, 2, 2); // 24
```
As you can see, now the consumer can call the "multiply" method as he prefers and our code responds correctly in all cases.
In this example, we have called the "multiply" method with a fixed number of elements, 3 in the first case and 4 in the second one. But in some cases, we don't know the correct number of elements and maybe they are in an array.
To resolve these cases, typescript has another important feature tied to the Rest Parameters, the Rest Arguments.
This feature helps us to convert the array elements to a list of parameters.
Thus, we can call the "multiply" method in this way too.
```ts
const result1 = multiply(2, ...[2, 2]); // 8
const result2 = multiply(2, ...[3, 2, 2]); // 24
```
I think that these two features are really powerful, and can help you to manipulate large numbers of parameters and take your code simple and flexible.


And now a special greeting.
This is the last post of this series [Typescript - Tips & Tricks](https://dev.to/puppo/series/11213), I hope you enjoyed the series and it will help you in your daily work.

Many Thanks to have read the series.
It's not a goodbye, I'll get back soon with other topics.

Bye, Bye Guys!
Spring Framework Brief Overview
Tags: java
Published: 2021-04-02 06:09:51

### History
Spring is a framework for Java Enterprise Application Development. It started in 2003, at that time Java offers J2EE for enterprise applications but it was complex and hard to use. Spring Framework was developed as a response to that complexity. Spring grew in popularity and became a defacto standard for Java enterprise application development.

### What do we mean by Spring?
Initially, the Spring framework was a single project which provides enterprise application development features alongside Dependency Injection, but over time it grew into a full ecosystem of related projects for different aspects of an application. For example, we have Spring Web MVC for web-related tasks, Spring Data for data management, Spring Security for application security, and so on. [Here is the full list of Spring projects from official site](https://spring.io/projects). Now when we say "Spring" we are referring to the whole eco-system of Spring-based related projects.

### How to use Spring?
Since there are different projects offered by Spring, configure them properly could be a challenge, even for experienced developers. To overcome this, Spring provides a project called **Spring Boot for bootstrapping a Spring application**. Spring Boot takes away all of the complexity of setting up a spring application and you can configure any Spring related project with minimum or no configuration. Spring prefers convention over configuration, so most of the features just work right out of the box with no additional configuration required.

### Conclusion
Spring Framework started as a Java Enterprise application development framework which grew in popularity and today it has become an eco-system of related projects. Spring Boot is a spring project for bootstrapping a spring application and hides the complexity of configuring different Spring projects together. Spring prefers convention over configuration and most features just work with minimum or no configuration.
DHCP for Raspberry Pi
Tags: networking
Published: 2023-01-06 01:11:27

---
title: DHCP for Raspberry Pi
published: true
date: 2021-02-16 03:46:21 UTC
tags: Networking
canonical_url: https://brandonrozek.com/blog/pidhcp/
---

Recently I ran across the use case where I needed a Raspberry Pi to be connected to the Internet via a WiFI connection, while also providing DHCP leases through an Ethernet connection. I couldn’t find a great way to achieve this with `dhcpcd` so instead I grabbed a tool that I’m more familiar with `dnsmasq`.

Before we begin, we need to setup a static IP for the Ethernet interface (`eth0`). Since the Ethernet interface will not be connected to the Internet, there’s no need to worry about a lot of the usual fields.

In `/etc/dhcpcd.conf`

```
interface eth0
fallback nodhcp

profile nodhcp
static ip_address=192.168.2.1/24

```

Below is the config for `dnsmasq` which lives in `/etc/dnsmasq.conf`. It essentially tells it to only serve DHCP leases on the Ethernet connection of the Raspberry Pi. The addresses it’ll lease out according to the config below is between 192.168.0.50-192.168.0.150 and is leased for 12 hours.

```
# Configuration file for dnsmasq.
#
# Format is one option per line, legal options are the same
# as the long options legal on the command line. See
# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.

# Listen on this specific port instead of the standard DNS port
# (53). Setting this to zero completely disables DNS function,
# leaving only DHCP and/or TFTP.
port=0

# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
interface=eth0
# Or you can specify which interface _not_ to listen on
#except-interface=
# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)
#listen-address=

# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
dhcp-range=192.168.0.50,192.168.0.150,12h

# Enable DHCPv6. Note that the prefix-length does not need to be specified
# and defaults to 64 if missing/
#dhcp-range=1234::2, 1234::500, 64, 12h

```
Can I learn Android without knowing Java?
Tags: android, programming, beginners
Published: 2021-04-02 06:01:48

Without basic information of Java, you can <b>learn Android</b> app development from the ground up, but it will be time-consuming. In reality, you will not understand many key fundamentals of Android, and it will require you a long time to learn Android, which will eventually infuriate you at some point. In short, getting <a href="https://codersera.com/blog/beginners-guide-to-java/"> Beginner's Guide to Java</a>
  won’t do you any harm and will increase your possibility of becoming a better Android Developer.

The first and most important point to note is that Android development isn't everything. You may be beginning your career as a developer with Android development. However, if you begin with a very well-established language, such as Java, you become a part of the larger Java community and market, which directly translates to more employment options.

The second and most significant aspect is that there is a wide group of <b>Java programmers</b>, which implies you can get support when you get trapped. This is crucial since, as a novice, you will experience a slew of technical difficulties and may be uncertain where to turn when you get stuck.

To get started with <a href="https://codersera.com/blog/how-to-begin-learning-android-app-development/"> Android Development </a>, you should acquire knowledge of core Java concepts. These are the fundamentals you must understand before diving into <b>Android app development</b>. Concentrate on learning object-oriented programming so that you can break the software down into modules and write reusable code.

Java is a popular option among programmers seeking a stable, user-friendly coding language with cross-platform capabilities. You can split it into six sections and concentrate on learning one at a time:

<uSyntax
<ul>
  <li>OOP Concepts</li>
  <li>Java Collections</li>
  <li>Exception Handling</li>
  <li>Input/Output Streams</li>
  <li>Java Multithreading</li>
  <li>OOP Concepts</li>
</ul>

The official language of </b>Android app development</b> is without any doubt, Java. It makes things better because it has a large number of open-source resources, as well as valuable libraries and software. It also defends against many problems in native code, such as memory leaks and incorrect pointer use. Basic understanding and implementation of Java topics such as arrays, lists, objects, and classes such as Bundle are frequently regarded as a must for Android. 

Learn the fundamentals of the <b>Java programming language</b> and how to create programs with conditionals and loops, design and implement recursive algorithms, comprehend simple Object-Oriented Paradigm (OOP) concepts, use and understand the API of some of the most popular Java classes, and create real-world Android applications using the Android software development kit (SDK).
A lot of useful and wonderful landing page templates
Tags: webdev, html, css, javascript
Published: 2021-04-02 05:45:27

> awesome-landing-page is A series of beautiful and practical landing page templates.

## There are a lot of beautiful landing page templates. They are built using various front-end technologies. I hope you like them.

#### [https://github.com/nordicgiant2/awesome-landing-page](https://github.com/nordicgiant2/awesome-landing-page)

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

Oh my dear friends, do you often need a beautiful page to decorate your projects? Maybe you are an algorithm engineer or a bridge engineering designer, but I think your open source project always needs a little embellishment. A beautiful homepage will make your github project shine.

## Awesome lading page

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

This project has carefully selected nearly 100 open source landing page templates for you, and dozens of free tutorials. I think it will make you feel extra surprised, thinking that everything you want is here.

### Finally

Finally, I want to say that beautiful things are always refreshing. I hope to dedicate them to you, if you like I will continue to recommend more fun things.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/es4grmhzbal1ki1mutph.jpg)
[C++] #include opencv2.xxx.h no such file or directory
Tags: cpp
Published: 2021-04-02 05:44:24

- because /usr/include does not have opencv2 folder or opencv2/xxx.h header file

- If you installed opencv4, you might have installed the opencv installation path on /usr/local/ during installation.

- /usr/local/include/opencv4/opencv2 folder can be found to have the xxx.h header file!

![20210402_143602](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o87uvzbcx274r7tga6hs.jpg)


따라서
```C++
#include <opencv4/opencv2/xxxx.h>
```

====================================================
c++ include 기본 경로를 보는  명령어는 
echo | gcc -v -x c -E - 
echo | gcc -v -x c++ -E - 


=================================================
make했을때 경로에러가 난다면 Makefile 에




컴파일시 include 경로를 추가해주면 된다. 
![20210402_143429](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tsa01g3afcw4b2zgal0o.jpg)
49 Days of Ruby: Day 6 - Integers
Tags: ruby
Published: 2021-04-02 05:39:56

---
title: 49 Days of Ruby: Day 6 - Integers
published: true
description: Join us on a 49 day learning journey through Ruby!
series: 49 Days of Ruby
tags: #ruby
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/9m73qaetuse3nm3y3it8.png
---

**Welcome to day 6 of the 49 Days of Ruby! 🎉**

In the past few days we have covered variables, strings, introduced ourselves to IRB and a lot more! Today, we are going to learn a bit about another very important data type: *Integer*.

What is an Integer?

> Any number that can be written without a fraction.

In other words, 5, 15, -300, 0, 829304923231231 are all integers. Whereas, 5.3, 0.2, -4.675 are not. What are those latter numbers then? Those fractional numbers are a different data type called a *Float*. 

Integers, like Strings, can be stored inside variables to be referenced later:

```ruby
drink_order = 1
```

Did you notice that we did not wrap the `1` in either single or double quotes? If we wrapped it inside quote marks then it would no longer be an Integer, it would become a String.

As an aside, what is the value of `"1" + 1`?

In some languages, the language itself will *fix* your math above and either convert the 1 in quote marks into an Integer, or the 1 without quote marks into a String. In the former, the correction would yield `2` as the answer. In the latter, the correction would yield `11` as the answer.

What does Ruby do?

```ruby
TypeError (no implicit conversion of Integer into String)
```

Ruby does not automatically *fix* it for you, but rather returns to you an error. Each error belongs to a group of errors (a `Class`) that tells you a bit about what type of error it is. In this case, the error is a `TypeError` because the *types* of data you are trying to add together do not match.

Back to our new `drink_order` variable holding the Integer `1`. If you recall, yesterday we created a customer named `Ben` with a favorite drink of `Iced Americano`. We then printed that data out using string interpolation.

We can do the same thing here with our Integer!

```ruby
"Hi, #{name}! Welcome back! Would you like to order another #{favorite_drink}? You previously ordered it #{drink_order} times.
```

This would output the following:

> Hi, Ben! Welcome back! Would you like to order another Iced Americano? You previously ordered it 1 times.

We see that you can interpolate an Integer into a new String, just like other Strings.

Another important item to know about Integers is how they interact with Floats. Remember from above that a Float is a fractional number, like 5.2, for example.

What happens if we try to add `3 + 5.2`?

```ruby
2.5.1 :002 > 3 + 5.2
 => 8.2 
```

The return value is a new Float: `8.2`.

That's it for today! Tomorrow we will explore Booleans!

**Come back tomorrow for the next installment of 49 Days of Ruby! You can join the conversation on Twitter with the hashtag [#49daysofruby](https://twitter.com/hashtag/49daysofruby).**
How to create an Uber Clone APP?

Tags: uberclone
Published: 2021-04-02 05:39:28

Have you really heard of Uber? It is one of the most remarkable app great successes we have today. This isn't about Uber; this is about you. What about developing the next multi national taxi app? Don't be scared; it is possible, and we will show you how to create an app similar to <a href="https://www.omninos.in/uber-clone-app-script-development.php">Uber Clone</a>
Booklist - Day 10
Published: 2021-04-02 05:01:33

Here's the work I did on day 10 of #100daysofcodechallenge, this is a book list app, where the user can add books, remove books he wants to read, or he wants to buy, or can be used by a bookstore, in order to create list of books. The project was amazing one, it helped me to learn more about class and objects in JavaScript.

For code & resources:
Github: https://github.com/ashuydv/javascript-10
For preview: https://ashuydv.github.io/javascript-10/
What can programmers learn from predators?
Tags: webdev, programming, productivity, tutorial
Published: 2021-04-02 04:59:06

So what can we programmers learn from predators? First, let me give you a bit of context so you know what I mean by predators. A predator is an organism that eats another organism. Thas the literal definition from google. The predators that I'm talking about are from the movie `Predators`. In the movie, a group of mercenaries and militia people find themselves on an alien planet in a game in which they are hunted and they have to survive. The creatures are savage and quite technologically advanced. They have rockers launchers, lasers, and thermal cameras mounted on their body. They can also become invisible to **hunt** their prey. When I was watching the movie a thought struck me. Being so technologically advanced why the f*CK do they have to hunt, why not create a simple farm? The obvious answer is, `it's just a movie!`, but I think it's deeper than that. Let me explain. 

Predators being so technologically advanced didn't abandon their core nature ie hunting. Instead, they created tools that made that process more efficient ie creating tools and weapons.

What can we learn from them? Dont abandon your nature. We, humans also have a core nature. Humans are evolved from millions of years to survive. Living in a modern society, survival isn't a problem. I am not asking you to become a complete savage and go to some forest and become a Tarzan. Instead, try to leverage your core nature. How to do that in the programming world? 

* Do any form of exercise: Humans were completely fierce in the stone age. They could walk for tens of kilometers without even taking a break. They could take down a lion with just sharp stones. Our body has evolved to become more and more efficient and powerful. At least do some form of an exercise to bring out the beast in you. Believe me you will feel completely different and have a ton of energy. 
* Spend time in nature: For thousands of years, humans have lived in forests. Spending time in nature is relaxing. Instead of playing video games in your free time, sometimes go for a walk in nature. You can also place a plant on your desk. 

* anything you can think of that humans did thousands of years before.

If you enjoyed the read comment your thoughts below and drop a like.
Possible Ways Of Converting String To an Integer
Tags: javascript
Published: 2021-04-02 04:32:01

Are you interested in learning new ways of coding :), Then this post is for you. Let us have a look at different ways of converting string to an integer

const num1 = parseInt("1000", 10)
const num2 = ~~"2000"
const num3 = "3000"-0
const num4 = "4000"*1
const num5 = +"5000"
const num6 = "6000"<<0
const num7 = Math.floor("7000")
const num8 = Number("8000")
const num9 = Math.round("9000");

Hope You Like it