teleren/devto huggingface dataset:
Why Developers must learn to design
Tags: design, javascript, react, beginners
Published: 2019-09-30 15:35:04

After a pretty long career as a backend engineer, I realised how crucial it is to be able to design. Sometimes as developer, I often underestimated the power of design but learned the hard way..why it's important to acquire this valuable skill.

Hope you get some insight with this infographic I created.


![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/6y09cd291krbg5dycgx2.png)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/hesvwrx49kuz9ag926bn.png)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/tiududpaq8sbsxv6dkop.png)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/eey8v1p38qy0c8ybccfy.png)

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/lmojmbj0r69mryc6esvc.png)




If you interested in reading more, here is the full [blog](https://medium.com/@deeksha.sharma25/why-developers-must-learn-to-design-b8bb34af6aaa?source=friends_link&sk=8d4c9557b116cb37fa39ccddd59cb8cf)
Intro to GraphQL
Tags: graphql
Published: 2019-09-30 15:30:34

I recently attended my first tech fair in Seattle, as I am approaching the end of my software engineering bootcamp at Flatiron School. One company there was utilizing GraphQL, a technology that I was unfamiliar with. Having used API calls for all of my various school projects, I decided to do a little research of my own into what tools GraphQL provided engineers such as myself.

So what is GraphQL? GraphQL is a powerful alternative to REST that was created to cope with the need for more flexibility and efficiency in client-server interaction GraphQL servers allow for declarative data fetching from a single endpoint. A user will be able to only fetch the specific data that they are looking for from an API. This fact alone was enough to get me interested enough to delve deeper, as I have spent many hours sifting through JSON objects to pull out the relevant data that I was looking for.

Facebook publicly presented GraphQL in 2015 to combat the server load of increased mobile device activity. Since a user can pick and choose what information is coming back from their API calls, GraphQL minimizes the data that is being sent over the network, thusly improving application responsiveness. Another reason why GraphQL was created was to increase development speed with the expectation that features would be more rapidly developed, as a GraphQL server only needs to expose a single endpoint from any API. 

Below is a great example of GraphQL in action. In this example, a simple blogging app is being created.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/jt1l2no9bwft0ekvbzfx.png)

These are normal REST conventions. Each of the '/users/:id', '/users/:id/posts', and '/users/:id/followers' endpoints are queried to retrieve the relevant data that would be needed to create the application. 

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/iad5renmxcunwnzf3nmg.png)

Utilizing GraphQL's declarative fetching, you can simply query one time for the exact information you're looking for, cutting down on time spent fishing through data and creating logic for multiple API calls.

GraphQL really is the better REST, and I'm excited to start utilizing the tools in my own projects. Happy coding!


RESOURCES

https://graphql.org/

https://www.howtographql.com/
Making positive decisions
Tags: productivity, life, shipit
Published: 2019-09-30 15:27:47

Do you ever suffer from Analysis Paralysis? Whether it's on big life decisions like whether to take a particular job, or on the smaller things like what to have for dinner, it can be really frustrating to yourself and to others dependent on your decision when you are seemingly stuck in this loop:

> "If I do X then A B C could happen, but wait... if I do Y then D E F could happen which is just as bad... So I should do X... but wait then A B C could happen..." (...forever...)

A friend once described the solution to this with the following analogy which I'm going to shamelessly copy:

> It's easier to steer a moving car

I really like this analogy because it's so true - have you ever tried to 'dry-steer' your car? It's way more difficult to turn those wheels, and damaging to the tyres potentially, compared with just heading in a direction and adjusting course on the way.

Once you make _a_ decision to move forward, it's inherently a positive decision - you are _moving forward_! You're not going backwards or standing still - and you will either _win_ (i.e. you made the 'right' decision) or you will _learn_ from whatever decision you took. But at least you made a decision!

Now don't get me wrong - analysis _itself_ is actually a _good_ thing - jumping head first into a decision (big ones at least) can be catastrophic without knowing the context, the facts surrounding the decision, the impacts of your choice on your life and others' lives, etc. I'm by no means saying _skip_ that step. I'm simply saying that once you've scoped out the impact of, say two options that are more or less equally weighted, that is - two options that are basically both OK, but neither is perfect or an out-and-out choice, _just pick one_.

Most of the time, you can change your mind later anyway.

Have confidence in your own decision making - for sure, do your analysis - don't go in blind. But once you've got some basis for a decision, _just make one_!

One practical tip that I've learnt is to use 'pseudo-chance' to help others make these kinds of decisions:

* Assign 'heads' to one decision and 'tails' to the other, and flip a coin
* When they see what the coin is telling them to do, if they're subconsciously leaning in the _same_ direction as the coin, or genuinely have no particular preference either way, they will just go with it
* If however they are subconsciously leaning in the _opposite_ direction, this will likely become clear and they'll deviate from the coin's 'decision'

