teleren/devto huggingface dataset:
Why and How to Start Using Xcode to Build Your React Native iOS Apps ASAP
Tags: react, reactnative, javascript, ios
Published: 2020-10-22 05:31:58

Many of us involved in mobile application development with React Native have been used to working on [Expo](https://expo.io/). This makes complete sense since the React Native [documentation](https://reactnative.dev/docs/environment-setup) itself has indicated that it is the easiest way to get started. 

That said, if you are interested in eventually publishing your app on the App store, you might want to start getting used to working with Xcode. That’s because starting April 2021, all iOS and iPadOS apps submitted to the App Store will be required to be built using Xcode 12. 

So, let’s get started. If you don’t already have Node and Watchman installed, you should get them via [Homebrew](https://brew.sh/) using the following terminal commands:

`brew install node
brew install watchman`

While you probably have these as a React Native developer, it is a good idea to at least install Node 10 or later. 

Of course, you’ll need to install Xcode. You can just download it from the app store [here](https://apps.apple.com/us/app/xcode/id497799835?mt=12). Next, you’ll need CocoaPods, which manages library dependencies for your projects when using Xcode. So, install using:

`sudo gem install cocoapods`

Now we’re ready – are you exiting to get started on your new app? To start a new project, navigate to where you would like to save it, then in your terminal type,

`npx react-native init <the name of your new project>`

Your project will have starter boilerplate code, which you will be able to see once you open it in your code editor. To run your project and view it in a mobile device simulator, simply type,

`npx react-native start
npx react-native run-ios`

Now you are ready to start programming and to see your work on the simulator. Happy coding!
Chrome find unused code 🔎
Tags: chrome, codenewbie, codequality
Published: 2020-10-22 05:03:50

Nowadays, we have PurgeCSS, which is cool at identifying what CSS is being used and not.
But did you know Chrome also has the option to show you what CSS and JavaScript are actually being used, and what not?

Yes, Chrome has a Code Coverage tool!

## Finding the Chrome coverage tool

We can access this tool by opening up the development tools.

Mac Cmd + Shift + C or Windows: Ctrl + Shift + C.

Next click the three dots -> More tools -> Coverage.


![Chrome coverage window](https://cdn.hashnode.com/res/hashnode/image/upload/v1602825719557/gkMtY46uV.png)

This will open up a coverage window.

## Running a coverage

To run a coverage, we can simply press the reload button in the coverage window.

By doing this, Chrome will re-index the page and show you all the results it found like this.

![Chrome coverage report](https://cdn.hashnode.com/res/hashnode/image/upload/v1602825893187/hbjNLvKgT.png)

This is the high-level overview of the scripts and css loaded on the page. But how can we now see what's being used or not?

Click on one of the results to see it in detail.

![Chrome coverage CSS result](https://cdn.hashnode.com/res/hashnode/image/upload/v1602825977321/1tIWzkLMk.png)

Here you see my inline `CSS`. Depending on the colour you can see if a line is being used or not.

In the above example, the red lines are not being used.

> Do be aware when removing the CSS. It might be used on another page!

So this is really cool, it will give you at least a starting ground if you really want to optimise it to the next level!

It also works for JavaScript, but keep in mind this JavaScript just might not have been fired yet.

![Code coverage JavaScript](https://cdn.hashnode.com/res/hashnode/image/upload/v1602826163350/KeO71R-Op.png)

## Exporting this data

There is also the option to export these results from the coverage.
You could use another tool to then automated remove these lines from your code.

You can find the export in the coverage window.

![Chrome coverage export](https://cdn.hashnode.com/res/hashnode/image/upload/v1602826256262/q3icz2LmJ.png)

### Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on [Facebook](https://www.facebook.com/DailyDevTipsBlog) or [Twitter](https://twitter.com/DailyDevTips1)
India App Developer - Best iOS App Development Saudi Arabia
Tags: appdevelopmentsaudiarabia, appdeveloperssaudiarabia, appdevelopmentcompany, hiretopappdevelopers
Published: 2020-10-22 04:38:23

<a href="https://www.indiaappdeveloper.com/">India App Developer</a> is a fast-growing iOS app development company in Saudi Arabia that develop applications for various business domains like e-commerce, logistics, entertainment, healthcare, fitness and many more. We develop applications with imploring design and pertinent functionalities. We offer a customized and effective solution to our customers that helps them to grow their business productivity and brand visibility in the market. We always incorporate the latest tools and technologies and try to make the app a successful hit in the market. 

Our <a href="https://www.indiaappdeveloper.com/app-development-company-saudi-arabia/">Best iOS App Development Saudi Arabia</a> Experts consists of talented and experienced designers, best iOS app developers Saudi Arabia, and marketers that are dedicated to creating your app. We work to leave a long-lasting impression on people in the mobile app world. We don’t only serve enterprises but start-ups, businesses, and investors as well.

To develop amazing and unique apps, Feel Free to <a href="https://www.indiaappdeveloper.com/contact-us/">contact us</a>!!!
4 aspects of studying coding tutorials that you must be aware of, as a beginner
Tags: programming, tutorials, coding, studying
Published: 2020-10-22 04:29:57

---
title: 4 aspects of studying coding tutorials that you must be aware of, as a beginner
published: true
description: 4 aspects of studying tutorials that you must know as a beginner
tags: programming, tutorials, coding, studying
//cover_image: https://direct_url_to_image.jpg
---

####When you're learning a programming language as a beginner, and you're faced with a tutorial (or 10) that feels overwhelming, you must know a few things:

1. The person who made the tutorial, prepared everything in advance. The video/article is made for educational purposes, not to reflect how real programmers work.



2. It's perfectly normal to not understand too much. The goal here is for you to type the code, get familiar with the words so when you'll see the same stuff again, your brain will click saying "Hey, I remember this!", and of course, you'll feel proud of yourself! *clap clap* :) 



3. People were not ready for the tutorials we have here. Our brains can't process the amount of information, their complexity and because there are so many tutorials, we devalue them. 
Let's imagine we are 15 years in the past and you'd try to learn programming. You'd get some CDs with a person talking you through code and explaining various concepts. Due to the fact that your resources are limited, you'd devour those CDs making use of every bit of information there. You wouldn't neglect it as you're doing with your udemy courses. Should I even mention [freeCodeCamp's](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/) 5-10 hours long, free tutorials? -- which brings me to my last point



4. Commitment. Dedicate yourself to one tutorial, one series or one instructor. It's tempting and often advised to use multiple sources, and to an extent it's a good idea, but serious learning is done through commitment, and commitment means focus. 

####I hope this tiny article helped you. These are some things I wish I knew when I started coding.
I Tried Livestreaming My Code
Published: 2020-10-22 04:20:41

Hello DEVs,

Today I tried out live-streaming my coding session on Twitch!

{% youtube OtCNbqbVPyk %}
<figcaption>Twitch VOD on Youtube</figcaption>

I'm actually not a stranger to streaming my code. My weekend job is to teach youths games programming and since we moved to online due to Covid-19, I've basically been live streaming my code.

However, the biggest difference is that I have lesson plans and preparation code done for my class beforehand, whereas live streaming on Twitch was more figure-it-out-along-the-way kind of deal.

This brings about 2 big challenges:
1. Viewers can pop in and out of the stream, which makes it hard for them to catch up on things they missed
2. I can't assume everyone is on the same skill level and require more or less explanation for what I'm doing

So how can I overcome these issues?

I don't have a definitive answer but I do have some ideas.

For the first problem, it helps if the project is open source as the viewers can go browse the code themselves. However, people come to streams to relax and maybe your changes aren't pushed yet so it would be nice to have some folder structure or architectural diagram up at all times.

As for changing up the level of skill? I think the only way is to assume everyone is a beginner and explain everything all the time. I don't think I did so this first stream but I am looking to improve my explanation skills.

Do you have any suggestions or ideas for consuming programming content? Let me know!

If you're interested in watching me live stream coding, [I am streaming my development of a Java-based brick breaker clone on Twitch, 3:00 PM - 5:00 PM PST!](https://www.twitch.tv/justinhodev)

# Socials
[Twitch](https://www.twitch.tv/justinhodev)
[Twitter](https://twitter.com/justinhodev)
[GitHub](https://github.com/justinhodev)

Brick Breaker Repo

{% github justinhodev/brick-breaker %}
Designer's Take: Stock Image Sites that Aren't ... "Stocky"
Tags: inclusion, design, beginners, tips
Published: 2020-10-22 04:06:08

As a designer turned developer, some tools are relevant to both and need to stay sharp in the toolbox. One of those tools I have found are the use of stock images. But unfortunately when it comes to stock images (especially on a budget), it can be difficult to find a set that aren't...well...cheesy. I have collected this list of image sites by category, and hopefully it provides you with some additional free stock image resources for your own toolbox that aren't too "Stocky".


## Free Stock Image Sites (by Category)
---
### Heavy-Hitters (Large Photo Selection)
These free stock image platforms have enormous amounts of images available, with an image for every search term you might need. They also are, for the most part, less "stocky" than other sources.
###### [Unsplash](https://unsplash.com/)
###### [Pexels](https://www.pexels.com/)
###### [Pixabay](https://pixabay.com/)
###### [Burst](https://burst.shopify.com/)
###### [Adobe Stock: Free Images Filter](https://stock.adobe.com/free)

### More Curated Photos (Less "Stocky")
These platforms don't have nearly the same amount of available stock photos, so searching for more particular search terms may require more time and effort. But what they lack in numbers, they make up for in quality. This list of stock image resources tend to leave out the "cheese" and keep the "steeze".
###### [Gratisography](http://www.gratisography.com/)
###### [ReShot](https://www.reshot.com/)
###### [Life of Pix](https://www.lifeofpix.com/)
###### [Negative Space](https://negativespace.co/)
###### [Kaboom Pics](http://kaboompics.com/)
###### [Death to Stock (*Honorable mention with paid plans)](https://deathtothestockphoto.com/)

### Diverse & Inclusive Photos
In an age where inclusivity and diversity is very rightfully becoming more and more important, we all should be putting efforts into making sure our stock imagery also reflects our values. These platforms are some of my favorite resources for diverse and inclusive stock images.
###### [Nappy](https://www.nappy.co/)
###### [Picnoi](https://picnoi.com/)
###### [Pexels: Diversity](https://www.pexels.com/search/diversity/)
###### [Pexels: LGBT](https://www.pexels.com/search/lgbt/)
###### [Pexels: Disability](https://www.pexels.com/search/disability/)

--- 
## Conclusion
With the right box of sharpened tools, we all can produce more beautiful, more powerful, and more effective work. One of the tools you should include in your dev toolbox is the resources for finding beautiful, not "cheesy", and also diverse stock images. I hope you find some value in these resources, and are able to pick and choose your own favorites to sharpen this small but important tool in your box.
I finally achieved my goal, but again, it’s not the end.
Tags: productivity, webdev, jobhunt
Published: 2020-10-22 03:44:15

I’ve always wanted to live in Europe, especially in France. To speed up the process of reaching my dream, I challenged myself to create a portfolio and get a developer job in October.

On 20 October, I received an approval email from my current CEO. It was really one of the best days of my life. You can’t imagine how happy I was! I love the team so much because everyone is so friendly and welcoming.

My next big goal is not related to coding, but I still would like to share it with you — I want to get the French long-stay VISA in January.

Stay safe, stay tuned.
Diseña tu propio tonos de llamada Mp3 personalizado
Tags: music, tonosdellamada, tonodellamada
Published: 2020-10-22 03:13:38

Si está aburrido de usar <a href="http://tonosdellamadacanciones.com/">tonos de llamada</a> predeterminados, mejorará su teléfono. Le alegrará comprender que para aquellos con un iPhone, existe una manera fácil de hacer un tono de llamada de tráfico. a través de canciones sin cargo. Crea tantos como quieras, usa cualquier grabación como tono de llamada. ¡Así es cómo!
Entonces, ¿qué tienen de especial los tonos de llamada según las canciones religiosas? Bueno, para empezar, hay literalmente millones de canciones cristianas contemporáneas disponibles para comprar, así como himnos del evangelio estándar. La razón por la que esto es necesario es que la música es, para los cristianos, muy importante. ¡Cantamos estas canciones en la iglesia! Las melodías cristianas nos inspiran y nos refugian del mundo, y también le dicen al planeta que somos verdaderamente "diferentes" de todos menos de ti. No mejor, solo ser perdonado. Aparte de poner música cristiana en mi coche o en casa cuando mis amigos no cristianos están cerca, no puedo pensar en cómo podrías aumentar tu fe más que si alguien llama por teléfono. y un transeúnte escuchó una melodía cristiana, un tono de llamada cristiano especial Nunca escuchado. ¡Qué rompehielos!
Separe los grandes tonos de llamada del resto para el grupo que necesita un montón de criterios de evaluación. En primer lugar, un gran tono de llamada debe tener una gran apertura. Si bien las grandes canciones que ofrecen tonos de llamada decepcionantes son decepcionantemente viables, lo contrario no es práctico. El tono de llamada también debería ser reconocible por muchas personas. Todos quieren ese tono de llamada para hacer sonreír a todos y decir "Me encanta esa canción" cuando el teléfono de tu amigo está agrupado.
AWS CDK First impression
Tags: aws, it, cdk, cloudformation
Published: 2020-10-22 03:10:40

---
title: AWS CDK First impression
published: true
description: Short AWS Cloud Development Kit introduction.
tags: aws, IT, CDK, Cloudformation
cover_image: https://i.imgur.com/5G8yTyT.png
---

On July 2019 was released the AWS CDK a code-first library to define cloud application infrastructure.

>The AWS CDK is a new software development framework from AWS with the sole purpose of making it fun and easy to define cloud infrastructure in your favorite programming language and deploy it using AWS CloudFormation.

The first thing that i realized is the AWS Cloudformation compatibility. every new written code is transformed to YML template, so almost everything in Cloudformation can be used here and that is really util.

There is really big advantage, and is the way you can create the application infrastructure, now you can use different languages as JavaScript, Python, Java, C# and also Typescript. And this is a really good feature because sometimes developers are not familiarized with YAML structure's and JSON is not the best way to create a Cloudformation template, so now you will choose your preferred language and just start to create the needed resources using the library.

And now as the resources are created using code, you can create unit test to improve the quality and make sure a new developer is no going to change something important there.

>With CloudFormation, you also can write some tests, but it requires another tool

Ok, now let's talk about constructors, is a new introduced concept and are so useful because now you won't need to create a lot of unnecessary as you usually do in YAML, just "WRITE LESS AND DO MORE", for example We need to write around 1000 lines of code using CloudFormation, when we try with AWS CDK, we only need to write around 50 lines of code.

```javascript
// DynamoDB table constructor
new Table(scope: Construct, id: string, props: TableProps);

// This represents a single EC2 instance.
new Instance(scope: Construct, id: string, props: InstanceProps)

// Creates a new EBS Volume in AWS EC2
new Volume(scope: Construct, id: string, props: VolumeProps)
```
_________
__CDK vs YAML__
![yaml-vs-code](https://i.imgur.com/efMqXSY.png)
_________
More good things, the deployment process is a little bit friendly and request some confirmations before deploy. 

![yaml-vs-code](https://i.imgur.com/awSZuTy.png)

Also you can see the updated resources easily after deploy.

![yaml-vs-code](https://i.imgur.com/D4fl7vZ.png)

There is something that personally is bad, and is the way to run the application locally. You can't do it using AWS CDK, you have to build the code to YML and execute it using AWS SAM, so you will need and step more before try every new change locally.
_________
I hope this post has been useful for you.

Finally, you have a great Workshop here:  https://cdkworkshop.com/

CDK use guide: https://docs.aws.amazon.com/cdk/latest/guide/home.html

Some examples: https://github.com/aws-samples/aws-cdk-examples
Hack(Spam?)toberfest
Tags: hacktoberfest
Published: 2020-10-22 01:57:50

## What I Learned From Hacktoberfest

I was having fun working on different interesting projects, It surely opened a wider door for open-source communities to global networking and collaboration.

However, let's talk about the elephant 🐘 in the room...

## Hack(Spam?)toberfest

While it has been encouraging developers to get into open-source development, a Hacktoberfest shirt offers a sweeter taste.

It turns out that there are a ton of spam PRs from newly-registered accounts all over the place. Okay, this is not new but it is just simply ugly. Of course, an attempt was made to prevent this from happening; I do appreciate it.

I just wanted to point out that it saddens me as a developer to see this behaviour.

## Examples
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/61b8xl2zxspms3wap9sx.jpg)![Alt Text]
(https://dev-to-uploads.s3.amazonaws.com/i/cdjjpk4ltc8uvrk9xc9g.jpg)![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/gyyqnufyrqvo335rup22.jpg)![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/plxlg7jdz2e5ieamtrdo.jpg)

.
.
.
Let's do it better and properly next time

P.S. Save READMD.md, Save the World
Basic Java logical operators
Tags: java, beginners
Published: 2020-10-22 02:17:20

Coming from a philosophical background, one of the main parts of a language that I'm always curious is how they implement logical operators. Java doesn't do anything new on the logic field, but give us some powerful basic logic calculators.

The basic logical operators on Java are & (and), | (inclusive or), and ^ (exclusive or). The & operator does the classical test to see if both sides of the calculation are true, while the inclusive or (|) test if any of both sides are true, and the exclusive or (^) tests if only one side of the operation is true. The table bellow show the possible outputs for each different value:

![Screen Shot 2020-10-21 at 22.58.46](https://dev-to-uploads.s3.amazonaws.com/i/44hgvrszofz8aptqdyuw.png)

However, there are some other calculators that enhances the power of the basic & and the |. If you add another of the same character to both operators, getting && and ||, the JVM will consider the full operation a conditional calculation, where it'll only calculate the second part of the operation if it can't assume the full boolean value using only the first part of the operation. 

This type of operator can give you more control over calculations like: `boolean y = (x >= 7) || (++x <= 9);` where, if x is bigger or equal to 7, the second part of the operation isn't computed. However, if x isn't bigger or equal to 7, it'll get incremented, changing its value. With this, we can create complex logical structures.

On the example that I gave, a simple inclusive "or" gives a shape for an "if and only if structure" too. To fully understand it, we can't only read it as "x is bigger or equal to or x plus one is less than or equal to 9)" but also as "X will be incremented if and only if X isn't bigger or equal to 7". This can create a complex code that is difficult to read (as any Clean Code guide would say to you), but it also demonstrate how powerful a programming language like java can be and how it mimics the logical propositions.
Embrace the Pipe
Tags: go, unix, cli
Published: 2020-10-22 01:01:55

The unix pipe operator is magical.

As long as you write your application to read input from standard-in and write output to standard-out you can compose your cli tool with thousands of other tools.

## Scanners

To read one line at a time I like to use [bufio.NewScanner](https://golang.org/pkg/bufio/#NewScanner). This uses [bufio.ScanLines](https://golang.org/pkg/bufio/#ScanLines) to split the reader by new lines.

```golang
in := bufio.NewScanner(os.Stdin)
// Scan returns false when its out of lines
for in.Scan() {
  // line is a string
  line := in.Text()
  // if you want bytes in.Bytes() exists too
}
```

## Lets build a tool
As an example here is a tiny command line tool I wrote to read urls for images and display them as ascii art images on the terminal.

Full source https://gist.github.com/trashhalo/6154a690bd2612ae33c8252d8051eb9f
```golang
func main() {
	in := bufio.NewScanner(os.Stdin)
	for in.Scan() {
		line := in.Text()
		err := convertLineToArt(line)
		if err != nil
	}
}

func convertLineToArt(line string) error {
	fmt.Println(line)
	resp, err := http.Get(line)
	if err != nil {
	defer resp.Body.Close()

	img, _, err := image.Decode(resp.Body)

	convertOptions := convert.DefaultOptions
	convertOptions.FixedWidth = 50
	convertOptions.FixedHeight = 50
	converter := convert.NewImageConverter()
	for _, row := range converter.Image2ASCIIMatrix(img, &convertOptions) {
		fmt.Print(row)
	}
	return nil
}
```

## Use Pipe
Now lets combine together a few tools.

```bash
curl -A "test" https://www.reddit.com/r/cats.json | jq -r '.data.children[] | .data.url'|go run .|less
```

This is saying:  
1. [curl](https://curl.haxx.se/docs/manual.html) - download the json for reddit posts on cats. The -A "test" because reddit hates curl user agent so we need to change it.
2. [jq](https://stedolan.github.io/jq/manual/v1.6/) -r 'xyz' - extract the urls for the images from the reddit json.
3. go run - run your command!
4. [less](https://man7.org/linux/man-pages/man1/less.1.html) - Put the output in a little viewer that lets you scroll up and down.

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