teleren/devto huggingface dataset:
Announcing the Chronos Project v1.0.0 Open-Source Release
Tags: java, nosql, versioning, opensource
Published: 2020-05-31 11:43:40

---
title: Announcing the Chronos Project v1.0.0 Open-Source Release
published: true
description: Chronos, my framework for versioned data persistence for the JDK, has finally been released as open-source after more than three years of development.
tags: Java, NoSQL, Versioning, oss
// cover_image: https://direct_url_to_image.jpg
---

Today I'm pleased to announce that Chronos, my long-term data persistence and versioning project for the JDK, has finally been released in its 1.0.0 version as an open-source project [on Github](https://github.com/Txture/chronos).

# What is Chronos?

The Chronos Project started as my PhD project, but eventually turned into a production-ready versioned database during my work at [Txture](www.txture.io). It offers:

- **[ChronoDB](https://github.com/Txture/chronos/tree/master/org.chronos.chronodb.api)**: A versioned key-value store
- **[ChronoGraph](https://github.com/Txture/chronos/tree/master/org.chronos.chronograph)**: A TinkerPop-compliant Graph Database with versioning support
- **[ChronoSphere](https://github.com/Txture/chronos/tree/master/org.chronos.chronosphere):** An [EMF](https://www.eclipse.org/modeling/emf/)-compliant model repository

# Versioning

Versioning means that **every change** made to the database will be **retained and managed** indefinitely. This allows for the ability of **time travel** through your data and its history, similar to an `AS OF` Query in SQL. Chronos employs a smart data storage layout to ensure that the data is not needlessly duplicated on your hard drive, but you can still access it as if it were.

Here's a basic example where we fetch yesterday's data with ChronoGraph:

```java
long yesterday = System.currentTimeMills() - TimeUnit.DAYS.toMillis(1);
try(ChronoGraph txGraph = graph.tx().createThreadedTx(yesterday)){
    // txGraph will contain the database state as it was yesterday
    Vertex johnDoe = txGraph.traversal().V().has("name", "John Doe").next();
    // johnDoe will also have the same state as it did yesterday
}
```

# Branching

In the same way as Chronos offers version control, it also allows for branching in your data, just like you've come to expect it from e.g. Git or SVN:

```java
try(ChronoGraph txGraph = graph.tx().createThreadedTx("my-branch")){
    // txGraph now points to branch "my-branch".
    // Everything you do here will only be visible on this branch.
}
```

# ... and much more!

There's a whole bunch of features included in Chronos, such as:
 - full ACID transactions
 - secondary indexing
 - full & incremental backups
 - dateback (a `rebase`-like API)

All in an open-source project. Free for everyone under the aGPL v3.0 license.

# Final Words

This project has been very dear to me since its inception, and it will continue to be. I'm proud to release the 1.0.0 version finally as open-source. Visit our [Github Repository](https://github.com/Txture/chronos) and give it a star if you think it's interesting :)
What I read this week?
Tags: php, javascript, git, sql
Published: 2020-05-31 11:41:45

Beginning of this week, I've decided to create a twitter account dedicated to collection of programming articles worth reading. 

My stack is LEMP, besides I'm using git control version system and in front end I've had a chance to work with Angular & Vue.

So expect articles in those topics.


First article is very well written article about upcoming PHP 8's Features, Improvements, and the JIT Compiler.
{% twitter 1264996860223262720 %}

If you are new to git and not yet confident enough to rock on command line, this git cheat-sheet will help you to get there! 
{% twitter 1265657966683922432 %}

First week of sharing, beginner guidelines. This article will clear doubts on difference between SQL and MySQL.
{% twitter 1266088505710710789 %}

Detailed analysis of open-source java script frameworks. I'd be surprised if any developer worked with all of them. This article draws general picture for those wondering.
{% twitter 1266445505560817668 %}

PHP 8 is one week closer! An article about totally new feature for php: Attributes!
{% twitter 1266821406832156678 %}


# Interested ?
If you are interested articles like that, I invite you to follow [me](https://twitter.com/codentino) on Twitter! If you have similar articles, I also would like to share, in my feed!
Handling requests to delete their account & move to the @ghost account for self-hosted Dev.to instances
Tags: question, help, selfhosting
Published: 2020-05-31 11:12:07

I have a question on how the admins of [Dev Commuity](https://dev.to) handle these types of account deletion requests. Is there any UI way in the Admin Dashboard to migrate stuff to @ghost and nuke the account in question or should I need database access?
Developer Survey 2020 | By StackOverflow
Tags: webdev, career
Published: 2020-05-31 11:09:27

The developer survey by stackoverflow this year was released with almost 60,000 responses from all over the world. It was a really interesting survey worth checking out, I did a quick summary of it on video for those interested: 
{% youtube t-var3Hgba4 %}
<center>[Youtube: Developer Survey 2020](https://youtu.be/t-var3Hgba4)</center>

- JavaScript is the most popular programming language
- Rust is most loved, followed by TypeScript
- 65% satisfied with their jobs
- When asked what steps to take when stuck on a coding problem, 90% of respondents indicated they visit Stack Overflow.
- More than 75% of developers work overtime at least occasionally -- one to two days per quarter. 25% work overtime 1-2 days per week or more.
- 0.3% of respondents had never visited Stack Overflow before taking the survey.
- More than 40% of respondents reported that they are members of other online developer communities beyond Stack Overflow.

Learn more from the official survey:
https://insights.stackoverflow.com/survey/2020

## Follow and support me: 
Special thanks if you subscribe to my channel :)
* [🎞️ Youtube](https://www.youtube.com/channel/UCvM5YYWwfLwpcQgbRr68JLQ?sub_confirmation=1)
* [🐦 Twitter](https://twitter.com/adrian_twarog)

## Want to see more:
I will try to post new great content every day. Here are the latest items:
* [Adobe XD to Fully Responsive WordPress Site](https://dev.to/adriantwarog/adobe-xd-to-fully-responsive-wordpress-site-16e0)
* [Adobe XD to HTML Full Process](https://dev.to/adriantwarog/adobe-xd-to-html-full-process-ao6)
* [Full Tutorial on how to use SASS to improve your CSS](https://dev.to/adriantwarog/full-tutorial-on-how-to-use-sass-to-improve-your-css-57on)
* [Creating a Mobile Design and Developing it](https://dev.to/adriantwarog/creating-a-mobile-design-and-developing-it-5c4o)
JAMStack, but you need an API anyway? Which hosting to choose?
Tags: jamstack, webdev, serverless, help
Published: 2020-05-31 10:48:35

- Netlify vs Zeit.co if I don't want to touch AWS vs GCP vs Azure directly?
  - Startup time, i.e. first API call? I think Zeit.co has good serverless experience. No need to compile TypeScript / webpack first, but what about the startup time? I think it is somewhat slow.
- AWS vs GCP vs Azure might be cheaper, as I already have free credits.
  - But what about securing the endpoints. Will it be secure enough?
- Or, is monolith on Docker or VM an option?
immudb is an open source, high-speed immutable database for systems and applications
Tags: go, opensource, database, security
Published: 2020-05-31 10:36:14

immudb is a **lightweight, high-speed immutable database** for systems and applications, written in Go.
With immudb you can track changes in sensitive data in your transactional databases and then record those changes permanently in a
tamperproof immudb database. This allows you to keep an indelible history of sensitive data, for example debit/credit card transactions.

Traditional transaction logs are hard to scale and are mutable. So there is no way to know for sure if your data has been compromised.

As such, immudb provides **unparalleled insights** **retroactively** of changes to your sensitive data, even
if your perimeter has been compromised. immudb guarantees immutability by using a **Merkle tree structure** internally.

immudb gives you the same **cryptographic verification** of the integrity of data written with **SHA-256** as a classic blockchain without the cost and complexity associated with blockchains today.

## Why immudb?

immudb has 4 main benefits:

1. **immudb is immutable**. You can add records, but **never change or delete records**.
2. Data stored in immudb is **cryptographically coherent and verifiable**, like blockchains, just without all the complexity and at high speed.
3. Anyone can get **started with immudb in minutes**. Whether you're using node.js, Java, Python, Golang, .Net, or any other language. It's very easy to use and you can have your immutable database running in just a few minutes.
4. Finally, immudb is  **Open Source**. You can run it **on premise**, or in the **cloud**. It's completely free. immudb is governed by the Apache 2.0 License.

immudb can be ran on **Linux**, **FreeBSD**, **Windows**, and **MacOS**, along with
other systems derived from them, such as **Kubernetes** and **Docker**.

## Components

- **immudb** is the server binary that listens on port 3322 and provides a gRPC interface
- **immugw** is the intelligent REST proxy that connects to immudb and provides a RESTful interface for applications. We recommend to run immudb and immugw on separate machines to enhance security
- **immuadmin** is the admin CLI for immudb and immugw. You can install and manage the service installation for both components and get statistics as well as runtime information.
- **immuclient** is the CLI client for immudb. You can read, write data into immudb from the commandline using direct or interactive mode.

![immudb component overview](https://github.com/codenotary/immudb-docs/raw/master/src/docs/immudb/component-diagram.png)


The latest release binaries can be found [here](https://github.com/codenotary/immudb/releases)

We always welcome feedback and contribution!

## Further information
You can find a complete documentation [here](https://immudb.io/docs/introduction.html)


## License

immudb is [Apache v2.0 License](https://github.com/codenotary/immudb/blob/master/LICENSE).
Automated AI Live size Chess board
Tags: octograd2020
Published: 2020-05-31 10:32:12


## My Project
For my last project in my college life I wanted to do something Big, So I decided that I will work on something mechanical that has AI. Then the Idea to build a chessBoard that can move on it's own is a pretty good idea. And I was very happy with the results that I had achieved

## Demo Link
https://www.youtube.com/watch?v=LfeKGcBt76M
 

## Link to Code
https://github.com/MFOSSociety/Automate-AI-Chess



## How I built it 
TO build this board we had used lead screws steeper motors and  aspberry pi to move the lead screws into an X and Y motion. This mechanism is pretty similar to the mechanism used by 3 printers. 3d printers have 3 motors and 3 lead screws to move in x,y and z dimensions.

But for a chess board we only needed 2 dimensions. And on the cross section of the lead screws we attached our electromegnet to it. We used raspberry pi to the the motors and the AI logic of the chessboard.

Then we scraped for materials such as wwood and all finally creating the chess enclosure. The chess pieces had magnet stuck underneath them, that when came into contact of electomagnets caused them to move along the board.

## Additional Thoughts / Feelings / Stories
This was my first IOT project to be honest I had never made anythng with a pi. So while trying to make the stepper motors work with the pi I burned 3 motor drivers.
 It was a very fun project as I got to do AI, woodWork, IOT all at the same time.
And with this project I realized the importance of precision. 
If you clearly see the board you can see that the chess squares are drwan incorrect. that is becuase the edges of the board are not parallel, there is a difference of 0.5 mm and becuase of this difference I faced a lot of friction, fidgitting and noise in the board.


## Final Note
 Honestly speaking I believe that the AI for the chess board is not amazing (alpha-beta pruning) it could have been better I didnt focus on it.
About Terraform State, Azure Blob Storage and network rules
Tags: terraform, azure, network
Published: 2020-05-31 10:26:29


<sub>Photo by Toa Heftiba on Unsplash</sub>

#Problem

I'm a happily Terraform hobbyist, and i enjoy using it from my laptop to setup quickly some infrastructure for my personal project. But, this time i want to use it on a project with shared files. 

The recommendation in this case is to use a state stored on a backend. As we are using Azure, i choose the Azure Blob Storage backend. 

It works perfectly on my laptop! But we are using private agents on my Azure DevOps projects. Those private agents are hosted on VM in Azure. It seems easy, no containers stuff. I add the public IP of my VM to the Azure Storage Account firewall, and ... i get a 403 ! My access is forbidden even though i use the connection string and the same code is working from my laptop using my Internet connection (with my IP in the firewall). 

I think i have messed something with Service Endpoint or something like this. So i declare another VM on another Virtual Network, and try to do the same thing on another Azure Storage Account. It fails !

#Workaround

The issue here seems to be related to the IP used between the VM and the Azure Storage Account. 
- I could use Service Endpoint, but i want my Terraform to access other Azure Storage Account.
- I could use Private Link (as Private Link for Azure Storage Account is GA ), but i don't want to manage a Private DNS Zone for this.
- So the easiest workaround for me here, is to move my Azure Storage Account to another region. With this setting, the IP used is the public one and my agents can access my Terraform files.


Hope this helps !
Recognization Facial Expression and recommending Movies and Songs
Tags: datascience, computerscience, machinelearning, sql
Published: 2020-05-31 10:05:10


###<q><b>First we recognize the emotion of the person using Opencv and Keras by training our model on Data provided from Kaggle, program is trained for 30 epochs and we have got an accuracy of 71%.</q></b>

###<q><b>After detecting the emotion out of 7 labels, we as user for his favourite artist and then recommend songs from Spotify using its API and movies from IMDB depending upon its mood.</q></b>

##<i>I did this awesome project as an assignment while completing this awesome course by DataCamp: [Advanced DeepLearning with Keras in Python](https://www.datacamp.com/courses/advanced-deep-learning-with-keras-in-python?tap_a=5644-dce66f&tap_s=841152-474aa4).</i>

##<i>If you have similar interests and are thinking to start with deeplearning, then this awesome course by DataCamp is a must Recommended from my experience: [DeepLearning with Keras in Python](https://www.datacamp.com/courses/deep-learning-with-keras-in-python?tap_a=5644-dce66f&tap_s=841152-474aa4)</i>

###Source Code utilized in this project:[abhiwalia15](https://github.com/abhiwalia15/Facial-Expression-Recognition-Using-Opencv-and-KerasKaggle-Challenge)
100 Days of SwiftUI — Day 11
Tags: 100daysofswiftui
Published: 2020-05-31 09:58:24

---
title: 100 Days of SwiftUI — Day 11
published: true
date: 2020-05-31 09:57:33 UTC
tags: 100daysofswiftui
canonical_url: https://zeitschlag.net/100-days-of-swiftui-day-11/
---

While suffering a minor hangover I just finished [Day 11 of a hundred](https://www.hackingwithswift.com/100/swiftui/11). It was about protocols, extensions and protocol extensions. As I'm not very concentrated today, this might have affected the test results.

Tomorrow's another day, I guess.

<!--kg-card-end: markdown-->
React Bootstrap Outlined Tooltip Style/CSS
Tags: javascript, css, bootstrap, tooltip
Published: 2020-05-31 09:28:58

## Default Bootstrap Tooltip

The default Bootstrap tooltip could use some styling help.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/zbjw5ww2n4nlgtuv2oed.png)

## Outlined Tooltip

Let's change it to outlined with drop-shadow and proper spacing!
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/zmikkjwvkip7uca2qnfk.png)

## Implementation details

This is implemented with `reactstrap` and `styled-components`. You can see the CSS in each styled component file in `/styles/Tooltip*.js`. It should be fairly easy to customize with your own design, too.

{% codesandbox zruox %}
Buy my friend a beer
Tags: career, computerscience, covid19
Published: 2020-05-31 09:08:52

Hello Everyone, 

I hope that everyone is safe and sound in this global pandemic. 

My friend is a developer who lost his job due to the COVID-19 pandemic and is struggling to make ends meet. He would be really grateful if you guys could help him out. We have raised around 40 dollars as of yet and just need around 130 more. He would try to pay everyone back as soon as he can.

Thank you so much for your time and consideration.
Open Source Code
Tags: github, opensource, opensourcecode, git
Published: 2020-05-31 09:04:46

Beginner to open source journey? 
The idea of open source excites you but not sure where to begin or which project to choose? Often feel confused and uncomfortable while using GitHub, and can’t think of any available alternative? Well, you have arrived at the correct place!

 ‘Open Source Code’ is an open source platform targeted solely for beginners to help them contribute to real life projects, from developing new ideas and approaches, to exploring the world of open sourcing.

At OSC, the contributors can choose their level of difficulty and also their field of expertise to start contributing accordingly, the amazing feature which saves your time and effort!

Note : Anyone interested work on my project most Welcome (Email: opensourcecode.tech@gmail.com)
"It's a waste of time!"
Tags: discuss, productivity
Published: 2020-05-31 09:01:53

_Originally published on [my blog](https://dmerej.info/blog/post/its-not-a-waste-of-time/)_.

I have a confession to make : every time I heard the phrase "It's a waste of time!", I get a little angry.

I've heard this answer countless times, often after suggestions like:

* "Let's write tests before writing production code"
* "Let's write documentation before writing code"
* "Let's refactor before implementing the new feature"
* "Let's discuss the API once more before shipping the next release."

There are several reasons for why I don't like this answer.

Why? It's all about knowledge.

# Time spent vs time saved

First, it's easy to see the time _spent_.

Yes, we spent one week writing and reviewing the new documentation. Yes, we spent three days refactoring the code and we did not implement any feature. Yes, we had two one-hour meetings before getting consensus on the new API and shipping the next release.

But it's really hard to see the time _saved_.

Who knows what horrible bug we would have to fix in production if we skipped writing those tests? Who knows how much breaking changes we would have made because the API was not good enough? Who knows how much time we would have spent implementing the *next* big feature if we skipped the refactoring?

# Learning about the problem

Second, you may have noticed that in all the situations I mentioned above, it's all about gaining more knowledge about the problem _before_ jumping to the implementation.

In other terms, by saying "It's a waste of time", you assume you know enough about the problem to start working on the implementation right away.

# Trying to convince others

Most of the time, I can't convince people who tell me that I'm suggesting is a waste of time.

Instead, they skip what I think was a critical preparatory step, and then I watch them spend a ton of time rectifying the situation afterwards - it's frustrating.


Fortunately, after they've repeated the same mistake enough times, they tend to finally listen to me. But I'd very much like to not have to go through this painful process every time.

I'm not sure what to do about it, though. Maybe it's just human nature?

To make matters worse sometimes writing the code is actually a good way to gain this precious knowledge in a way that neither tests nor documentation nor brainstorms could have done.

# Questions for you

What do you think about all this? How do you react when confronted to the "It' a waste of time!" argument?

Feel free to share your ideas below, and see you next time!
Complete Data Engineer's Vocabulary
Tags: database, datascience, python, sql
Published: 2020-05-31 08:59:27

I recently wrote a post on for Towards Data Science summarizing most of the technologies and basic concepts that a data engineer should know about - [Complete Data Engineer's Vocabulary](https://towardsdatascience.com/complete-data-engineers-vocabulary-87967e374fad). I say that it's the complete vocabulary but it really isn't - it tries to cover most of the tech that people are using these days. I'll make sure to keep it updated.

The whole idea was to summarize every technology or concept in 10 words or less - an activity that I thoroughly enjoyed. It's one thing to use a technology or know a concept, but it really gets tough when you have to explain these things to someone else and that too using the minimum amount of words possible.

I have already had a lot of suggestions for additions on the original post. More suggestions are welcome!
All of the things that you need to work with CouchDB and ExpressJS
Tags: couchdb, express, node, webdev
Published: 2020-05-31 08:53:40

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

IfCouchDB exposes APIs for me why I need to backend code?!
I made a sample project that needs authorization with JWT, so we use ExpressJS for it and you can have better management on DB.
I made a solution for the management of development and production and staging environments without anything effort for publish on Cloud.
Published as "Developed: All of the things that you need to work with CouchDB and ExpressJS".

That is all just for you:
https://medium.com/@arman.riazi.science
I Made it with ❤️ for you
How To Train Your UI / UX Designer Skills
Tags: design, tutorial, ux, uiweekly
Published: 2020-05-31 08:49:00

# EXPLORE

Find things, design, works that you like most. Use Dribble, Behance, Pinterest, Artstation, websites and apps, real objects around you to be prepared for the next step.

# DECONSTRUCT

Take a look at each piece of the work or object. Deconstruct the whole into smalls pieces: Logo, headline, paragraph, images, icons, bars, lines, shapes, white space, colours, etc.

# UNDERSTAND

Try to understand why the creator used exactly these colors, shapes, typography, why this element is here, why this size, why this message, ask a lot of why.

# IMPROVE

Try to find the way to improve or optimize the work or object for the person who will use it. Is there any way to make it easier to use, to make it faster?

# RECREATE

Keeping in mind the previous step, recreate or model the work. If there is nothing to improve, copy it. When copy, remember: It's not your work, it's only for your practicem don't steal!.

# PRACTICE

Follow all these steps every day until you start seeing pieces/parts/elements of objects, websites or apps without thinking. You will find a lot of similarities and your skills will jump to the next level!.

Thx for read the docs, hope your enjoy it.