teleren/devto huggingface dataset:
How can an opensource GPLv3/GPLv2 database (such as Neo4j or Virtuoso) be distributed alongside a proprietary software?
Tags: neo4j, virtuoso, licensing, gplv3
Published: 2022-11-29 19:22:43

How a proprietary closed source desktop software can be shipped and distributed alongside a GPLv2/GPLv3/AGPLv3 licensed database considering that some relevant part of its functionality relies on complex queries using a specific databases query language?

This is pretty forward and safe to do with PostgreSQL, SQLite databases as they have commercial/proprietary friendly licenses, but how does that applies to the GPLv... family licences?

Let's imagine two different desktop sotware scenarios:

- Scenario 1) The application uses [Neo4j GPLv3][1] database alongside Neo4j's own exclusive query language called Cypher. The program will have some relevant part of its functionality written in CypherQL even though it connects to the database using an [Apache 2.0 licensed driver][2]. 
- Scenario 2) The application uses [Virtuoso GPLv2][3] database but uses SPARQL as a query language ([a query language defined by a W3C standard][4], maybe we could call it an "open standard"?) an so, some relevant part of its functionality is written in [SPARQL and connects to Virtuoso using HTTP][5] requests.

How the relation between proprietary software and the GPLv3 Neo4j / GPLv2 Virtuoso is understood? Is it seen as "effectively a single program" or two separate programs that "communicate at arms length"?

[Quoting GPL FAQ][6]

> In many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

How can a proprietary software use a GPLv2/GPLv3 database without becoming GPL too?

  [1]: https://neo4j.com/licensing/
  [2]: https://github.com/neo4j-contrib/neo4j-jdbc
  [3]: https://vos.openlinksw.com/owiki/wiki/VOS/VOSLicense
  [4]: https://www.w3.org/TR/sparql11-query/
  [5]: https://vos.openlinksw.com/owiki/wiki/VOS/VOSSparqlProtocol
  [6]: https://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem
Viet Nam Trust Car Rental
Published: 2022-11-30 02:51:03

**Công ty Thuê Xe Đại Tín – cho thuê xe từ 4 tới
45 chổ đời mới, lái xe vui vẻ, hòa đồng, cam kết
không phát sinh chi phí, giá trọn gói.
** Gọi
0988.038.301 – Zalo.
Phương châm phục vụ  ” đón tận nơi về tận ngỏ” 
Công ty chuyên cho thuê xe du lịch tại Thành Phố Hồ Chí Minh ( Sài Gòn), Hà
Nội, Nha Trang, Đà Lạt, Vũng Tàu, Mũi Né, Huế, Hội An, Đà Nẵng, Sapa, Hạ
Long, tây Bắc, đông Bắc và các tỉnh miền tây Nam Bộ.
Với sự liên kết giữa các lái xe và phương tiện có sẵn tại đại phương, dịch vụ
thuê xe Đại Tín luôn nhanh chóng, tiện lợi và mang lại sự hài lòng cho khách
hàng.
Thuê xe Đại Tín cam kết mang lại dịch vụ tốt, xe đời mới, giá thuê xe cạnh
tranh nhất, xem review khách hàng bên dưới:

Chúng tôi cung cấp các đa dạng các dịch vụ  cho thuê xe  tự lái và có tài xế,
đặc biệt lái xe bên chúng tôi có thể giao tiếp tiếng Anh cơ bản, phục vụ các
chuyên gia nước ngoài.
Nếu bạn có như cầu thuê tự lái, thuê xe cưới hỏi, thuê xe du lịch tour, thuê xe
đưa đón nhân viên, đưa đón sân bay, thuê xe theo tháng. Tất cả đều được tối
ưu chi phí rẻ nhất với chất lượng cao nhất. Liên hệ thuê xe Đại Tín địa chỉ :
Công ty Thuê Xe Đại Tín 
Hotline 1: 0988.038.301 – Zalo
Hotline 2: 093.272.6644 – Zalo
Với kinh nghiệm và uy tín hơn 09 năm cho thuê xe du lịch tại Hồ Chí
Minh, dịch vụ thuê xe Đại Tín luôn mang lại dịch vụ tối ưu, giá thành cạnh
tranh nhất và đặc biệt là giá thuê xe trọn gói không phát sinh chi phí.
Các dòng xe mà công ty đang phục vụ khách hàng
1. Xe 4 chỗ: Toyota Vios, Mazda 3, Kia Morning, Honda City, Honda
Civic, Kia K3, Mercedes C250…..