_Can you relate to this? Or do you have any other tips to help those who can? Why not provide them in the comments below?_
Learning about Asynchronous Streams and LINQ in C# 8
Tags: dotnet, csharp, linq, async
Published: 2019-09-30 15:18:58

One of the features from [C# 8](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8#asynchronous-streams?WT.mc_id=dotnet-devto-cephilli) that I'm really excited about is Asynchronous Streams. Essentially, it enables developers to both create and consume a constant stream of data in an asynchronous way.

This feature enables some interesting possibilities for .NET developers particularly in the realm of IoT, Big Data processing, and machine learning.

If you're interested reading some more about this feature, my colleague Anthony Chu has an interesting article here on DEV that I'd recommend taking a look at.
{% link https://dev.to/dotnet/what-s-the-big-deal-with-iasyncenumerable-t-in-net-core-3-1eii %}

If you're the type of person that learns better by doing, take a look at this tutorial that will guide through the various language constructs involved in creating and consuming an asynchronous stream.

**Tutorial**
[Generate and consume async streams using C# 8.0 and .NET Core 3.0](https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/generate-consume-asynchronous-stream?WT.mc_id=dotnet-devto-cephilli)

One of the interesting things about the asynchronous streams feature it that it leverages familiar language constructs for working with enumerables and enumerators in C#. One thing that's missing out of the box, was the ability for developers to apply their knowledge of [LINQ](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq?WT.mc_id=dotnet-devto-cephilli) to process these data streams.

Well, it seems that the open source community has taken on the challenge and is working on [System.Linq.Async](https://www.nuget.org/packages/System.Linq.Async?WT.mc_id=dotnet-devto-cephilli). This NuGet package extends the IAsyncEnumerable interface to add many common LINQ operators and more.

In this episode, Bart De Smet comes on to talk about the System.Linq.Async nuget package that adds some common Linq query operators to IAsyncEnumerable. 
{% youtube Ktl8K2b1-WU %}


If you liked this video and would like to see some more of our .NET content, please subscribe to our [ .NET Developers YouTube Channel](https://www.youtube.com/channel/UCvtT19MZW8dq5Wwfu6B0oxw).

## Useful Links
* [Asynchronous Streams feature document](https://github.com/dotnet/roslyn/blob/master/docs/features/async-streams.md?WT.mc_id=dotnet-devto-cephilli)
* [Reactive Extensions and System.Linq.Async on GitHub](https://github.com/dotnet/reactive?WT.mc_id=dotnet-devto-cephilli)
* [System.Linq.Async on NuGet](https://www.nuget.org/packages/System.Linq.Async?WT.mc_id=dotnet-devto-cephilli)
Code Compare Got a New Licensing System
Tags: codecompare, alm, productivitytools, coding
Published: 2019-09-30 15:18:36

---
title: Code Compare Got a New Licensing System
published: true
description: Devart has improved the activation system of its Code Compare solution. The update will make managing paid licenses even more convenient.
tags: code compare, ALM, productivity tools, coding
---

*Devart has improved the activation system of its Code Compare solution. The update will make managing paid licenses even more convenient.*

Devart, a recognized vendor of professional database management software, has recently implemented a new licensing system for the [Code Compare v.5.2](https://www.devart.com/codecompare/), one of its most popular products. The Czech company states that the update is aimed to make paid license management even more convenient. 

Now when a paid license is activated, it is added to the user's account and is bounded to the computer with a unique hardware identifier. Meantime, to conveniently manage licenses, computer names are also used, and a bit later will be displayed in personal accounts.

The two other equally important updates related to the new activation system:

**Integration with GitKraken in standalone application** – the opening comparison with GitKraken in Code Compare standalone application is supported. However, in the Visual Studio extension, there is no possibility of integrating with GitKraken at the moment.

**Check license expiration in the installer** – now subscription verification will take place at the installer level before the old version is uninstalled.

**Code Compare** is designed to merge and compare various files and folders. The solution integrates with all popular source control systems: TFS, SVN, Git, Mercurial, and Perforce, and is shipped both as a standalone file diff tool and a Visual Studio extension. To learn more about recent update visit the Devart official blog – [https://blog.devart.com/new-activation-system-with-support-for-customer-portal.html](https://blog.devart.com/new-activation-system-with-support-for-customer-portal.html)

**About Devart**

Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration and backup solutions. The company also implements Web and Mobile development projects.
For additional information about Devart, visit [https://www.devart.com/](https://www.devart.com/)
OSS flutter app open to Hacktoberfest contributors
Tags: hacktoberfest, contributorswanted, webdev
Published: 2019-09-30 15:12:53

Goodwork is an open sourced project management & collaboration tool built with Laravel and VueJS. Now a mobile app is being built for the web app with flutter.

A discord server is opened to accommodate easy communication. Join in and ask any questions you might have. [Join here](https://discord.gg/4DvTQsc)

All contributions are welcome and appreciated. Connect in discord and ask how you can contribute or what you want to work on.

Also experienced flutter dev are welcome to guide the development or take ownership part of the app.

web app repo:

{% github iluminar/goodwork %}

mobile app repo:

{% github iluminar/goodwork-mobile %}
Cross-platform Development
Tags: devops, codenewbie, productivity, coding
Published: 2019-09-30 14:44:54

One codebase, multiple platforms. We've heard this promise ever since Java was released. I take the continued popularity of Java as a sign that it somewhat delivered on the promise. 

Many years later, we're still at a point where many frameworks like Flutter, Xamarin, Cordova and React Native promises us to deliver *that* magic silver bullet: Cross-platform mobile development. Based on my own experiences I'd say they're failing.

Now, I'm certainly not trying to disregard the hard work done by the teams of said frameworks. They're all brilliant, and I love that the tools exist. But you should base your work off them for the right reasons. 

If you think you can just write your code, and then start cashing in at the bank, because you can publish your apps on a lot of platforms in one go with little to no work, you're in for a big surprise.

Let me outline a few of the observations that I've done:

* Cross-platform tools are almost never on par with the tools offered by the native platform. So you're going to have to accept some shortcomings, like the very latest features not being available to you. 

* You're not going to avoid writing native code (or wrapper classes), in say, Kotlin/Java/Swift/Objective-C. So you should be proficient in one of these languages. 

* The further away from the native platform you step, the more likely it is that your application becomes unstable, because there are more places  your code or your toolchain can and will break.

* Outdated or incomplete third-party libraries. The former will probably block or delay your ability to update your app. The latter will make you have to reimplement missing features that's already in the native libraries (we don't want to reinvent the wheel, do we?). 

* Your toolchain will break at some point. I've spent countless hours trying to determine whether a build crashed due to a bug in the cross-platform framework or the tools supplied by the platform I'm compiling for. However, this is really a structural problem that I believe happens whenever a toolchain becomes too complex, like we've seen in recent years with other projects like nodejs.

All in all, I think that the problems I've encountered along the way kinda defeats the purpose of using a mobile cross-platform development tool. On one of my pet projects I went back to having separate codebases. It does mean prolonged development times, which is quite a bummer, but on the contrary I'm picking up a few new languages along the way, and not having a struggle with toolchain related problems. Not bad at all :)

This is my experience. What's yours? :)
Hacktoberfest is ON!
Tags: webdev, github, contributorswanted
Published: 2019-09-30 14:24:03

I'm very excited about the #hacktoberfest that's coming in the next 24 hours. It's my first time participating and will be helping a friend with one of his projects: {% github N0obCoding/Introduction-to-the-web %}

The idea behind all of his is to help newbies to have all the tools they need to build a complete web application successfully and with ease. 

If you guys want to help us, just reach out, we will be glad to see those PRs :)

Also, have you guys participated before? and if so, how was your experience?
The Building an Indie Business Podcast- Twitter Lists
Tags: podcast, startup, beginners, productivity
Published: 2019-09-30 14:21:13

In this episode I discuss Twitter lists. I discuss the reason I use them, the benefits, and the drawbacks.

[Episode Page](https://baib-podcast.com)
[Revenue Research](https://revenueresearch.co/)

https://overcast.fm/+RG5iYFDO8
Test Automation in the Cloud with Python. Contributors Wanted
Tags: hacktoberfest, python, aws, testing
Published: 2019-09-30 14:19:40

Interested in all the services that AWS has to offer. Do you love python? Do you enjoy working with boto3 API to interact with AWS services?

Imagine if you need to write automated tests that interacted with AWS Services like s3, dynamoDB, RDS, and more.  

Robotframework is close to the standard for test automation in 2019. Its all python and built by open source with the ability to write python to add custom libraries.

Here is a long list of all of the libraries.
https://github.com/VVilde/RobotFramework-Materials'

Notice the cloud is missing?

If your interested and have experience with Robotframework, boto3, and python. Check it out!

This library already has features to build automated tests to ensure file uploads, downloads, and others with s3. This is only the beginning.

https://github.com/teaglebuilt/robotframework-AWS
Thank You from DevFest WI
Tags: conference, devfest, thankyou, community
Published: 2019-09-30 13:56:30

Thank you speakers, volunteers, community partners, sponsors, and attendees for making DevFest WI a success! We couldn't have done it without you.

## Feedback

We value your feedback. Please tell us how we did and what we can do better. You can provide anonymous feedback for the next couple of days at [devfestwi.com/feedback](https://devfestwi.com/feedback).

The amazing speakers are also always looking for ways to improve. Please login to [devfestwi.com/schedule](https://devfestwi.com/schedule) and review sessions, if you haven't already. Any comments will be anonymously passed along to the speakers. We've had some reports of session reviews not working. If you experience this please email contact@gdgmadison.com with your OS version and browser version.

## Photos

They say a photo is worth a thousand words, so please join the photo album at [devfestwi.com/photos](https://devfestwi.com/photos) and upload your best shots! Reminder: please don't upload photos featuring attendees wearing red lanyards.

## Sponsors

Thank you to our sponsors who made it possible for us to have such a fantastic venue.

- [Propeller Health](https://www.propellerhealth.com/)
- [Google](https://www.google.com/)
- [Bendyworks](https://bendyworks.com/)
- [Polco](https://info.polco.us/)
- [Ionic](https://ionicframework.com/?utm_campaign=Devfest%202019&utm_source=Devfest%202019&utm_medium=referral)
- [8th Light](https://8thlight.com/)
- [Custom Color Palettes by Claire Tomm](https://www.clairetomm.com/)
- [Hearts & Farts](http://missingdink.dribbble.com/)
- [Madison Chocolate Company](https://www.madisonchocolate.com/)

## Community Partners

Check out our community partners who are doing such amazing work! We are honored to have them involved.

- [Women in Tech Madison](http://madisonwomen.tech/)
- [Dev_Together Madison](https://www.meetup.com/DevTogetherMad/)
- [Maydm](https://maydm.org/)
- [Codecinella](https://codecinella.org/)
- [Girls in Tech Milwaukee](https://www.meetup.com/Girls-in-Tech-Milwaukee/)
- [Diversify Tech](https://www.diversifytech.co/)
- [YWCA Madison](https://www.ywcamadison.org/)

## Opportunity Sponsorships

We think everybody should have the opportunity to become a better technologist so we created the opportunity sponsorship program for members of underrepresented groups in tech or with financial constraints. With the amazing support of the community, we were able to provide free tickets to 12 sponsorship applicants. 

## GDG Madison

DevFest WI is organized by [GDG Madison](https://gdgmadison.com). [Join the Meetup](https://www.meetup.com/gdgmadison/) for more content during the other 11 months of the year. We're always looking for people to present so please reach out to contact@gdgmadison.com. Meetups are a great low pressure event for your first time presenting, and we're always happy to help you prepare your talk.
How to Install MySQL on Mac
Tags: webdev, mysql, tutorial, sql
Published: 2019-09-30 13:55:20

First Check if you have MySQL installed on your Mac.

> Type mysql in your terminal

If you have mysql there, you can get different types of messages, one that you might get is this one

```Error 1045 (28000): Access denied for user 'username'@'localhost' (using password: NO)```

This way you will know you have mysql installed, but if you get an error saying something like;

```-bash: /usr/local/bin/mysql: No such file or directory```

This way we know that `mysql` is not installed, we then go ahead to [mysql.com](https://dev.mysql.com/downloads/file/?id=486026) to download the mac version.

> click that link above — it already has mac version selected

Double click on the downloaded file.

![Installing Mysql](https://thepracticaldev.s3.amazonaws.com/i/9k2ycv2ylq2iud8ibu86.png)

Follow the installation process, and then when you get to the point where you are asked to create a password, make sure you do create a password you would remember.

Boom! Finish the process and be Happy!

...

That’s not all. that’s the first part!

...

Now that we have MySQL installed, let’s make sure it is accessible anywhere on the computer.

But before that, let’s just check to make sure it is working properly.

Open System Preference and click on MySQL logo

![Start MySql](https://thepracticaldev.s3.amazonaws.com/i/1jmdvu932o06sg044sln.png)

So now that we know it is working, let’s add the PATH, so we can use terminal to access MySQL from anywhere on our system.

>> Open Terminal
>> cd to root ~/

then run this command to see all the files you have, just to be sure you have .bash_profile file on your system.

so you run `ls -al` and then scroll till you find `.bash_profile`

![Edit Bash Profile](https://thepracticaldev.s3.amazonaws.com/i/zjcancfv140iom34mqka.png)

If you do not have `.bash_profile file`, simply run `touch .bash_profile` and you would have created a file called `.bash_profile`

Now that we have `.bash_profile` we open it with the following command;

```open -t .bash_profile```

This way you open up the `.bash_profile` in the text editor and then you should add this line to the file;

```export PATH=${PATH}:/usr/local/mysql/bin/```

Now you should save the text file and then close the terminal instance.

Restart your terminal and then run `mysql -u root -p` in your terminal.

You should get something looking like this.

![Run MySql](https://thepracticaldev.s3.amazonaws.com/i/vsmyd66jhb600b3gj6h1.png)

...

Now you can write your MySQL codes and be Happy! 😁

...

Thank you for your time. I hope you’ve enjoyed reading this article.