teleren/devto huggingface dataset:
Appwrite Community Report #17
Published: 2022-08-05 13:18:07

Greetings from the Appwrite team! 👋

We are back with our weekly updates. This week we have some amazing announcements, more details unfold inside. 👀

Before we dive right into the report, we extend our gratitude to the community and **24k** star-gazers on GitHub! 🙏🏽

**TLDR;** 0.15.3 is released, what are you building with it? We also have Loot V2 announcements, updated resources for better learning experience and more!

---

## 📢  What’s new 

- We just launched Loot V2 for our Discord Community! [Join in](appwrite.io/discord) to grab some cool swags and hang out with the community! 😎 
- What does it feel like to be a maintainer of an open source project? Covering stories about OSS Fund sponsored maintainers. 
{% embed https://dev.to/appwrite/appwrite-oss-fund-sponsors-inventree-36go %}

Can you relate to it? Would some fund help you? [Appwrite OSS Fund](https://appwrite.io/oss-fund) is here to support!

---

## ✅ Issues solved

With our continued effort to make Appwrite the ultimate open-source solution for all your backend needs, here are some of the fixed we worked on:

- Made the mock download endpoint response consistent with the rest of responses
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3638)

- Fixed docs storage and database link
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3610)
- Updated SDK Generator and CLI to the latest version
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3604)
- Fixed membership issue where information of person adding was returned instead of person being added by [Fauzi E. Abdulfattah](https://github.com/iifawzi)
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3590)

---

## ⚒️ What we’re currently working on

- Adding new metadata to API Keys
- Adding status codes to deployment object
- Fixes console SDK
- Refactoring tasks in Appwrite using the new Platform library

---