2. Xe 7 chỗ: Toyota Innva, Toyota Fortuner, Kia Sedona, Mitsubishi
Xpander
3. Xe 16 chỗ: Ford Transit, Hyundai Solati
4. Xe 29 chỗ: Samco Felix, Thaco Town, Hyunda Universe Global
5. Xe 45 chỗ: Hyundai Space, Hyundai Universe…
Thông tin công ty
 Tên công ty chính thức: Công Ty TNHH Dịch Vụ Du Lịch Vận Tải
Đại Tín
 Tên công ty tiếng Anh: Vietnam Trust Car Rental Company
 Tên viết tắt: Vietnam car rental with driver
 Mã số thuế: 0313503280
 Đại diện pháp luật: Mai Thị Kiều Oanh,  Chức vụ: Đại Diện
 Số điện thoại: 0988038301
 Email:  info@vietnamtrustcarrental.com
 Website: https://www.vietnamtrustcarrental.com/
 Địa chỉ : 497/6A Phan Văn Trị, Phường 5, Gò Vấp, Hồ Chí Minh.
 Thời gian làm việc: 7h30 – 18h00 ( thứ 2 tới thứ 7 hàng tuần).
Google PageSpeed Insights: A perfect Google PageSpeed score.
Tags: speed, beginners, opensource, websitespeed
Published: 2022-11-30 07:33:59

Your Google PageSpeed score from Google's PageSpeed Experiences tool is one of the most noticeable scores for a website owner

Receive a low score in red, and you know that your website isn’t up to standards. On the off chance that you're perusing this article, you likely know the inclination.

In this article, we'll examine functional moves toward get an ideal PageSpeed score on Google. We should investigate further developing PageSpeed.

For what reason does a Google PageSpeed score matter?
As per a "Milliseconds Make Millions" study directed by Google and Deloitte, further developing your heap time by 0.1s can help transformation rates by 8%.

At the end of the day, the PageSpeed of your site can immensely affect transformation and skip rates since initial feelings matter. Clients are anxious, which is the reason one more review from Google and Ipsos viewed that as 77% of cell phone customers are bound to buy from organizations whose versatile destinations or applications permit them to rapidly make buys.

There's unquestionably a business case to be made around a decent PageSpeed. However, there are likewise a few normal legends around an ideal Google PageSpeed score.

Page speed is a basic consider positioning your site higher on Google's web index results.
On the off chance that your site isn't comparable to the best 10 natural pages, you won't rank on the primary page.
So zeroing in on page speed is central to having a fruitful organization and a site that believers.

**10 ways to achieve an ideal PageSpeed score on Google**

1. Choose a fast, reliable hosting provider.
2. Select a lightweight theme.
3. Purge plugins.
4. Reduce and optimize your website’s JavaScript.
5. Optimize images.
6. Browser caching.
7. Code minification and compression.
8. Content Delivery Network (CDN).
9. Use multiple speed testing tools.
10. Find an all-in-one, cloud-based service.

For improving the google page speed score of Magento Ecommerce store you can redeem at [Magento Performance Optimization](https://magecomp.com/magento-performance-optimization.html). 

Hope this helped you
Java 9 New Features
Tags: java, java9, programming, tutorial
Published: 2022-11-30 08:19:06

**Java 9 New Features**

1) Java 9 Interface Private Methods : https://javaconceptoftheday.com/java-9-interface-private-methods/

