teleren/devto huggingface dataset:
Finalizing Ubuntu Lumina
Tags: linux, ubuntu, distributedsystems, ux
Published: 2020-04-29 05:06:08

Ubuntu Lumina's production process has been long and filled with doubt, frustration, anger, and stress. A couple of days ago, on the 26th of April 2020, the first Debian package was created. Now with lots of back end work, talking, researching, and testing, and designing, Ubuntu Lumina is entering the finalization process.

# What's the "Finalization Process"?
The finalization process is us getting prepared for the build and release of the ISO. This process includes making more art, making promotional material, improving what we already made, and fixing things we did wrong before we build the full ISO.

## What's being added in the finalization process
Better branding images for Ubuntu Lumina, in terms of the logo and type. The brand guidelines are in production. The addition of new wallpapers and artwork. A better Debian package, and the official Lumina desktop PPA for Ubuntu Lumina.

## What's NOT being added during the finalization process?
The addition of themes, whether for icons, window bars, or the dock. Themes are not a high priority. Ubuntu Lumina will have custom made themes, hopefully starting by 20.10 or 21.04.

The addition of a welcome app, while something that will be added to Ubuntu Lumina, this release will not include it.

The addition of custom applications, while we are including Lumina defaults, those are not developed for Ubuntu Lumina. Along with that, we understand some of the applications are imperfect. Insight is the file manager, however, some might not enjoy using it.

# What is planned for the future?
Ubuntu Lumina aims to include a full welcome application, a custom build application center, custom themes, custom icons, and to include better software.

# What will be added?
Ubuntu Lumina will run with Firefox, use Terminator as the terminal emulator, and Lumina desktop included software. At this time we have no further applications to add. The installer will be Calamares.
How to move WSL2 distro
Tags: windows10, wsl, linux, programming
Published: 2020-05-27 17:27:07

---
title: How to move WSL2 distro
published: true
date: 2020-04-29 00:00:00 UTC
tags: Windows10,wsl,Linux,Programming
canonical_url: https://www.jskap.com/notes/how-to-move-wsl2-disto/
---

  

