teleren/devto huggingface dataset:
Recovery over perfection
Tags: technology, principles, development
Published: 2022-08-02 10:34:50

Recovery over Perfection means that, as Tech, we would rather focus our energy on ensuring that we can recover from issues quickly and effectively, rather than try to prevent all possible failures.

This supports us in the following quest: to keep speed and momentum in our release of value to the customers and users. to avoid being held back in innovation. to seek the right balance for Coolblue between cost of development and cost of maintenance.

> This philosophy leads us to the following: Recovery must be ‘instantaneous’ (or super fast, at the very least). 

This means we must be able to do the following things very quickly:

* Discover failure
* Restore acceptable behaviour
* Diagnose issues
* Solve issues
* Apply permanent solutions
* Learn from our observations (Apart from discovering failure all of the other actions could be applied in various ways/orders).

Discovering and diagnosing failure requires effective monitoring and logging. Restoring acceptable behaviour requires easy, reproducible deployments. Solving and applying solutions requires maintainable code, accompanied by automated tests (see our other [principles](https://dev.to/coolblue/tech-principles-coolblue-1a2k)).

Essentially, this comes down to the following: monitoring, logging, alteration, integration, deployment and testing should be a priority. How much of each is a balance question, but in our principles we will set out minimum expectations.

It doesn't relieve you from programming or designing defensively. Networks will fail, dependencies might break down, users tend to be very creative in their input for the application. You have to expect this will happen and handle it accordingly without breaking your application. Recovery over perfection doesn't relieve you from your responsibility to handle failure gracely. It requires you to make conscious decisions around safety nets and the amount of effort needing to spend.

Go to the overview of our [Tech Principles](https://dev.to/coolblue/tech-principles-coolblue-1a2k).
Tech Principles @ Coolblue
Tags: principles, development, technology
Published: 2022-08-02 10:34:00

In this series I would like to share the **Tech Principles** we use at Coolblue Tech. 

Over the years (decades) our Tech population has worked with these principles and fine-tuned them over time. Learning from our own mistakes, and learning from others. As a company we want to be [flexible](https://aboutcoolblue.com/en/culture/), and thus we adopted an [agile way of working](https://www.linkedin.com/posts/stefvanhooijdonk_coolblue-unfixed-case-study-of-a-scale-up-activity-6936018069773295616-I1Lt?utm_source=linkedin_share&utm_medium=member_desktop_web). Some of these texts are copied over from our internal sources, and as such where written by others potentially.

We believe these principles help us to deliver value quickly, allows us to make changes when needed (e.g. PlayStation 5 launches) and keeps us close to our business needs. Currently we release (and fail forward) **150-300** a day towards production.

In the end, the energy spent on investigating, exploring, and creating solutions shouldn't go to waste. It should be spent on new things. The result itself should be built upon and utilised in the future. We need to stand on the shoulders of giants and focus our energy on moving towards our real goals quicker, creating features and products that will differentiate us.

Our Tech Principles in alphabetical order are:

* Accessibility
* Automation
* Code Clean & Simple
* Data Principles
* Design to encapsulate volatility
* Monitoring
* [Recovery over perfection](https://dev.to/coolblue/recovery-over-perfection-kbg)
* Security
* Testing

Over the course of the weeks, we will describe these in a little more detail. Together with this post we would like to share our "[**Recovery over perfection**](https://dev.to/coolblue/recovery-over-perfection-kbg)" principle post.
Podman: build amd64 images on M1
Tags: podman, containers, m1
Published: 2022-08-02 10:33:00


install `qemu-user-static` to podman machine VM

```
podman machine ssh sudo rpm-ostree install qemu-user-static
podman machine ssh sudo systemctl reboot
```

build amd64 image
```
podman build --platform linux/amd64 ......
```


---
source: https://github.com/containers/podman/discussions/12899
Unblocking my blogging - recent progress at Arkency Ecommerce project
Tags: blogging, rails, opensource, ddd
Published: 2022-08-02 10:30:54

Recently I've been struggling with a blockade in writing posts. It's not the first time nor the last one, so I learnt to accept it.

In the past what helped me is just **documenting what I'm doing as blogposts**. When you document you focus on what you did. It's almost like a written/async standup. When I try to teach or express opinions as a blogpost things are more difficult for me.

I'm lucky to be able to work on an open source project. Which means I work in public. It also means I can freely share the progress.

I will probably write some posts here, then move to the Arkency blog.

So as an attempt to unblock myself, over the next days I'll share a few small things I did recently on the [Arkency Ecommerce](https://github.com/RailsEventStore/ecommerce) project.

The project is an attempt to implement an ecommerce/order-management-system in **Rails but fully using Domain Driven Design, Event Sourcing and Command Query Responsibility Segregation**. If you don't know those buzzwords, don't worry. It's just difficult names, for simple things. Feel free to ask if something is not clear.

One recent small issue was open source related.

[Someone asked](https://github.com/RailsEventStore/ecommerce/issues/173) "what is the license for this project". The problem was that in the past, this repo was just a typical Rails app with its typical structure. The LICENSE file resides in the main directory.

However, once we went further with the idea of separating the domain code from the Rails app, we changed the directory structure.

We created `rails_application` subdirectory and moved the rails app over there. Then in the main directory we created `ecommerce` directory which contains the business modules (aka bounded contexts).

The LICENSE file was moved together with the Rails app. This means that it was no longer following the convention of keeping the LICENSE file in the main directory.

```
✗ tree -L 1     
.
├── Makefile
├── README.md
├── ecommerce
├── hanami_application
├── infra
├── math
└── rails_application
```

BTW, we deliberately have the MIT license, so that people can do what they want with this codebase. This project has many educational goals. It's a bit of a challenge too, because of this. When we experiment with new ideas, some people may feel like this is what is now "recommended" and copy the experiments too. I guess that's the risk of doing things in public.

As a fix for the problem, [I moved the LICENSE back](https://github.com/RailsEventStore/ecommerce/commit/75bfba06d542dd03ca426c3e23e23da42a44b460) to the main directory. 

**I was seriously considering writing a test for that.** This is an important convention to keep the license in the main directory. We're usually very brave with refactorings here. This means we're at risk of regressions of such trivial things too. 

What do you think?

OK, I think that's enough for an "unblocking" blogpost. I know it was a trivial example. Hopefully this unblocks me and more interesting posts are comming soon 😎
Raspberry Pi: From Box to C8y
Tags: iot, rasberrypi, guide
Published: 2022-09-16 11:37:30

---
title: Raspberry Pi: From Box to C8y
published: true
date: 2022-08-02 10:29:47 UTC
tags: iot, rasberrypi, guide
canonical_url: https://tech.forums.softwareag.com/t/raspberry-pi-from-box-to-c8y/259766
---

A short tutorial to go with, from unboxing the Raspberry Pi to connecting it to C8y.

[![RPi_to_C8y](https://aws1.discourse-cdn.com/techcommunity/optimized/3X/c/c/cc3bb4c0a9d1d9f859b9f07f7021ab1b2138a593_2_690x356.png)](https://aws1.discourse-cdn.com/techcommunity/original/3X/c/c/cc3bb4c0a9d1d9f859b9f07f7021ab1b2138a593.png "RPi\_to\_C8y")


[Register DeviceV2.pdf](https://tech.forums.softwareag.com/uploads/short-url/hARhhTCAtutAITvn3rwxcX5IfrH.pdf)


[Read full topic](https://tech.forums.softwareag.com/t/raspberry-pi-from-box-to-c8y/259766)
Java 的 & 也可以當邏輯運算器
Tags: java
Published: 2022-08-02 10:27:00

在 Java 中, 大家都知道 `&` 可以做逐位元 (bit-wise) 的運算, 不過您可能不知道的是, 如果 `&` 兩邊都是 `boolean` 或是 `Boolean` 的運算元, 那 `&` 就會變成[邏輯運算器](https://docs.oracle.com/javase/specs/jls/se18/html/jls-15.html#jls-15.22.2), 例如：

```java
jshell> int a = 10
a ==> 10

jshell> a == 11 & a++ == 11
$2 ==> false
```

這個時候它的功能和 `&&` 近似, 但是有一點[關鍵的差異](https://docs.oracle.com/javase/specs/jls/se18/html/jls-15.html#jls-ConditionalAndExpression), 就是 `&` 兩邊的運算元都一定會執行, 然後才根據執行結果作邏輯運算。因此, 上述的例子中, 雖然左邊的運算元 `a == 11` 是 `fasle`, 已經可以確認邏輯運算的結果, 但是右邊的運算元 `a++ == 11` 還是會運算, 如果檢查 `a` 的值, 就會發現變 11 了：

```java
jshell> a
a ==> 11
```

如果是使用 `&&` 運算器, 它會走捷徑, 只要左邊運算元的計算結果可以決定整個邏輯運算的結果, 就不會計算右邊的運算元, 例如：

```java
jshell> int b = 10
b ==> 10

jshell> b == 11 && b++ == 11
$5 ==> false

jshell> b
b ==> 10
```

你會看到同樣的運算元, 但是改用 `&&` 後, 因為左邊的 `b == 11` 會得到 `false`, 對 `&&` 運算來說已經能夠確認結果一定是 `false`, 所以右邊的 `b++ == 11` 根本就不會執行, 最後 `b` 就仍然保留原值。

## 小結

本文的說明也同樣適用於 `|` 運算器, 許多 Java 教學都沒有提到這些位元運算器也可以當成邏輯運算器使用, 雖然並不建議這樣用, 不過若是看到別人的程式出現這種用法, 就不會覺得奇怪了。
Design of cards
Tags: codepen, card, css, vue
Published: 2022-08-02 10:14:27

<h3>Hello again!</h3>
<p>I let you here a nice card design, responsive and with animation when hovering</p>
<p>At the bottom I let you too the same card design but with an example in Vue.js :)</p>

{% codepen https://codepen.io/baarbaracrr/pen/MWVOYga %}
{% codepen https://codepen.io/baarbaracrr/pen/ZExaGeo %}
Product Testers for AWS Certified Security Certification
Published: 2022-08-02 10:09:00

Hello, everyone. Packt Publishing has been working on the 2nd Edition of the title on AWS Certified Security – Specialty Exam Guide. The first edition was published in September 2020 turning out in a good response from our customers which is why we are excited to publish yet another edition with more content to help candidates test their skills before they appear for the actual exam. Here is the link to the first edition of the book: https://www.amazon.com/AWS-Certified-Security-Specialty-Specialist/dp/178953447X 
Being an AWS Certified Security – Specialty certified professional yourself, I would like to have your feedback and input regarding your experience of the exam which would help us make a better product and share with you the first edition which you could skim from a customer's perspective and provide us with your review after 2 weeks. 
All interested people can comment on this post. Thereafter, I will be scheduling a 30 minutes call with my senior acquisition editor.

Thanks and Regards,
Ankur Mulasi 
https://www.linkedin.com/in/ankurmulasi/
Let’s take a look at the new page, dedicated to ODBC Connection Creation in DBeaver
Tags: odbc, dbeaver
Published: 2022-08-02 10:04:08

---
title: Let’s take a look at the new page, dedicated to ODBC Connection Creation in DBeaver
published: true
description: 
tags: odbc, dbeaver
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
---
https://www.devart.com/odbc/dbeaver/

On this page you’ll learn how to connect DBeaver to ODBC data source and access data in 3 simple steps.

✅ Download a 30-day absolutely free trial of our ODBC Drivers: https://www.devart.com/products.html#odbc
Division, Floor Division and Modulus - Python Arithmetic Operators every beginner should know.
Tags: python, operators, beginners, modulus
Published: 2022-08-02 09:26:04


## **What is an Operator?**
Operators are used to perform operations on variables and values.
In python, Operators are classified into different categories based on the kind of operations they perform:
They include:
- Arithmetic Operators
- Assignment Operators
- Comparison Operators
- Logical Operators
- Identity operators
- Membership operators
- Bitwise operators

**Arithmetic Operators** 
Arithmetic operators are used with numeric values to perform common mathematical operations:

**Operator**  **Name**	       **Example**
-  +	     Addition	          x + y	
-  -	     Subtraction	  x - y	
-  *	     Multiplication	  x * y	
-  /	     Division	          x / y	
-  %	     Modulus	          x % y	
- **	     Exponentiation	  x ** y	
- //	     Floor division	  x // y

**Difference between Division, Modulus and Floor Division**
All these operators are quite interesting because they all perform division, but print different results.

```
#Division (/) - basically gives out the result of a division.
a = 5
b = 2 
print(5/2)
# result will be 2.5

#Floor Division (//) - Provides the lower-bound of an integral division
a = 5
b = 2
print(5//2)
# result will be 2, the decimal is cut off returning only the whole number

#Modulus(%) - Computes the reminder of a division,which is the 'leftover' of an integral division.
a= 5
b=2
print(5%2)
#result will be 1, which is the 'leftover' integer after the division

```
First time I learnt all these operations and the different results they print out, I did not quite understand the essence of knowing all these. 

But understanding operators comes in handy when solving problems in Python. 

For example, modulus is important in finding out even and odd numbers in python. 
See the example below : 

### How to determine even and odd numbers using modulus(%)
```
n % 2 == 1 
# when n is divided by 2 and the output has a reminder of 1 which means that the number is odd.

n % 2 == 0
# when n is divided by 2 and the is 0, meaning the number is divisible by 2 then the result is an even number.



```
Hope you learnt something.

Happy Coding!
I am building a SaaS designtshirts.co #buildinpublic
Tags: buildinpublic, saas, webdev
Published: 2022-08-02 09:24:00

Hey everyone 👋, My name is Rohit Mishra 😀. I am a Full Stack web developer from India. I am also a High School Student and trying hard to launch my own SaaS.

Here I am writing about the Journey and Progress of my SaaS project [designtshirts.co](https://designtshirts.co/) which, I am currently working on. I have made a lot of progress and trying to finish it soon.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hos1ebxifns23w54gpf9.png)

## When I got this Idea?
I got this idea before 2 months and started working on it last month and still trying to finish it as soon as possible. Due to lack of time being an indie hacker the progress is little slow but still trying to finish it on time. My first priority is not to finish in very less time, but to deliver a good collection of codes and designs. Now I have already got the domain [designtshirts.co](https://designtshirts.co/) 🎉 and the landing page is also live 🟢.

## How it works?

This website makes it very easy to design any t-shirt within a few clicks. You just have to visit our website, click on start designing and fill the design details and Boooom. You will get thousands of good designs, each with many customizable options.
Now select any design, do your customizable to make it as you need. Download it and print it on your chest (T-shirt). Done easy-peasy.

I am trying to launch it with a very good collection of designs and customizable. You can also support us through this journey by being our Early Supporter. We have an 🔥offer for our Early supporters.

## Our Early supporters will get on launch.

1. Get Unlimited Premium T-shirt designs for 6 Months (worth $1k +)
2. 10% OFF on any future purchases
3. Get direct founder support for any help
4. Surprise Gift on Product Launch
5. Get listed in Early Supporters Page

We appreciate you that you have reached this far. If you want to join and follow us through this journey. Give us a follow-on twitter at [@rohitmisraa](https://twitter.com/rohitmisraa). I post all the progress and related content there.

Thanks for reading.
What are your favourite communities, bubbles and people to follow? Comment your favs!
Tags: beginners, help
Published: 2022-08-02 09:11:38

I love the concept of Dev.to and I'd like to find more amazing communites on dev.to or niche bubbles. Less about products, more about engaged and active communities and learning.

From small but passionate creators to engaged Companies, what are your personal favourites?

Cross-share your own profiles, discord links, company pages or share others :)
We are hiring
Tags: job, offer, ruby, aws
Published: 2022-08-02 09:06:00

Position: Full Stack Developer

Location: Lisbon, Portugal
Description: We are looking for Ruby on Rails Engineers to join us and work on a remote or hybrid basis. You will help guide our overall strategy and participate in the discussion of our technology architecture and implementation with a focus on tangible results.
Salary: (min): 35.000 € - (max): 55.000 €
Essential Skills: 
•	Ruby
•	AWS
•	NodeJS
•	Vue JS
Desirable Skills:
•	Java
•	TypeScript
•	JavaScript
Essential Knowledge:
•	3+ years of experience in product development.
•	In-depth understanding of the entire web development process (design, development, and deployment).
•	Hands-on experience with programming in Node.js, Ruby
•	Experience with REST API's.
•	Capability to integrate and optimize databases like Postgres and Redis.
•	Understanding the concepts of Service Oriented Architecture, Microservices architecture, event-driven, and CQRS pattern.

Contact talentspot2010@outlook.com
Version Update!
Tags: webdev, showdev, php, beginners
Published: 2022-08-02 09:02:12

It's been over 50 days since the initial version of Padmat was released. Today a major change has been introduced identified with the version tag **2.2.1**.

![Version Release 2.2.1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lxjqr27xbgg9iqpncqd6.jpg)

## What's new?
Padmat has undergone a major UI revamp, most of the components remain the same with changes made to the color accent and the logo itself. In addition to this 2 new features were also introduced as per this release.

## Feature Outline

### 🎊 Comment's
Initially, it was just a plain story sitting there. But now you can allow anonymous user(s) to comment on your stories! This feature is powered by [Disqus](https://disqus.com).

### 🎊 Password
You can now lock your story to limited audiences by supplying a password!

Both of these features/settings can be controlled by clicking on the beaker icon towards the right.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g4cq5lx5ulaaov4t4bxh.png)

The same can be found on our changelog story at [Changelog](https://padmat.ga/changelog).

## Further Development/Releases
We're not there yet! The tool requires more tweaking and additional features to be added so that it functions without a glitch. We will keep the community updated through [DEV.to](https://dev.to/padmat) and update our [Changelog](https://padmat.ga/changelog) story as well appropriately.
  
 
### Thank you again for your response! Do spread a word.
Throw error on missing arguments
Tags: javascript
Published: 2022-08-01 17:45:00

In one of his posts [Krasimir Tsonev](https://50tips.dev/) showed a nice tips to "force" passing arguments to a javascript function.

Here is an example :

```js
//https://artydev.github.io/mvu/

const {html, render} = mvu;

function MissinArgException (message) {
  this.message = message;
}

function Error(msg) {
  throw new MissinArgException(msg);
}

function greet (
  user, 
    connected = Error("connected missing")
  ) 
  {
    return html`
      <div>
        ${
          connected 
            && html`<h2>Hello ${user}</h2>` 
            || html`<h2>${user} is not logged</h2>`
         }
      </div>`
}

try {
  render(greet("Marcel", true), document.body)
}
catch (error) {
  alert (error.message)
}
```
You can try if here [ArgMissing](https://flems.io/#0=N4IgZglgNgpgziAXAbVAOwIYFsZJAOgAsAXLKEAGhAGMB7NYmBvAHjmoCcIAHYgAjgdqAXgA6IEsW5xEAelnUAJmnwArOIphQIANw740MYrIDmhWRg7EAnpp2ysOgK4ABDlpgY4MWYohxjRyd8JyxFfCwIFXVxAD4WWXYuXljKEG9YamIIegREEAAGRABOAEYQAF8KdGxcfLUEKjoGJmI8eUlpOQsrWxgdfBMIYkInACN8HIdnWVE0OeaAvmASMgo+dzRNDgq+YT4ggG45ubAnNCyctD4AWX84KIBBDhMAUQAPahheK74AChwcDgGBMMAAlMs5nw+CN-BF4MDQXsDgiQTBjmgKic0GcLtl6HxXhwOLQOAC4CYIcAoTDCCSAO58QyMu5Ap4vD5fH70cmUjFY+YXXL8EzuIzIv406FObwcdZSvjNQxZGCKZFEklk8RKmAqtWRNloEziME0iHCWJ8GmrKAAAwVLD8OliCuhABJqddod7oTq9VavT6fQAyYN8G22liEABMsQAElooLQ+B6ZTAdgkY7FbQGg0GAD758OkO1R2Op2W7fxM2j8JMmUGKTOx+2Bn0Cn0JJ3Z7HEDjWSFezbbP6imBGSUgG6WL5QcTrPtOcHrRS0aihVr4Ma0RTWU2YhYYYjUQj-dOaqk0jCwKxn4mk+FAtH7gVpDK6-FoPIgACsiGjP6VNUICYDgeD4NQQJpM0jDMPklQALoVEAA)

Remove the 'connected' argument and see what happens...
Use TestCat to automatically control your phone via javascript
Published: 2022-08-02 08:35:00

Today I will talk about how to use [TestCat](https://github.com/goldenduo/TestCat) to automatically control your phone via javascript.

# Preparation
1. Install [TestCat](https://testcat.flyingcat.top/docs/R) from github.
2. Prepare an Android phone and turn on the Android debugging mode. ([How to turn on the Android debugging mode](devmode.md))
3. Open the TestCat, and connect the mobile phone and the computer PC through the data cable. Congrats, you're ready to test your cat!

# Getting Started

## 1. Preview 

Take a simple test case **testing whack-a-mole** as an introductory example.(TestCat supports English and Chinese)

![Test cat and whack-a-mole test case](https://cdn.jsdelivr.net/gh/goldenduo/TestCat/R/demo.gif)

## 1. New project

Click the 'File' button in the upper left corner, create a new project as shown below, and follow the prompts

![New project](https://testcat.flyingcat.top/docs/R/open_project.png)


## 2. Partial screenshots

1. We pass the screenshot button on the upper right of the test cat device window

![Screenshot button](https://testcat.flyingcat.top/docs/R/screenshot.png)

2. Take pictures of the three moles on the left, middle and right

![Screenshot](https://testcat.flyingcat.top/docs/R/cut.png)


3. Name and save it, and the corresponding image will be generated in the image directory

![Screenshot](https://testcat.flyingcat.top/docs/R/cut2.png)

![Screenshot](https://testcat.flyingcat.top/docs/R/cut3.png)

## 3. Coding

Let the TestCat continuously find out whether the mole appears on the screen of the mobile phone, and if it does, click on the location of the hamster and use the `cat.tap('xxx.png')` interface. This interface will detect whether the corresponding picture appears on the current screen, if it appears, click it, otherwise nothing happens.

Double-click `index.js` in the project, add the following code, you can continuously test the whack-a-mole

```typescript
while(true){
    cat.tap("Left mole.png")
    cat.tap("Middle mole.png")
    cat.tap("Right mole.png")
}
````

The above code constantly checks whether the current display content of the mobile phone has a picture related to the mole, and if so, click the center point of the picture.

congratulations! ! ! You have already fully started with the test cat~

# More features

The TestCat is more than this. For more info, please check the [API](https://testcat.flyingcat.top/docs/#/en/cat)
CSS animations - Zoom image
Tags: css, html, webdev
Published: 2022-08-02 08:23:08

I am sure you saw many times on some website image with this kind of animation:


![Zoom image with CSS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/klyqt4rp8jq8nutex02w.gif)

The CSS code for this effect can not be very difficult:

```css
.ct-animate-zoom {
    animation: zoom_image;
}

@keyframes zoom_image {
    from {
        transform: scale(0)
    }

    to {
        transform: scale(1)
    }
}
```

We defined animation and we scale from 0 to 1 our image. Simple, isn't it?

------

*It would be great if you will comment or follow me on social media*:

[![Chris Texe Twitter](https://madlon.eu/wp-content/uploads/sites/21/TwitterTexeButton.webp)](https://twitter.com/TexeChris)

[![Chris Texe LinkedIn](https://madlon.eu/wp-content/uploads/sites/21/LinkedInTexeButton.webp)](https://www.linkedin.com/in/texe/)

Also you can visit my websites:

- [Linux blog](https://varlock.net)
- [Web Agency website](https://madlon.eu)