2) Java 9 JShell – REPL Tool : https://javaconceptoftheday.com/java-9-jshell-repl-tool/

3) Java 9 Immutable Collections : https://javaconceptoftheday.com/java-9-immutable-collections/

4) Java 9 Stream API Improvements : https://javaconceptoftheday.com/java-9-stream-api-improvements-takewhile-dropwhile-ofnullable-and-iterate/

5) Java 9 Try With Resources Improvements : https://javaconceptoftheday.com/java-9-try-with-resources-improvements/

6) Java 9 Diamond Operator Improvements : https://javaconceptoftheday.com/java-9-diamond-operator-improvements/

7) Java 9 @SafeVarargs Annotation Changes : https://javaconceptoftheday.com/java-9-safevarargs-annotation-changes/

8) Java 9 Underscore Changes : https://javaconceptoftheday.com/java-9-underscore-changes/

9) Java 9 Optional Class Improvements : https://javaconceptoftheday.com/java-9-optional-class-improvements/
Are warehouse management systems an absolute necessity for businesses or just a new trend?
Tags: sap, ewm, digitalsupplychain
Published: 2022-12-01 10:46:47


Based on the WMS implementation case, the LeverX Group expert tells what goals companies pursue when implementing warehouse management systems and what mistakes they should avoid.
https://leverx.com/newsroom/leverx-insights-into-warehouse-management?utm_source=dev.to&utm_medium=referral&utm_campaign=leverx-insights-into-warehouse-management&utm_content=article
Gene Kim + The Rise and Fall of DevOps | Conversations from DevOps Enterprise Summit
Tags: devops, techtalks, podcast, management
Published: 2022-12-01 22:59:56

Dev Interrupted takes a detour to Vegas!

In a first for the show, we took the podcast on the road to attend the DevOps Enterprise Summit in Las Vegas.

While at DOES, we had the pleasure of interviewing Gene Kim, famed researcher and author of "The Phoenix Project" and "Accelerate".

Also attending DOES were friends of the podcast Bryan and Dana Finster, whose presentation on the Rise and Fall of DevOps inspired us to invite them onto the pod.

Listen to this two-part episode as Gene breaks down all things DevOps past, present and future, while the Finsters present their case for platform teams, project ownership and how to win the trust that binds good dev teams. 

{% spotify spotify:episode:6j28bRZVvnfXlBuMPesW6D %}

## Gene Kim Episode Highlights:
* (2:12) Improvements Gene is most proud of
* (4:49) Current industry trends
* (6:36) What developer experience (DX) means to Gene
* (8:40) Changing merging behavior
* (11:09) Enabling enterprise transformations
* (14:06) Best of DevOps Enterprise Summit

## Rise and Fall of DevOps Episode Highlights:
* (15:50) Episode start
* (17:59) Defining DevOps
* (23:46) Mission
* (26:43) Structure
* (33:04) Ownership
* (37:48) Platform
* (40:55) Learning
* (45:10) Trust

### Want to cut code-review time by up to 40%? Add estimated review time to pull requests automatically!
*gitStream is the free dev tool from LinearB that eliminates the No. 1 bottleneck in your team’s workflow: pull requests and code reviews. After reviewing the work of 2,000 dev teams, LinearB’s engineers and data scientists found that pickup times and code review were lasting 4 to 5 days longer than they should be.* 

*The good news is that they found these delays could be eliminated largely by adding estimated review time to pull requests!*

### Learn more about how gitStream is making coding better [HERE](https://linearb.io/blog/why-estimated-review-time-improves-pull-requests-and-reduces-cycle-time/?utm_source=Substack%2FMedium%2FDev.to&utm_medium=referral&utm_campaign=gitStream%20-%20Referral%20-%20Distribution%20Footers).

![Start using gitstream today!](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xg1l6hxt134px501bf7d.png)
Advent of Code Day 2
Tags: adventofcode, elixir
Published: 2022-12-02 05:37:07


### Links