![](https://friendly-heyrovsky-86d9f9.netlify.app/opengraph?&author=kapilgorve&title=How%20to%20move%20WSL2%20distro&tags=Windows10,wsl,Linux,Programming)

  

## Edit -[<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#Edit--)

As pointed out by `lxrunoffline` [author](https://github.com/DDoSolitary/LxRunOffline/issues/90), it is supported to move WSL2 distro. No conversion needed. This post is applicable for older `lxrunoffline` versions. If you are on latest version follow this post - [/blog/install-move-wsl-distro-from-c-drive-to-another-drive/](/blog/install-move-wsl-distro-from-c-drive-to-another-drive/)

You can use `LxRunOffline` tool to move WSL 1 distros. I faced errors for moving wsl2 distro. You need to convert your distro to v1 and then move. Then convert again to v2.

## Move WSL2 distro from C drive[<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#Move-WSL2-distro-from-C-drive)

- Install `LxRunOffline` tool. `choco install lxrunoffline`
- Stop your distro.
- 

`wsl --list --verbose` List all the installed distros on your system. I get output like this.

```
D:\work>wsl --list --verbose
NAME STATE VERSION
docker-desktop Stopped 2
Ubuntu-18.04 Stopped 2
docker-desktop-data Stopped 2
D:\work>
```

- `wsl --set-version Ubuntu-18.04 1` This will convert your distro from v2 to v1.
- `lxrunoffline move -n Ubuntu-18.04 -d G:\wsl\`. Move your distro to another drive. My distro name here is `Ubuntu-18.04`. I am moving it to `G drive` and `wsl` folder inside it. It would take some time to finish moving.
- `wsl --set-version Ubuntu-18.04 2` This will convert your distro from v1 to v2 again.

That's it. You can start to use your distro again.

  

👋 Hi! I’m Kapil. I am always chatty about building things, sharing my learnings, freelancing. Come say hi to me at [https://twitter.com/kapilgorve](https://twitter.com/kapilgorve)
Introducing Azure Sphere Developer Learning Path Labs on GitHub
Tags: azuresphere, freertos, msiot, iot
Published: 2020-04-29 04:55:32

---
title: Introducing Azure Sphere Developer Learning Path Labs on GitHub
published: true
description: Azure Sphere Developer Learning Path is a set of libraries and labs to simplify the Azure Sphere Developer Experience
tags: #azuresphere #freertos #msiot #iot
---
IoT security is a critical challenge touching every aspect of our lives. Security is complex, expensive, and ever-changing as hackers become more cunning. Azure Sphere builds on decades of Microsoft and industry security experience with a unique blend of hardware, device and cloud services that enables you to create “Secure by default” IoT solutions. 

The [Azure Sphere Developer Learning Path](https://aka.ms/azure-sphere-developer-learning-path) is a series of labs designed to ease you into the world of Azure Sphere development with the Avnet and Seeed Studio Azure Sphere development boards. 

The labs cover Azure Sphere security concepts, secure bi-directional cloud communications, how to integrate FreeRTOS Real-Time applications with the Azure, and over the air updates, with more labs to follow.

![](https://github.com/gloveboxes/Azure-Sphere-Learning-Path/blob/master/zdocs/resources/azure-sphere-end-to-end.png?raw=true)

[Learn more about Azure Sphere](https://azure.microsoft.com/services/azure-sphere/)

These labs include several libraries used to abstract underlying complexity allowing you to focus on the problems you are trying to solve with cleaner and more manageable code. You are free to use these libraries in your projects and contribute back.
 

Start, or reignite your Azure Sphere development projects and learn how to build “Secure by Default” IoT solutions with the “[Azure Sphere Developer Learning Path](https://aka.ms/azure-sphere-developer-learning-path)” labs.
 
## Learning Modules

* [Develop highly secure IoT solutions with Azure Sphere, Azure RTOS and IoT Central](https://docs.microsoft.com/en-us/learn/modules/develop-secure-iot-solutions-azure-sphere-iot-central?WT.mc_id=iot-10976-dglover)
* [Develop highly secure IoT solutions with Azure Sphere, Azure RTOS and IoT Hub](https://docs.microsoft.com/en-us/learn/modules/develop-secure-iot-solutions-azure-sphere-iot-hub?WT.mc_id=iot-11691-dglover)

Learn more about "[The Seven Properties of Highly Secure Devices](https://www.microsoft.com/en-us/research/wp-content/uploads/2017/03/SevenPropertiesofHighlySecureDevices.pdf)".

For questions and support head to [Azure Sphere Support](https://docs.microsoft.com/en-us/azure-sphere/resources/support).
Export or Import Issues from GitHub
Tags: github, csv
Published: 2020-04-29 04:34:02

---
title: Export or Import Issues from GitHub
published: true
description: Export GitHub Issues to CSV
tags: github, csv
cover_image: https://i.imgur.com/xTZOvQc.png
---

[GitHub CSV Tools](https://github.com/gavinr/github-csv-tools) now supports exporting issues! 

- Choose what columns you want in the exported CSV with `--exportAttributes`. 
- Export all the comments per issue with `--exportComments`

Importing issues via a CSV is also possible, just pass a CSV file like `githubCsvTools myFile.csv`.

To get started, just run `npm install -g github-csv-tools` and then export with the command `githubCsvTools`.

Enjoy!

{% github gavinr/github-csv-tools %}
5 Reasons to Embrace Flutter for your Uber-like App Development
Tags: flutter, android, ios
Published: 2020-04-29 04:19:45

Flutter grew so popular among developers as it’s known for developing cross-platform applications using a single codebase. Since the release of the Flutter from Google on December 4, 2018, numerous tech companies see it as a suitable option for app development. It is an open-source software development kit, more developers are using it to create their own [Uber for x service apps](https://www.rentallscript.com/blog/uber-for-x/).

Here in this blog post, we are going to explore why Flutter is a good choice in developing [On-demand apps](https://www.rentallscript.com/blog/on-demand-apps-in-the-us/).

**I. Cross-Platform Development tool**
With Flutter, you can develop applications in iOS and Android apps using a single codebase. You can just develop the code once and reuse it to create apps on other platforms. 

It is easily compatible with different operating systems, causing no issues while developing. This ultimately saves development time for developers.

**II. Faster App Development**
Flutter has the feature ‘Hot Reload’, which helps in seeing the output of your code on your mobile screen at the time of development.

If developers need to change the code or solve an error, it is easy for them to see the changes immediately. The changes made in the source code immediately reflected in the running app without the need for restarting.

This is possible due to the Flutter made using Dart programming language, an object-oriented programming language.

**III. Less Testing Effort**
It takes less time to test the whole product as the whole product built from a single codebase. All they got to do is test a single product to find any logical errors and usability.

**IV. Suitable for MVP Development for your Uber-like app**
Minimum Viable Product is a product having minimalistic features to get business ideas and product design validation from the customers. The MVP is usually developed faster to release quickly into the market for learning the current customer needs.

Flutter development gives the advantage of developing product applications faster and in various operating systems, it is easy to launch your product faster in the market.

**V. Attractive and Flexible Widgets**
Flutter technology comes with a library full of various widgets. Developers can build easily responsive apps at a short time into multiple platforms.

You can customize the widget according to the product requirements and also help in building attractive widgets in a short span of time.

To develop an Uber-like app using Flutter, [Wooberly - Uber clone script](https://www.rentallscript.com/uber-clone/) be the best fit for your needs. 

Wooberly is a ready-made Uber clone software, easily customizable to any Uber for x products, enclosed with all the essential features for the real-time working of Uber-like apps.
User experience is everything
Tags: webdev, ux, ui, design
Published: 2020-04-29 04:13:36


With time, it’s natural to forget that a web application means nothing without users. Development might focus on cosmetic changes or swapping technologies under the hood. However, without any substantial improvement for your users, the value of changing the layout of your website or breaking down a monolithic application is questionable. Even worse, your paying customers might get frustrated when they notice that you are just moving things around. This bug they put up with every time they use your website is still there and nothing has been done about it. This example is simplistic, yet it is drawn from my professional experience, where I’ve seen companies rebranding themselves so often that employees themselves grew tired of it.

A good way to circumvent the problem of development work for the sake of it is to constantly ask ourselves: How does this make the user’s life easier? Similarly, when your developers add a feature to your application, the question to keep in mind should be the following: How can I help users accomplish this task in two clicks instead of three? Providing feedback to our customers is essential to a good user experience: If an error occurred, do they get a notification, even vague, that something went wrong? Or are they confronted to a spinner that will never go away? For reasons that I have yet to understand, developers seem to put these problematics on the back burner. Unfortunately, not communicating to users when things are not going as planned is the best way to alienate them and jeopardize your business.

Creating a beautiful and efficient interface is critical to the popularity of your product. Don’t underestimate the power of a polished web page! If it looks beautiful and it’s simple, you will have an easier time conquering the hearts of minds of your users.
CODYSNAMES.com - A Codenames clone built on React, TypeScript, and Firebase.
Tags: showdev, react, firebase, typescript
Published: 2020-04-29 04:11:10

A couple of weekends ago, my wife and I wanted to play [Codenames](https://boardgamegeek.com/boardgame/178900/codenames) with some friends over Zoom. The day before I thought it would be a fun hackathon project to make an online version using `create-react-app` and Firebase.  The game is hosted at https://codysnames.com.  The first version came out after ~12 hours of plugging away and it _worked_... in that we got through 3 games successfully without any bugs popping up :). I've since put a lot more hours into this project over the last week and it's been quite fun! You can have a look at the source code here https://github.com/meenie/codysnames.  If anyone is interested in contributing, please be my guest!  The design is very basic and functional.  If you have ideas on how to improve it, that would be amazing as well.  The application was built using the following technologies:
1. React using `create-react-app`
1. Firebase using Firestore
1. TypeScript
1. Material-UI
1. `react-redux`
1. `redux-saga`
1. `immer`
1. `lodash`

As a developer, I'm very thankful for all of the wonderful opensource software we have at our fingertips.  There is no way I could have put something like this together in such a short amount of time without the hundreds of thousands of hours people have put into the above libraries.

One of the best tips I can provide to a software engineer at pretty much any stage of their career is that you need to dive in a get lost in some code every once in a while.  Especially if you need/want to learn a new framework or library.  One of my teams at work is using `redux-saga` quite heavily and I wanted to learn it myself, so I incorporated it into this project. You can see the PR to switch from plain `react-redux` to using `redux-saga` here https://github.com/meenie/codysnames/pull/1/files. A number of years ago, a friend showed me the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) in the browser and I used my music background to create a library called [Band.js](https://github.com/meenie/band.js).  You are able to use it to make songs like this: http://plnkr.co/edit/LG20SL?p=preview&preview.

Thanks for checking out my latest project!
GETTING CAMEL - CAMEL in Action
Tags: java, apache, camel, apachecamel
Published: 2020-04-29 04:02:00

Camel được định nghĩa, đơn giản là một framework để tích hợp các hệ thống khác nhau thành một hệ thống phức tạp hơn. Ra đời ở đầu năm 2007 và giờ đã phát triển thành một framework mạnh mẽ, được cấp phép với Apache 2 license và có một cộng đồng hỡ trợ mạnh mẽ.
Camel tập trung vào sự đơn giản khi tích hợp các hệ thống, với main point là Routing engine. Để hiểu rõ hơn, có thể tham khảo ở trang chủ Camel: https://camel.apache.org/
Tại bài viết này, mình xin đưa ra một cái nhìn tổng quan và đơn giản nhất khi tiếp cận Camel.
Bài toán: Xây dựng một hệ thống tích hợp hỗ trợ việc chuyển đổi dữ liệu từ data/inbox sang data/outbox.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/iflk1llqfuzjlkcc7fab.PNG)
Với yêu cầu đơn giản như trên, chúng ta có thể sử dụng low-level java APIs về File để chuyển đổi data như sau (khoảng 37 lines code):
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/lshebvxvcrfc8mcvqp06.PNG)
Đây là cách làm đơn giản nhất để impletation bài toán trên, tuy nhiên có một vài điểm chưa thật sự thỏa mãn ở đây. Ví dụ, khi ở thư mục data/inbox có thêm file mới, việc cần làm ở đây là chúng ta phải cài đặt thòi điểm loading lại folder, kiểm tra xem file đã sẵn sàng để đọc chưa, sau đó mới thực hiện 37 lines code ở trên. Bài toán đơn giản lúc đầu, dần trở nên phức tạp hơn.

Việc loading folder, kiểm tra file đã sẵn sàng để đọc chưa,... như ví dụ ở trên nói riêng, và các nghiệp vụ của hệ thống cần tích hợp nói chung, chúng đã được implementation trước đó rồi. Chúng ta không nên thực hiện lại việc này, khi triển khai thích hợp các hệ thống. Đừng sáng tạo lại chiếc bánh xe! Giờ chúng ta hãy xem, việc đó được triển khai như thế nào khi sử dụng Apache Camel.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/jvuctz1t24swb6p1dng2.PNG)
Mỗi một ứng dụng Camel sử dụng một CamelContext để kiểm soát việc bắt đầu/kết thúc một tiến trình tích hợp. Hãy chú ý và route(1).
Routes trong Camel định nghĩa các luồng đi của tiến trình tích hợp. Ở ví dụ này, route có thể hiểu là: Phát đi một message "from file" với địa chỉ là "data/inbox" có lựa chọn thuộc tính "noop". Thuộc tính "noop" này cho biết, Camel sẽ giữ lại tài nguyên file này. Nếu không sử dụng hoặc thuộc tính "noop = false" thì tài nguyên file sẽ bị xóa.
Hầu hết mọi người chưa từng tiếp cận với Camel, cũng đều hiểu được ý nghĩa của route này thực hiện điều gì. Đó là cái hay của Camel. Và hơn nữa, thay vì Sáng tạo lại chiếc bánh xe với 37 lines code, ở đây, chúng ta chỉ cần implementation với 2 lines code để tích hợp 2 hệ thống với nhau, giữ nguyên logic và business của riêng chúng.
Source code của example trên hiện có ở github: https://github.com/camelinaction/camelinaction2

Phía trên là cách tiếp cận đơn giản về Apache Camel để tích hợp hệ thống. Ở bài tiếp theo, mình sẽ nói kỹ hơn về các component và sâu hơn về cơ chế của Camel.
Bài viết có tham khảo nguồn từ: Camel in Action (Second Edition)
Hết.
32 : What is the difference between a frontend developer and a frontend Engineer?
Published: 2020-04-29 03:59:16

* Frontend developer just implements the GUI, using the provided design, specification and consultations with colleagues/client for additional information.

* Frontend engineer first measures the client and all the monitors by using a Vernier caliper, calculates their mass, acceleration and other parameters.

--- 
#**Engineers reason**

In a blog post Dominic differentiates engineer from programmer by explaining that an engineer, “…can reason about his subject.”

The engineer knows the subject very well — this is a given. A front-end developer should know his subject very well, too, but he doesn’t necessarily “reason about” his subject and try to gain a deep, intuitive understanding of how his subject works.

#**Developers do**

The front-end developer doesn’t “reason about” HTML, CSS, and JavaScript. The developer writes the code, and it works well (hopefully). It should be DRY, scalable, performant, etc.

The developer is a brick-layer, a drywaller, or an roofer. The developer does things, but not necessarily with the understanding and reasoning behind it. Does the brick layer necessarily know why the walls are 8 feet tall; does the drywaller know why the walls in the main corridor are 12 feet long?


--- 
##**A front-end engineer understands the mechanics behind the code**

The front-end engineer, through reasoning, isn’t just doing tasks. The front-end engineer knows why she wrote her code the way that she did. She takes stacking context into consideration when she uses transforms. She considers specificity when she picks a CSS methodology. She thinks about prototypal inheritance when she picks a JavaScript pattern. She considers the performance gains and losses between for-in and forEach.

Front-end developers can write good code. Front-end engineers can explain how good code works. They understand browser mechanics; how the browser parses CSS, forms the DOM, and compiles JavaScript. Front-end developers are more likely to fix things. Front-end engineers are more likely to solve things.


##**A front-end engineer creates**

Engineers design materials, structures, and systems while considering the limitations imposed by practicality, regulation, safety, and cost[1]. In the world of front-end, the starkest contrast I can provide is that a front-end engineer can create plugins, tools, frameworks, utilities, patterns, and methodologies.

--- 
A developer can use plugins, tools, frameworks, utilities, patterns, and methodologies.

The reason that front-end engineers can create these things is because the engineer “reasons about the code”. The engineer can evaluate a problem and design a solution or system that conforms to the limitations around it.
Effective Java! Use Interfaces Only to Define Types
Tags: java, effective, interfaces, architecture
Published: 2020-04-29 03:57:00

---
title: Effective Java! Use Interfaces Only to Define Types
published: true
description: A dive into chapter 21 of Effective Java
tags: java, effective, interfaces, architecture
series: Effective Java Review
canonical_url: https://blog.scaledcode.com/blog/effective-java/effective_java_use_interfaces_for_types/
---

The purpose of interfaces is to define a type. When a class implements an interface that should tell the user of the class something about what that class can do. If we are abusing interfaces for other purposes that is an inappropriate use of an interface. That's basically the whole of the content of this chapter. So if the interfaces is not being used to define a type what is it being used for? The most common use case is the Constant Interface Anti-Pattern. It looks something like this:
```java
// Antipattern
public interface PhysicalConstants {
  static final double AVOGAROS_NUMBER = 6.022_140_857e23;
  static final double ELECTRON_MASS = 9.109_383_56e-31;
}
```
When a class implements an interface like the above what does that tell us about that class? Really nothing. It's implementing it because it want's access to those constants but the consumers of the class don't need to know that. What it can also do is cause the consumers of your class to become dependent on those constants which locks you as the implementer from being able to remove these constants. If the constants aren't part of the value that is provided by your class we shouldn't be exposing them to our consumers like this interface does. So if we aren't to do this what are we to do? 

```java
public final class PhysicalConstants {
  private PhysicalConstants() { }
  public static final double AVOGAROS_NUMBER = 6.022_140_857e23;
  public static final double ELECTRON_MASS = 9.109_383_56e-31;
}
```

What we did above was create a utility class that holds the constants. This now forces it to stay simply an implementation detail and not pollute the public interface of our class. We may seem to lose out from accessing the constants in such a simple manner and have to fully qualify them (`ELECTRON_MASS` vs `PhysicalConstants.ELECTRON_MASS`) but we can get around this annoyance by doing a static import of the constant. 

This chapter simply comes down to use the tools and functionality for what it was built, don't abuse it and use it in a way that it wasn't intended.