teleren/devto huggingface dataset:
Flutter: The next big cross-platform framework?
Tags: flutter, react, reactnative, discuss
Published: 2021-04-16 18:42:03

## A little bit of context

If we would have to name what are the most trending or popular frameworks, we may think about JavaScript ones. This, having in count that the cross-platform movement is growing so fast. **And with a justified reason**. 

Choosing a cross-platform framework, allows you to build apps for any kind of platform; such as web, desktop and mobile.  
All of this without having to learn different technologies in the process. You can learn one programming language, and build many kind of applications. Such a great thing, right?

The ability to build applications for many kind of platforms reduces costs and also time. Years ago, if you wanted to build an Android app, you probably would have chosen Java. Or if you were planning to release the app on iOS, then Swift would have been a reasonable technology to work with. 

As you can imagine, learning this two technologies were not impossible, but a time-consuming and very improbable thing. What developers were used to do (and still do) was specializing in one, such as Android or iOS option.

Nowadays, we still have mobile, desktops and web developers. But it's most likely to find a developer who can work with these three platforms and dominates one language. If you're a JavaScript developer, for example, you can develop web, desktop or mobile apps with JavaScript. So you only have to learn how is the process of doing a cross-platform app in your language, but not a entire, new one. 


## Cross-platform frameworks

We've mentioned JavaScript as a language which supports cross-platform development, and certainly this is true. You can choose React for web, Electron for desktop or React Native for mobile (either for Android or iOS!). 

But there are also other frameworks that are not based on JavaScript. This is the case of Flutter, which is based on Dart. 

And my post goes in this way. We've seen a very interesting Flutter's growth across time. As you can see in the next Stackoverflow trends' graphic:


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1k5o7f3cmwxbbp7f8x2a.png)

This other Google Trends graphic, shows the next: 

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

As we can see, trendings indicate Flutter is growing at least in interest of the dev community. Big firms like **Tencent**, **Alibaba Group**, **Ebay** and many others are starting to adopt this technology as its base language to start to build new cross-platforms apps.