- [Intro](https://dev.to/sethcalebweeks/advent-of-code-2022-in-elixir-34i8)
- [Problem Statement](https://adventofcode.com/2022/day/2)
- [Code](https://github.com/sethcalebweeks/advent-of-code-2022/blob/main/lib/Day02.ex)

### Highlights

- It feels really naive to simply hard code the total score for each combination. The mental load of thinking through who would win and encoding that in a smart way would have taken just as long if not longer than just writing down the correct score for each combination.
- This is where pattern matching works really well. Just match each combination with the correspoding score.

```elixir
defmodule Day02 do
  use AOC

  def part1 do
    input(2)
    ~> String.split("\n")
    ~> Enum.map(fn round ->
      case round ~> String.split(" ") do
        ["A", "X"] -> 4
        ["B", "X"] -> 1
        ["C", "X"] -> 7
        ["A", "Y"] -> 8
        ["B", "Y"] -> 5
        ["C", "Y"] -> 2
        ["A", "Z"] -> 3
        ["B", "Z"] -> 9
        ["C", "Z"] -> 6
      end
    end)
    ~> Enum.sum()
  end

  def part2 do
    input(2)
    ~> String.split("\n")
    ~> Enum.map(fn round ->
      case round ~> String.split(" ") do
        ["A", "X"] -> 3
        ["B", "X"] -> 1
        ["C", "X"] -> 2
        ["A", "Y"] -> 4
        ["B", "Y"] -> 5
        ["C", "Y"] -> 6
        ["A", "Z"] -> 8
        ["B", "Z"] -> 9
        ["C", "Z"] -> 7
      end
    end)
    ~> Enum.sum()
  end

end
```
Full stack web development internship
Published: 2022-12-02 06:38:30

A full-stack developer is familiar with a variety of technologies. You would be familiar with all of them, from building a database to adding photos to a web page. Due to your ability to think strategically and make quick technical judgments, you have an advantage over other developers. 
{% embed https://youtu.be/cvZ7kXVnGWs %}
The Everyday Life of an HNG Intern; Isaac Ojerumu’s Story.
Tags: beginners, programming, career, api
Published: 2022-12-02 18:20:15

**Task 2**
Create a (post) API endpoint that can carry out the operation.
An endpoint is like a calculator
In this article, I'll be bringing to light the step-by-step process involved in setting up a (post) API endpoint.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ppkzo8s6dy4ahjanxpk.jpg)

The image above is the framework of the task that Isaac carried out.

Line 3:  Defines the header for the API to strictly receive JSON data.
Line 4: This is a function in PHP that is used to read the contents of the file. It is also used to make HTTP requests. In this text, the code reads the file coming in from the API.
Line 5: This decodes the API's request.
Line 7-9: These lines of code are conditional statements, that is, if this comes up, do this or that. It checks for empty requests. If any request is empty, the Slack username, the result, and the operation would be sent back empty.
Line 10: This line returns the Slack username, result, and operation type if empty.
Line 13-15: Assigns the request from x and y to the variable; ```php
 $r_type, $r_x, $r_y
```
Line 17-29: This is a control statement. It checks for the operation type and enables the programmer to perform different actions based on different conditions. Say, for instance, if the operation type is addition, it will perform an addition operation between x and y. The same goes for subtraction and multiplication.
Line 31: This returns the final result if any of the conditions I have stated earlier are met.
Line 34: This final line returns a JSON response of the report.

I have spelled out the entire process involved in carrying out the task. Fully accomplishing this task takes interns to the next stage; stage 3. As you've noticed, the higher an intern goes, the tougher it gets. This is where the principle of hard work, passion, and consistency in the Tech field comes in.
Again, I hope that you find this educative and inspiring.
See you in the next episode.

Link to the next episode: https://dev.to/zadazini/the-everyday-life-of-an-hng-intern-isaac-ojerumus-story-2j0j
API Design Revolation, Code Generation
Tags: svelte, bunjs, openapi, architecture
Published: 2022-12-02 23:38:44


Im starting my journey into OpenAPI and I think its the answer to a problem I didn't know I had!

## The problem I hadn't noticed before
How many times have you wrote the backend API then the Frontend API Layer then the docs, Normally thats 3 peoples jobs or one if you are unlucky, but then you and the team have to keep that all up to date, its not easy, actually its a big bottleneck in development time and therefore cost.

So what if we could just sit down together and write a single yaml, human readable file that anyone could understand. A file single powerful file that could generate the server code for our chosen language/framework, the client code and the docs all in one central location, if you think about it, this makes perfect sense and what a time saver... That is OpenAPI

### Getting started from a real life example:
I started writing my web application to make a load of money. How did I start it? With Frontend as usual and then realised that this would be doomed to fail as I never get around to doing all the backend work, its too huge then Id need a team to document it for future me. I need an easy button.

I've dabbled with and wrote many types of code-generation software in node over the years and I believe strongly that its an enormous time saver if we accept standardisation, let go of some of our, but I didn't write it syndrome, code-generation brings predictable development and quicker time to first release, that means more time doing fun stuff and less time being tedious.

### The Stack
Bun (API server) + Sveltekit (yes its fast with capital F, correct me if Im wrong but it should be Rust Actix web fast) the BS stack, it needs business logic right? I think it's time to read about this API design first approach, the glue between our Backend and our Client is the literal language they speak to each other, and by designing this instead first, we may have an easier time developing our application. 

I will use a Frontend framework IBM Carbon and various other bits specific to my application.

### What I did
- I watched some videos
- Found out about the generators for my chosen language ala the npm ecosystem
- Mulled over how I was going to write this api following the standard
- considered VS code but then dropped it for something more specialist: Insomnia
- While I have no bun generator I used a node OpenAPI mock generator server thing, I will have to manually copy and paste the structure, its a little overhead but at-least the tedium of the shape of it is done
- Now I can write using Insomnia DESIGN tab and copy that to my mock server via vs-code to try out
- The experience of having the entire API in a document really helps make it consistent and allows for thoughtful design 

<small>Here is Insomnia working on a early prototype, its making my head hurt now i'm running out of imagination and I think I need to build something!</small>
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mkjzs51x06scsr7314pw.png)
Advent of Code 2022 with Ruby day 01
Tags: adventofcode, ruby, challenge
Published: 2022-12-03 12:54:20

### Problem

- We have text file which look like this

```
4514
8009

6703
1811
4881

3905
```
- Above number represents Calories of the food carried by 3 Elves. Blank line separate the food carried by each Elves

- We have to find total Calories of the food carried by Elf carrying the most Calories

### Solution
First let's break down problem

- Reading text file
- Find out total calories carried by each Elves
- Find out maximum out of that calories

```ruby
calories_carried_by_each_elves = 0
max_calories = 0

File.foreach('day_01.txt') do |calories|
  if calories.to_i.positive?
    calories_carried_by_each_elves += calories.to_i
  else
    max_calories = calories_carried_by_each_elves if calories_carried_by_each_elves > max_calories
    calories_carried_by_each_elves = 0
  end
end

puts max_calories

```
What is FastConfigs and why should you use it?
Tags: heroku, netlify, devops, productivity
Published: 2022-12-03 14:35:34

## What is FastConfigs?
Fastconfigs is a chrome extension that makes it easy for developers to configure environment variables of applications hosted on popular hosting platforms like heroku, netlify and the likes.

## Why was FastConfigs created?
A while ago I was working with one of my seniors and we needed to setup a CI/CD pipeline for an application that was deployed on heroku, we needed to create replicate the application, therefore we also needed to migrate all the environment variables, we had to manually copy and paste all the environment variable, they was about thirty five of them. That was when we decided to work on a tool that makes it easier to configure environment variables on popular hosting platforms.

## Installation
**The extension is not currently available on chrome store, so you have to install it manually by following the steps below.**

1. Clone the respository by running `git clone https://github.com/talibackend/fastconfigs.git`.
2. Open 'chrome://extensions/' in your browser.
3. Click on "Load unpacked" button in the top bar.
4. Select the folder that you cloned earlier.
5. You can pin the extension to your browsers bar - **optional**.
6. Enjoy using fastconfigs.

## How it works
- Fastconfigs **does not store or process your environment variables on any server, all execution are done on the user's browser**
#####
- The extension requires that you are logged in to the platform on your browser before you try to configure the apps hosted on that platform.
#####
- If you are not logged in to the platform, fastconfigs automatically opens the platforms login page in a new tab.
#####
- After successful login you can configure the apps hosted on that platform seamlessly.

## Supported Formats
1. **JSON** : Fastconfigs supports JSON files given that all keys and values are string, below is an example.
```json
{
    "key" : "value",
    "hello" : "world",
    "BASE_URL" : "https://example.com/"
}
```
2. **TEXT** : It also supports text file with the **.txt** extension, every variable should be on seperate lines and keys/values should be seperated with **=**, below is an example.
```
key=value
hellow=world
BASE_URL=https://example.com/
```
3. **ENV** : All files with **.env** extension are also supported, the file should be in the proper env format, below is an example.
```
key=value
hellow=world
BASE_URL=https://example.com/
```

## Supported Platforms
##### 1. Heroku
##### 2. Netlify

## What is next?
1. We intend to keep integrating more hosting platforms, so we advice that you keep an eye on our repo.
2. We will also be adding more features in the coming weeks, one of this features is environment variable exportation.

### We hope you enjoy using our cool tool ❤️❤️❤️!
Programmatic SEO: Complete guide with examples
Tags: webdev, javascript, jamstack, serverless
Published: 2023-02-19 20:45:00

I got the second position on Google without any campaigns and paid ads
Huge hack: Programmatic SEO
Here’s how I do it 👇🏻

What is Programmatic?

Programmatic SEO involves creating dedicated landing pages on a large scale in order to boost search engine visibility. 

Basics of Programmatic SEO

The goal of programmatic SEO is to identify keywords in a systematic, data-driven manner. More accurate, appropriate keywords. Technically, you will design hundreds of landing pages using this approach. Similarly, when you think about content, the SEO aspect is critical and accessible.

The mindset goes this way: you need to understand what people want, their doubts, and what they don't know, and then give them the correct answers by creating high-quality content.

How to do Programmatic SEO?

To do it in the most effective way, check out my [Programmatic SEO step-by-step guide with examples] (https://thebcms.com/blog/programmatic-seo-complete-guide-with-examples) [] (https://thebcms.com/blog/programmatic-seo-complete-guide-with-examples)
I'm having trouble merging arrays in reactjs
Tags: help, react, javascript
Published: 2022-12-06 10:48:39

i'm doing a recursive array merge into an array but it's not working

this is current data
```js
let currentData = [
   {
     "id":1,
     "content":"Comment 1"
     "answers":[
       {
       "id":3,
       "content":"Comment 3"
       "answers":[ 
         {
         "id":4,
         "content":"Comment 4",
         "answers":[]
         },
         {
         "id":5,
         "content":"Comment 5",
         "answers":[]
         }]
       }
     ]
   }
   {
     "id":2,
     "contents":"Comment 2"
     "answers":[
       {
          "id"6,
          "content":"Comment 6",
          "answers":[]
       }
     ]
   }
 ]
```

I want like this
```json
[
     {
          "id": 1,
          "content": "Comment 1"
     },
     {
          "id": 2,
          "content": "comment 2"
     },
     {
          "id:": 3,
          "content": "comment 3"
     },...
]
```
I tried using this function but it doesn't work
```js
 const [replyList, setReplyList] = useState([])
 useEffect(()=>{
    handleMerge(currentData)
  },[])
 const handleMerge = (reply) => {
    if (reply.length == 0) {
      return
   }
    for (let i = 0; i < reply.length; i++) {
        setReplyList([...replyList,reply[i]])
        handleMerge(reply[i].reply)
      }
    }
```