## 🗣 Discussions
Let’s talk about Appwrite’s permissions once more
🔗[Join the discussion here](https://github.com/appwrite/appwrite/discussions/3612)

----

## 📘 Resources

- Tutorial on Backing Up and Restoring on Appwrite Server
{% embed https://youtu.be/lM5yZEPtlvg %}
- [Netflix clone](https://dev.to/appwrite/introducing-almost-netflix-a-netflix-clone-built-with-vue-and-appwrite-34nb) built with Appwrite and Vue
- Building a Real-Time Chat Application Using Appwrite and Angular
{% embed https://dev.to/appwrite/building-a-realtime-chat-application-using-angular-and-appwrite-i3o %}
- Learning Appwrite now made easy with the [30 days challenge](https://30days.appwrite.io/)!
Tips for Efficient Hyper-V Backup
Tags: backup
Published: 2022-08-05 13:04:42

Running a virtual environment is cost-efficient and convenient with a Hyper-V infrastructure. But, at the same time, you need to think about how to protect your Hyper-V data from ransomware attacks, natural disasters, hardware malfunctions and other events that can result in data loss



Tip # 1: Perform Agentless Backups
An agent is a component of backup software that you may need to install on your VM. It enables your backup software to perform backups of your entire VM and data.



Tip # 2: Ensure App-consistent Backups

Application-aware or app-consistent backups are critical for data recovery. During the backup process, your data should be consistent across the applications. If an employee changes some data during the backup time, this change should be recognized and reflected in your backup.



Tip # 3: Back up Individual VMs

Use a backup solution that enables you to back up individual VMs instead of backing up the whole Hyper-V host. The reason behind this is that some VMs require frequent backups, others you don’t have to back up at all. For example, you don’t have to back up a VM that you keep for testing purposes.



Tip # 4: Run Incremental Backups

Incremental backups save time and space. You can run incremental backups by using Microsoft’s Resilient Changed Block Tracking (RCBT). This technology is designed solely for the Hyper-V environment. After you run a full backup, you have a representation of your virtual machine.



Tip # 5: Be Able to Perform Full and Granular Recoveries

If you experience a major data loss event or system failure, you may need to run a full recovery. Your backup solution should be capable of booting your Hyper-V VMs from any backup location. During a disruptive event, your goal is to restore your business operations instantly.



Tip # 6: Ensure Low Storage Cost and Fast Backup Speed

You can diminish your storage costs by lowering the size of your backups. A state-of-the-art backup solution allows you to save storage space by offering such features as global deduplication, compression, log truncation, and the exclusion of swap data, such as unused blocks and partitions.



Tip # 7: Create Disaster Recovery Workflows

Disaster events can take place unexpectedly and be the reason for data loss. Disaster events include ransomware attacks, natural disasters, or equipment failures. To avoid financial strain and reputation loss, you should have a disaster recovery plan.



Tip # 8: Include the Hyper-V Host into a Work Group

﻿Include your Hyper-V host into a workgroup to make your Hyper-V host accessible at all times. For example, let’s say your Domain Controller (DC) runs on a VM that resides on a Hyper-V host that is a member of that domain.



Source: [http://telecomdrive.com/key-tips-for-efficient-hyper-v-backup/](http://telecomdrive.com/key-tips-for-efficient-hyper-v-backup/)
🇫🇷 Webinar: Dive into Process Analytics
Tags: bpmn, visualization, analytics, replay
Published: 2022-08-05 12:54:28

The **[Process Analytics project](https://process-analytics.dev/?utm_source=dev.to&utm_medium=display&utm_campaign=webinar_fr)** consists of **open source libraries and components** that allow you to get a visual overview of your business process and the process execution data.

---

At the end of June 2022, Haris Subašić and Céline Souchet showcased an integration use case through a ticketing application, in French 🇫🇷.

ℹ️ The presentation is designed to help you understand how your processes are executed and how to optimize your business processes. 

{% embed https://www.youtube.com/watch?v=z49_5mDa2rk %}

🎥 Topics covered include:
* What different process components are available to you
* How the [bpmn-visualization](https://github.com/process-analytics/bpmn-visualization-js/) TypeScript library can be used to monitor processes 
* How to leverage execution context of processes
* How to drill down and navigate between the process and the Bonita administration pages

---

In the meantime, if you want to stay on top of the latest news and releases from the Process Analytics project, follow us through:
* Website: [https://process-analytics.dev](https://process-analytics.dev/?utm_source=dev.to&utm_medium=display&utm_campaign=webinar_fr)
* Twitter: [@ProcessAnalyti1](https://twitter.com/ProcessAnalyti1)
* GitHub: [https://github.com/process-analytics](https://github.com/process-analytics)
What is attribute binding in Vue? | Vue Js 3
Tags: webdev, vue, beginners
Published: 2022-08-05 12:47:48

##What is attribute binding in Vue?

At the point when we discuss information restricting in Vue, we imply that the spot where it is utilized or shown in the layout is straightforwardly connected, or bound to the wellspring of the information, which is the information object inside the Vue example. At the end of the day, the host of the information is connected to the objective of the information.

Mustaches cannot be used inside HTML attributes. Instead, use a v-bind directive:

```
<div v-bind:id="dynamicId"></div>
```

The v-bind directive instructs Vue to maintain the element's id attribute in sync with the component's dynamicId property. If the bound value is null or undefined, then the attribute could be eliminated from the rendered element.

##Shorthand 
Because v-bind is so commonly used, it has a dedicated shorthand syntax:

```
<div :id="dynamicId"></div>
```

Attributes that begin with : may look a bit different from regular HTML, however it is in truth a valid character for attribute names and all Vue-supported browsers can parse it correctly. In addition, they do now no longer appear in the very last rendered markup. The shorthand syntax is optional, however you may probable appreciate it while you study more about its usage later.

> For the rest of the guide, we can be the use of the shorthand syntax in code examples, as that is the most common usage for Vue developers.

##Boolean Attributes
Boolean attributes are attributes that, by their presence in an element, can indicate true or false values. For example,  one of the most commonly used Boolean attributes is disabled. 

V-bind works a bit differently in this case:

```
<button :disabled="isButtonDisabled">Button</button>
```

The `disabled` attribute is included if `isButtonDisabled` is true. 
It is also inserted if the value is an empty string for consistency with `<button disabled="">` to protect. 
The attribute is ignored for other false values. 

##Dynamically Binding Multiple Attributes

If you have a JavaScript object that represents multiple attributes, it looks like this:

```
const objectOfAttrs = {
  id: 'container',
  class: 'wrapper'
}
```
You can bind them to a single element with v-bind with no argument:

```
<div v-bind="objectOfAttrs"></div>
```
Meet the ClickPesa Team: Neema Adam
Tags: clickpesa, meettheteam, getpaid
Published: 2022-08-05 12:38:27

### Who are you and what’s your role at  ClickPesa? 

My name is Neema Adam but I like to go with my nickname Neicore. I work as a UI/UX designer at [ClickPesa ](https://clickpesa.com/)helping design the three products that we have which are ClickPesa merchant dashboard, ClickPesa sender portal, and GetPaid Africa.

### When did you join the team?

I joined the team on January 6, 2022.

### Where are you working from?

I am currently based in Arusha.


### What does a regular day at ClickPesa look like for you?

It looks like morning meetings(10am) and sometimes very early morning meetings(8am), some slack messages mostly with the product manager, and lots of Figma frames. 


### Who do you primarily work with on the team?

Mostly the product manager [Rick](https://www.linkedin.com/in/rick-groothuizen/), the frontend team [Peter](https://github.com/PeterShekiondo) and [Ben](https://github.com/bmsteven), and tech lead [Omar](https://www.linkedin.com/in/ommyjay/).


### Why do you enjoy working at ClickPesa?

It's a great work environment. Team members are approachable and I am learning a lot from the team and from the work that I do.


### What is your favorite thing you worked on at ClickPesa?

The new design improvements in the GetPaid UI. It’s pretty dope, can’t wait for it to be pushed to prod!


### What are you working on now?

We are currently working on the administrators dashboard so the admins can manage the ClickPesa products easily and I have been working on designing the UIs of those dashboards. Next week the development team will start working on the designs that are ready.


### What tools do you use?

 Short answer, I use Figma. Long answer, read my article here.


### What do you like to listen to while you work?

[My amapiano playlist](https://open.spotify.com/playlist/4S4QhUA5SHKLis00vnci73?si=746c1e6d4b3640bb) always gets me in focus mode but I sometimes switch it up to some HipHop, Pop, or Soul. Here is my [spotify profile](https://open.spotify.com/user/31cuin5etfk52dqmkthabserskhq?si=ac309ebd9f4a4f92).


###  Favorite working snack?

Banana and potato crisps are my favorite.


### What do you do when not working on ClickPesa?

It has been an aspiration of mine to become a web developer so on weekends I do some coding, whether it is working on a side project or visiting the tutorial hell. 


### Describe yourself using 3 emojis

 🤓🥱🚀


### Where can people find you? 

I shit post on twitter [@neicoree,](https://twitter.com/neicoree) I have mediocre to unfinished projects on github [@neicore](https://github.com/neicore), I might start sharing some dope UI kits on [figma community](https://www.figma.com/@neicore) so checkout if you are interested, and lastly, some narcissism on IG [@findingneicore](https://www.instagram.com/findingneicore),
My JS Tests..
Tags: createjs, greensock, threejs, javascript
Published: 2022-08-05 12:35:05


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

My first steps to canvas animations after a long while, its still ongoing, with a lot of features yet undone..

 ~ https://lnkd.in/d3yumPWR - still under development, <in-progress>

I need opinions, what do you guys think... what should i do and shouldn't do... 

~ I'd be awaiting responses in the comments section
Experience on PM2 Tricks to manage your NodeJs processes
Tags: backend, pm2
Published: 2022-08-05 12:33:00


As as a back-end developer I always interact with the servers by using different tools in order visualize on going and failed processes  by  checking logs also  debugging etc , when its comes to NodeJs PM2 it common tool to be used 
 
One day I was working on server and I was changing only  environment variable as to make change to reflect  I restarted an app by running command
 
`PM2 restart <App name>`
 
It fails to restart due to error of  missing some environment variable , I was looking fast way around to start again an app again I took some time for fixing by adding those missing variable but I was not luck at all 
Then thanks to my team leader remind me to use 
 
`PM2 resurrect`
 
And the app starts running  :) 
 

## What is PM2
**PM2** is node daemon process management that comes with load balancer (improves application availability and responsiveness and prevents server overload).
PM2 offers a simple CLI tool and is installed via NPM , and bunch of command to be used on starting, stoping, restarting, checking logs and more 
 
What PM2 resurrect does it to restore previously saved process list
PM2 process list are saved with command below
PM2 save 
PM2 save takes a snapshot of your currently running Node applications, This saves the processes currently managed by PM2 to disk so they're accessible to the daemon on system boot.
 
Running PM2 contains environment(process.env) variable on heap (The heap is the RAM used by the program you're asking PM2 to manage and monitor), saving command will save all instances variables 
you can see what memory usage by this command.
  `pm2 monit`
 
This means incase something went wrong resurrect can be used to revert running instances with no issue
 
 
 
 

## Advantage of using PM2
 pm2 offer run multiple processes with multiple cores of CPU to achieve the Load Balancer like effect
Can easy used on  CI/CD deployment
 Schedule to restart periodically
pm2 help to organise log
Allows auto-restart under specific conditions, such as ‘up-time’, ‘memory usage’ 
 It provides much information, including restarting number, CPU usage, memory usage, process_id etc.



## Alternative of PM2 with build in load Balancer
[Nodemon.io](https://nodemon.io/)
Monitor for any changes in your [NodeJS](https://nodejs.org/en/) application and automatically restart the server - perfect for development

[Forever
](https://www.npmjs.com/package/forever)
A simple CLI tool for ensuring that a given script runs continuously (i.e. forever)

[Supervisor](https://www.npmjs.com/package/supervisor)
Supervisor process control system for UNIX



You can add comment below on the issue you faced on servers

If you like this article there are more like this in our blogs, follow us on [dev.to](https://dev.to/clickpesa) and
[medium](medium.com/@clickpesa)
#CSSExplainer: image() function, explained
Tags: css, webdev, tutorial, productivity
Published: 2022-08-05 12:31:38

The CSS `image()` function is similar to the `url()` function, but with extra features that let us specify an image with fallback options and annotations.

##Key features:
- Uses media fragments to clip out a portion
- Specifies fallback images
- Uses a solid color as an image
- Specifies the directionality of image, ltr for left to right or rtl for right to left

```css
/* Syntax of image() function */

/*
image(<image-tags> [ <image-src> , <color> ] )

<image-tags> = ltr | rtl
 ltr - ltr for left-to-right & rtl - right-to-left. 

<image-src> = <url> | <string>
<color> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color>
*/


/* Example-1: Cropping portion of an image*/
.logo {
   background-image: image('myimage.webp#xywh=338,324,360,390');
}

/* Example-2: Putting color on top of a background image */
.logo {
  background-image:
    image(rgba(0, 0, 0, 0.25)),
    url("https://mdn.mozillademos.org/files/12053/firefox.png");
  background-size: 25%;
  background-repeat: no-repeat;
}
```
Android — Infinite Auto-Scroll with Jetpack compose
Tags: andorid, programming, kotlin, auto
Published: 2022-08-05 12:26:29

Wanna learn infinite [Auto-Scroll](https://blog.canopas.com/android-gitlab-ci-setup-c3618b8ef0db)using [Jetpack compose](https://blog.canopas.com/android-drag-and-drop-ui-element-in-jetpack-compose-14922073b3f1)?

Infinite auto-scrolling is useful when you want to improve user experience as they don't need to scroll manually to see all the items.

We will use LazyRow with some finite items and make it scrollable for an infinite amount of time.

At the end of[this blog](https://blog.canopas.com/android-infinite-auto-scroll-with-jetpack-compose-ef8d573f8878), you will learn how to implement the Infinite Auto scrolling lazy list.

This post highlights a single approach for infinite auto-scrolling lists and there might be many diverse ways to achieve this in jetpack Compose!

The complete composable for the auto-scrolling lazy list is available on [Github](https://gist.github.com/cp-hardik-p/d460776476906f165284ca1cb05fb073). 

For detailed implementation, [visit our blog](https://blog.canopas.com/android-infinite-auto-scroll-with-jetpack-compose-ef8d573f8878).
GraphQL Armor: A middleware to make your GraphQL endpoints secure
Tags: graphql, apolloserver, typescript, security
Published: 2022-08-05 12:06:00

*tl;dr we released [github.com/Escape-Technologies/graphql-armor](https://github.com/Escape-Technologies/graphql-armor), a developer friendly, free and open source middleware that adds a security layer to any js-based GraphQL server.*

> "GraphQL is less secure than most REST APIs"

This is something we have heard a lot since GraphQL's inception in 2015.

Our security research team confirmed this when spending a year on evaluating security in the GraphQL ecosystem. (I even [gave a talk about the results at GraphQL SF 2022](https://www.youtube.com/watch?t=2574&v=J7926_Loy7o&feature=youtu.be))

We decided the GraphQL ecosystem deserved to be more secure and created **GraphQL Armor**, a developer friendly middleware that quickly adds a security layer to any js-based GraphQL server.

Out-of-the-box, you get protection against:
- Bruteforcing
- Query complexity attacks (Depth, Width, cyclomatic complexity)
- Information Disclosure (Schema leaks)

But more is to come, we are adding protection against new attacks every week 😎 

Link to the repo: https://github.com/Escape-Technologies/graphql-armor

If you use GraphQL, feel free to help us by staring and contributing 🤩
Portable Wordpress with SQLite instead of MySQL
Tags: wordpress, sqlite, installer
Published: 2022-08-05 12:04:48

When working with WordPress, there are many occasions you may need a quick spin WordPress environment without dealing with database setup and a web server.

Making WordPress use a SQLite database and run on a native PHP server is surprisingly easy and simple.

I’ve been using this setup for testing plugins, and themes and trash the setup without worrying about it much.

The magic here is mostly automating the installation and configuration of the WordPress instance using wp-cli. It’s very easy to install and run wp-cli from a phar package.

```shell
# Install wp-cli
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

# Set up wordpress site
php wp-cli.phar core install\
		--url=http://localhost:8011\
		--title='Test Site'\
		--admin_user=admin\
		--admin_password=admin\
		--admin_email=test@example.com\
		--skip-email

# Tweaking wordpress settings
php wp-cli.phar rewrite structure '/%postname%/' --hard
php wp-cli.phar option update page_for_posts 10

# Installing and activating plugins
php wp-cli.phar plugin install kirki --activate

# Installing and activating theme
php wp-cli.phar theme activate mytheme

# Creating sample content
php wp-cli.phar post create --post_type=post --post_title='A sample post'
```

You can get the full installer and configuration script here: [https://github.com/mfyz/wp-sqlite-installer](https://github.com/mfyz/wp-sqlite-installer)


---

This article was first published on my personal blog: [https://mfyz.com/portable-wordpress-with-sqlite-instead-of-mysql/](https://mfyz.com/portable-wordpress-with-sqlite-instead-of-mysql/)
C for scientific programming
Tags: datascience, devops, programming, c
Published: 2022-08-05 12:02:32

My take on scientific programming is that I think of C as one of many tools in my toolkit for performing computational tasks in my scientific work. I wouldn’t necessarily suggest only programming in C. On the other hand, I would recommend taking advantage of C when the situation calls for it. In our lab, we use Python, R, (sometimes Matlab but increasingly less often), and when we feel the need, the need for speed, we use C.

Interactive data exploration#
For interactive data exploration, like when you want to load in some data, plot it in different ways, do some rudimentary calculations, plot the results, etc., then C may not be the best choice. For this sort of interactive exploratory scripting, a language like Python, Matlab, R, etc., may be entirely sufficient. In particular, these other languages make it very easy to generate great-looking graphics quickly.

Processing large data#
For cases where you need to process a large amount of data, you will find that these languages are slow. Even for fairly common statistical procedures like bootstrapping (techniques that involve resampling thousands or tens of thousands of times), interpreted languages will be orders of magnitude slower than C.

This is the situation when C starts to become very attractive. If you have a data processing operation or a simulation, and you know it will take a long time to run, then it is often worth it to spend some time implementing it in C. The graph below compares the speed of interpreters for several languages. As you can see, C shines in this regard.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vt29a6qi0ul1j564rv2x.png)
My rule of thumb is that if I have to wait more than about 10 seconds to see the result of a calculation or operation, then I get annoyed, and I think about implementing it in C.

You might think, who cares if my calculation takes 10 seconds, or 30 seconds, not 5 minutes, for that matter? Are 5 minutes so bad? The answer is, no, it’s not so bad if you only have to do it once… but it’s almost never the case that you perform a computation on your data only once.