In the FOSS community, [Canonical has just announced they will adopt Flutter](https://ubuntu.com/blog/flutter-and-ubuntu-so-far) as its main technology for mobile and desktop developments.

So... these are not fixed trendings, of course. They may vary over time. 

## But what do you think? Flutter will be the next big cross-platform framework?

I read you in the comments!
CodeFactory for Visual Studio (free license)
Tags: dotnet, csharp, opensource, tooling
Published: 2021-04-16 18:39:42

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

Learn more about the power of auto-transformation and legacy app modernization using CodeFactory www.linktr.ee/codefactory

CodeFactory for VisualStudio enables architects & dev leads to auto-generate & implement consistent design pattern adherence across the entire dev team.

### Lots of community projects available and looking for contributors - https://github.com/CodeFactoryLLC/Public-Projects
Top 14 Python Projects to learn GitHub Actions 🚀
Tags: github, python, discuss, testing
Published: 2021-04-16 18:31:37

GitHub actions help developers to automate workflows. You can run tests, build and publish packages, check coverage, lint the codebase, and do tons of other cool stuff, using GitHub actions.

Some of the best and most popular python projects are using GitHub actions to automate their workflow.

GitHub actions are defined using a yaml file under the `.github/workflows` folder.


If you are completely new to GitHub actions, the official documentation can help: https://docs.github.com/en/actions


The best way to learn is by seeing examples. Below is the compilation of links to great GitHub action workflows.

(the order of listing is completely random)

**poetry**  https://github.com/python-poetry/poetry/tree/master/.github/workflows

------------
**fastapi** https://github.com/tiangolo/fastapi/tree/master/.github/workflows

-------------
**mkdocs** https://github.com/mkdocs/mkdocs/tree/master/.github/workflows

------------

**material mkdocs** https://github.com/squidfunk/mkdocs-material/tree/master/.github/workflows

-------

**typer** https://github.com/tiangolo/typer/tree/master/.github/workflows

---------



**pytest** https://github.com/pytest-dev/pytest/tree/main/.github/workflows


---------


**pylint** https://github.com/PyCQA/pylint/tree/master/.github/workflows

----------
**mypy** https://github.com/python/mypy/tree/master/.github/workflows


---------
**requests** https://github.com/psf/requests/tree/master/.github/workflows


-----------
**aiohttp** https://github.com/aio-libs/aiohttp/tree/master/.github/workflows

--------

**black** https://github.com/psf/black/tree/master/.github/workflows

---------

**python-youtube** https://github.com/sns-sdks/python-youtube/tree/master/.github/workflows

-----------


**pygithub** https://github.com/PyGithub/PyGithub/tree/master/.github/workflows

-----------

**coverage** https://github.com/nedbat/coveragepy/tree/master/.github/workflows
Free Appointment Scheduling Tool for Remote Teams
Tags: webdev, javascript, productivity, programming
Published: 2021-04-16 18:26:16

Remote Work and Work From Home is here to stay. Even post-pandemic the majority of office workers are in favor of a hybrid of fully remote setting. This also means we need to use better & smarter tools to be more productive and efficient.

Today we release our Free and Improved **Appointment Scheduling Tool** for international and **remote teams**. This software is inspired by online tools like Doodle, which allow team members to indicate their availability. The results can be monitored in real-time and show all overlapping dates and times where all users can attend.

Live demo: https://cloud.spurwing.io/Availability/S01/

[![free appointment scheduling tool](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q099a57m27c82f2axyfd.png)](https://www.youtube.com/watch?v=VehzYEmXvlc)

Full YouTube Demo: https://www.youtube.com/watch?v=VehzYEmXvlc

## Overview
The homepage calendar remains untouched for most of it. The major improvement is that we now get a shareable single link.

![scheduling tool for remote teams](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b39qy97xjmh9374190cy.png)
 
On the new link each user can select the cells to indicate their availability for a given date and time. A name and email address must be provided in order to submit the answer. Updating an already submitted answer is possible by re-submitting using the same email.

![appointment scheduler for remote teams](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gw6u61d9otwgnp74cant.png)
 
The results sections shows the strict overlap of all the answers, of each submitted user. But also allows you to toggle individual members to see the overlap or intersection.

As in the initial version, all submissions and dates/times are displayed with respect to the attendee's and viewer's time zones.

## Implementation
The full implementation of this team scheduling solution is available on [GitHub](https://github.com/Spurwingio/Availability-Solutions/tree/main/solution_01). We use JavaScript/jQuery for the front-end client with the help of a few libraries, and NodeJS + Express for the back-end server.

## Conclusion
No matter your front-end or back-end stack, you can easily integrate this solution into your existing system. For inquiries, problems or other issues please reach to us.

Support email: ilya@spurwing.io
Discord community: https://discord.gg/j3gd5Qk5uW

Make sure to follow our blog for all new releases. For more tools and resources check out our github: https://github.com/Spurwingio/

Have a great day!
What to do once you reach max integer value for an auto incremented column in Rails
Tags: ruby, rails, sql
Published: 2021-04-16 17:44:55

---
title: What to do once you reach max integer value for an auto incremented column in Rails
published: true
description: If you use auto-incremented integers as primary keys in your database you may have wondered how a Ruby on Rails application behaves once the number of records in a table reaches the maximum value (`2147483647`). The chances that you haven't ever thought about it are probably quite high, same as it was for us. This oversight hit us in the best possible moment - on Friday afternoon...
tags: ruby, rails, sql
//cover_image: https://direct_url_to_image.jpg
---

If you use auto-incremented integers as primary keys in your database you may have wondered how a Ruby on Rails application behaves once the number of records in a table reaches the maximum value (`2147483647`). The chances that you haven't ever thought about it are probably quite high, same as it was for us. This oversight hit us in the best possible moment - on Friday afternoon...

If you've landed here simply out of curiosity then great - you'll learn how to avoid such mistakes in the future. If you're here because your application just started throwing errors then keep reading - you'll learn how to fix the problem easily.

# What happened?
On Friday afternoon we started seeing the following errors when trying to create records in a mysql table (let's call it `records` along this article):
```ruby
irb(main):007:0> Record.create(name: 'test-abc')  
Traceback (most recent call last):  
        2: from (irb):7  
        1: from (irb):7:in `rescue in irb_binding'  
ActiveRecord::RecordNotUnique (Mysql2::Error: Duplicate entry '2147483647' for key 'PRIMARY': INSERT INTO `records` (`name`, `created_at`, `updated_at`) VALUES ('test-abc', '2021-01-29 16:00:22', '2021-01-29 16:00:22'))
```

As you can see the error happens because MySQL tries to insert another record with the same ID as the already existing one. You can also verify that the auto increment value is "stuck" at max integer value by running:
```ruby
ActiveRecord::Base.connection.execute("SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'records'").to_a  
=> [[2147483647]]
```

# How do I fix it?
Fortunately the fix is really simple - all you need to do is run a Rails migration to change the `id` column type from a basic 4 byte `:integer` to a bigger, 8 byte `:bigint` type:

```ruby
class ChangeRecordsIdToBigint < ActiveRecord::Migration[5.2]
  def change
    change_column :records, :id, :bigint, null: false, unique: true, auto_increment: true
  end
end
```
Developers Aren't Essential because they Write Code
Tags: html, dotnet, database
Published: 2021-04-16 17:30:26

They are essential because they know things and think logically. You can build a website without a developer using [Squarespace](https://squarespace.com) and you can do it for free with [WordPress](https://wordpress.org). You can build a form based app with [ServiceNow](servicenow.com) and you can do it for free with (shameless plug for my free tool) [Polyapp](https://gitlab.com/polyapp-open-source/polyapp). You can build video games in [Unity](https://unity.com). There are similar no-code tools which let you build apps for Android and iOS.

A lot of people will jump at this and say, "but without a developer, you can't calculate X Y Z!" or "those tools aren't flexible enough to replace the app I'm building!" Obviously someone needs to code everything, but in large developer ecosystems someone has probably already coded something just like what you're writing and your job is reduced to configuring that thing. Most of the code I used to write was configuring components someone else wrote on the front end and transforming data from the database into the UI and back again on the back end. Even those things are just configuration. HTML is configuring components defined by the HTML standard. Typing out a data model in C# and setting up Entity Framework is just a way to configure the .NET framework. You could write a UI with all of the different choices for HTML and Entity Framework model choices as a form, and have someone select from the list of choices and all of that work would be poof - gone. Incidentally, this is sort of how [Polyapp](https://gitlab.com/polyapp-open-source/polyapp) works.

Most application coding doesn't need to be done by someone with knowledge of how to set up Visual Studio or the intricacies of planning and developing an object oriented data model. Most development work could be done by someone who has a problem sitting down, finding a template for a solution to their problem, and then going through many, many, many options describing the solution and adjusting them to fit their needs. Doing things themselves would save them a ton of time and heartache when the thing they paid for doesn't turn out the way they wanted. But that's not what happens.

It's not what happens because small fractions of every applications require a developer, and developers aren't educated to use a hybrid model with some no-code development and some code. They believe the only options are 100% coded by me or 0% coded by me.

It's not what happens because most people have no clue that low-code or no-code tools exist, and even if they do they don't understand concepts like foreign key columns and one-to-many references.

It's not what happens because creating apps requires dozens of steps and most people aren't good at logically thinking through each step.

It's not what happens because developers know things and think logically.
Video: A No-Code Definition I Like
Tags: nocode, video
Published: 2021-04-21 16:25:10

---
title: Video: A No-Code Definition I Like
published: true
date: 2021-04-16 17:21:52 UTC
tags: NoCode,Video,Nocode
canonical_url: https://maxkatz.org/2021/04/16/video-a-no-code-definition-i-like/
---

A short video based on this blog post: [A No-Code Definition I Like](https://dev.to/maxkatz/a-no-code-definition-i-like-1foa).

{% youtube Il-Vm0Jakng %}

Watch my other no-code videos: [YouTube no-code playlist](https://www.youtube.com/watch?v=Il-Vm0Jakng&list=PLSAWywyhniCOpvlFSfUWVNAbclc2-1Kne).
Push the same project to multiple different remote repositories at the same time by using git remote
Tags: git
Published: 2021-04-16 16:51:27

---
title: Push the same project to multiple different remote repositories at the same time by using git remote
published: true
description: 
tags: git
//cover_image: https://images.unsplash.com/photo-1527078034588-ff0ffd94d5c0?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=2100&q=80
---

Assume that you have the same project code `project-awesome`, but hosted on three different repositories:
```bash
## on Github
https://github.com/vikbert/project-awesome

## on GitLab
https://gitlab.com/vikbert/project-awesome

## on Bitbucket
https://bitbucket.com/vikbert/project-awesome
```

And you use the GitHub repository as your **MAJOR** repository, but you wanna push also the new features to the other repositories on `gitlab` and `bitbucket` at the `same time`.

Here is the solution to make it possible:

#### 1) define the major remote repository named `origin`
```bash
git remote add origin https://github.com/vikbert/project-awesome
```

#### 2) define another remote repository named `all`
```bash
git remote add all https://github.com/vikbert/project-awesome
```

#### 3) add the additional Urls to the remote group `all`

```bash
## we add the two other additional remote URL to the "all" remote.
git remote set-url all --push --add https://gitlab.com/vikbert/project-awesome
git remote set-url all --push --add https://bitbucket.com/vikbert/project-awesome
```

#### 4) check if the grouped URLs are set to the remote `all`
```
git remote -v
```

we will see the remote "all" repository own the three different URLs
```
# origin https://github.com/vikbert/project-awesome (fetch)
# origin https://github.com/vikbert/project-awesome (push)
# all https://github.com/vikbert/project-awesome (fetch)
# all https://gitlab.com/vikbert/project-awesome (push)
# all https://bitbucket.com/vikbert/project-awesome (push)
```

#### 5) Now push the current changes to all of 3x remote repositories
```
## if your current local branch is "master"
git push -u all master
```

#### 💥 Remove the remote repository from the group `all`
```
git remote set-url all --push --delete https://bitbucket.com/vikbert/project-awesome
```
#5 of 100DaysOfCode
Tags: react, 100daysofcode
Published: 2021-04-16 16:37:54

Fifth Day,
Today I feel great. I made another react app and I installed create-react-app to use React locally, pretty cool. 😁

Anyway, my today's learnings are:
* What's the importance of key attributes.
* How do onClick work?
  + Each function inside the onClick closes over its parent element and gives us access to its props. - Guess what am I talking about ???
  + [Read more](https://jscomplete.com/closures)
* More about different hooks in React
  + React.useState(initialValue) ---> [stateVariable, setStateVariable]
  + React.useEffect(callback)
* Importance of the function that is returned by callback of useEffect
* How should we clean stray side effects created by the useEffect().
* 'key' attribute and mounting and unmounting dom elements with its help.
* Division of responsibilities within the Component and its state manager.
* custom hooks in React and the fact that we should prepend their names with 'use' to give hints to linters.
* **1st Rule of Hooks** - Never wrap them in conditional code blocks of any sort like loops and if-else.
Because even if you do it won't work.
* Creating my very first react app locally by using the create-react-app tool.

```javascript
> yarn create-react-app my-first-app
```
But I don't know why did 
```javascript
> npx create-react-app my-first-app
```
gave me some sort of <code>unable to resolve dependency tree</code> error.

But that doesn't matter anymore *yarn* saved the day.

This is my today's code,
A simple game where you just have to pick 1 or more numbers that sum up to the number of stars. 
It's pretty long so here is a link to [Github Repository](https://github.com/icecoffee-dev/starGameApp--5-100daysOfCode/tree/main/star%20game%20app).

###👉 [Star Game App](https://hungry-villani-79e05d.netlify.app/)
Try it out....
 
I don't know much but till now the best part that I have absolutely loved in React is that how component that small can render so much code that too combined with the power of functions like map and filter.⚡


Thanks for reading this.😀
If there are any mistakes or suggestions, please let me know.🙂
Have a wonderful day.🌹
image "pyimage14" doesn't exist
Tags: python, tkinter
Published: 2021-04-16 16:35:00

from tkinter import *
from PIL import Image, ImageTk


window = Tk()
name = Label(window, text = 'PythonX -Learn Python', bg = 'white', fg = 'blue', font=('Serif',16))
img = Image.open('OIP.png')
logo = ImageTk.PhotoImage(img)
image = Label(master = window , image=logo)
btn = Button(window, text = 'Submit')
username = Label(window, text = 'Username', font = ('serif',12))
inputBox = Entry(window)

name.pack()
image.pack()
username.pack(side=LEFT)
inputBox.pack(side=RIGHT)
btn.place(x=100, y=350)
window.mainloop()

this is my code and error which i am getting, is not answered before on google nor asked, kindly help!
A single function to add, update, read & delete from an array
Tags: javascript, webdev, codenewbie, beginners
Published: 2021-04-16 16:27:52

```js
/**
 * Perform CRUD on arrays of objects
 * @param {array} arr - Input array
 * @param {string} cmd - Operation to perform
 * @param {string} payload - Element with the data
 */
const crux = (arr = [], cmd, payload) => {
  if (!arr) return [];
  if (!payload) return arr;

  switch (cmd) {
    case "add":
      return [...arr, payload];
    case "update":
      return arr.map((item) =>
        item.id === payload.id ? { ...item, ...payload } : item
      );
    case "read":
      return arr.find((item) => item.id === payload.id);
    case "delete":
      return arr.filter((item) => item.id !== payload.id) || [];
  }
};

const data = [{ name: "AB", id: 1 }];

crux(data, "add", { name: "CD", id: 2 }); // [ { name: 'AB', id: 1 }, { name: 'CD', id: 2 } ]

crux(data, "update", { name: "Updated AB", id: 1 }); // [ { name: 'Updated AB', id: 1 } ]

crux(data, "read", { id: 1 }); // { name: 'AB', id: 1 }

crux(data, "delete", { id: 1 }); // []
```

---

**Thanks for reading 💙**  
Follow **@codedrops.tech** for daily posts.  
[Instagram](https://www.instagram.com/codedrops.tech/) ● [Twitter](https://twitter.com/codedrops_tech) ● [Facebook](https://www.facebook.com/codedrops.tech/)

Micro-Learning ● Web Development ● Javascript ● MERN stack ● Javascript  
**[codedrops.tech](https://www.codedrops.tech/)**
Recreate with Vue
Tags: vue, beginners, codenewbie, webdev
Published: 2021-04-16 16:17:50

I was checking Vue for the past few weeks. I was searching for a good project to practice my Vue knowledge. I found an old Frontend Mentor challenge I did while I was learning Javascript. I redesigned the challenge with Vue.
- [Job listing with filter](https://www.frontendmentor.io/solutions/job-listings-with-filtering-with-scss-made-changes-in-mobile-view-6oFOWJQhR)
- [Github Link](https://github.com/zayazzp/job-listings-with-filtering)
Let's use reduce, map, filter, foreach and be more functional in javascript
Tags: functional, beginners, tutorial
Published: 2021-04-16 15:50:51


```javascript
console.log([1,2,3,4].reduce((x,y) => { return x  + y })) // 10 
// Elements reduced to one value

console.log([1,2,3,4].map((x) => { return x  + 5 })) // [6,7,8,9] 
// Do something for each value and make a new array

console.log([1,2,3,4].filter((x) => { return x  % 2 === 0 })) // [2,4] 
// Filter the elements and make a new array

const array1 = [1, 2, 3, 4];

array1.forEach(x => { console.log(x)});
// For each loop.

```