teleren/devto huggingface dataset:
ทำให้ Google Calendar สามารถแจ้งเตือนผ่าน Line Notify ได้
Published: 2023-07-23 06:54:55

- เปิด Google Drives กดปุ่มเครื่องหมายบวก(+) >> เพิ่มเติม >> 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/drthavp63sq7ys4fset9.png)
- หน้า Apps Script จะเปิดขึ้นมาเปลี่ยนชื่อและลบโค้ดทิ้งไปก่อน
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ktbl6gsz5cf75t99mfbg.png)
- เอาโค้ดไปแปะ

```
function myFunction() {
  var calenda = CalendarApp.getCalendarById("xxx");
  var token = "xxx"; // Line Token 
  var url = "https://notify-api.line.me/api/notify";
  
  var today = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate());
  var event = calenda.getEventsForDay(today);
  var msg = "";
  if (event.length === 0) {
    msg = "วันนี้ไม่มีกิจกรรม";
  }
  else {
    msg += "📣📣วันนี้มีทั้งหมด " + String(event.length) + " กิจกรรม ได้แก่\n\n";
    msg += sendMessage(event);
  }
  var jsonData = {
    message: msg
  }
  var options =
  {
    "method": "post",
    "contentType": "application/x-www-form-urlencoded",
    "payload": jsonData,
    "headers": { "Authorization": "Bearer " + token }
  };
  var res = UrlFetchApp.fetch(url, options);
}

function sendMessage(events) {
  var msg = "";
  events.forEach(function (event, index) {
    var title = event.getTitle();
    var start = event.getStartTime().getHours() + ":" + ("0" + event.getStartTime().getMinutes()).slice(-2);
    var end = event.getEndTime().getHours() + ":" + ("0" + event.getEndTime().getMinutes()).slice(-2);
    if (event.isAllDayEvent()) {
      msg += String(index + 1) + ") " + "เวลา : " + " ทั้งวัน" + "\n 🔥เรื่อง : " + title + "\n\n";
      return;
    }
    msg += String(index + 1) + ") " + "เวลา : " + start + " - " + end + " น." + "\n🔥เรื่อง : " + title + "\n\n";
  });
  return msg;
}
```
- เอาLine Notify Token และ Calendar ID มาใส่
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/un4jo1hw214skx6jsapu.png)
- ทดสอบการแจ้งเตือนโดยการกดปุ่ม (▶️เรียกใช้)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/adeno5i93kzafy5ph91v.png)
- ตั้งค่าให้แจ้งเตือนแบบอัตโนมัติ🤖 เลือกเมนู"ทริกเกอร์" >> +เพิ่มทริกเกอร์ >> ปรับแต่งเวลาการแจ้งเตือนอัตโนมัติ >> กด"บันทึก"
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8bmkbqrh1yhubsnzizw6.png)

**ปัญหาที่พบ
- หากทำการแจ้งเตือนเข้ากลุ่มไลน์ อย่าลืม Invite Line Notify เข้ากลุ่มด้วยไม่งั้นเวลารันจะมีปัญหาติดต่อ Token ไม่ได้ 
- การแก้ปัญหาเวลาแจ้งเตือนไม่ตรง

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/apn0iy3rsz9n6eheivy3.png)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bv0jdlyfvubfgz02vobv.png)
YouTube video downloader using HTML, CSS, and JavaScript.
Tags: codepen, youtubevideodownloader, vinkalprajapati, videodownloader
Published: 2023-07-23 06:20:14

{% codepen https://codepen.io/vinkal-93/pen/YzRjLQW %}

## By Vinkal Prajapati

This code creates a simple web page with an input field where you can paste the YouTube video URL. When you click the "Download" button, it will extract the video ID from the URL. The download link will be displayed below the button, and when clicked, it will take you to the download page for the video.
Apache Age: Data Types - An Introduction to agtype
Tags: apacheage, postgressql, database, programming
Published: 2023-07-23 06:10:50

Null in Cypher stands for values that are absent or undefinable. It behaves differently in comparisons and expressions compared to other values. Null, for instance, is not the same as null.

Within a range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807, the integer type holds entire numbers.

The float type is an IEEE-754-compliant variable-precision, imprecise numeric type. It is capable of displaying unique values like infinity and NaN.

Numbers having a very large number of digits, suited for exact calculations, such as monetary quantities, are stored in the numeric type.

The boolean type has three possible states: true, false, and "unknown," which is denoted by null.

Agtype allows escape sequences like t, n, and Unicode characters (uXXXX) in strings.

Work with composite data types like lists and maps in Cypher.

Lists can include numerous elements, including null, and are formed using brackets.

Square brackets and index numbers are used to access specific list items.

Key-value pairs make up maps, which are built using curly brackets.

With the key name and dot notation, you may access map elements.

Lists and other composite data types, as well as maps themselves, can be nested within a map.

In Cypher, objects are identified by particular graph IDs (graphids) that are specific to them.

The basic building blocks of the graph are called vertices, and they can be given labels.

There are incoming and outgoing edges for vertices.

Edges must connect vertices and have a label.

Properties are string-named attribute values that are connected to vertices and edges.
Project: Oracle to Postgres Migration
Tags: apacheage, postgres, database, programming
Published: 2023-07-23 05:55:23

**Introduction:**
The advantages of PostgreSQL over Oracle, such as its affordability, versatility, and customizability, are emphasized. Businesses can save money on licensing costs and get more deployment options with PostgreSQL thanks to open-source licensing. In contrast to Oracle, PostgreSQL also provides a large selection of add-ons and extensions free of charge.

Assessment, Schema Migration, Functional Testing, Performance Testing, and Data Migration are the five steps that make up the project. The application is carefully examined throughout the Assessment step to determine the migration effort needed. Checks for compatibility are made, and the application code is examined to identify what modifications are required for a seamless transfer. The database structure is optimized by architecture cleanup.

The creation of PostgreSQL-type users and schemas is done during the Schema Migration phase, and the conversion of the schemas is automated using program like _Ora2pg_, _Ora_migrator_, _Orafce_, or EDB Migration Portal.

To guarantee that the changed schema works properly, functional testing is essential. For consistent SQL outputs, the same test dataset is imported into Oracle and PostgreSQL databases, and any problems are addressed and corrected.

The migrated database's response times, transaction throughput, and scalability are assessed during performance testing using a variety of workloads and benchmarks.

Using specialized scripts or data migration solutions like the EDB Migration Portal, data is transported from the Oracle database to PostgreSQL during the data migration phase while maintaining integrity and consistency.

The project identifies significant inconsistencies and incompatibilities between Oracle and PostgreSQL throughout the migration process, giving users helpful information to prevent typical mistakes.

In order to successfully migrate, the conclusion emphasises the significance of a methodical approach, compatibility consideration, intelligent schema transformation, thorough testing, and precise data transfer. Businesses can take advantage of PostgreSQL's benefits, such as affordability, adaptability, and customization, by completing the conversion to it.

The study functions as a thorough manual for companies wishing to switch from Oracle to PostgreSQL, providing information on the advantages and migration procedure as well as tools and advice to ensure a smooth and successful switch.
Migrate an EC2 instance from one AWS account to another
Published: 2023-07-23 05:45:50

### Create an AMI  of the instance 

```
aws ec2 create-image \
    --instance-id <i-0123456789abcdef> \
    --name "AMI-Image-Name" \
    --description "AMI Image of EC2 created from Source AWS Account to Destination AWS Account" \
    --region <region-id> \
    --profile <optional-profile>
```
Above command will output an Image ID. We will share this image with the destination AWS Account. Image creation might take some time. When the image is created run following command to give permission to destination AWS account.

### Give AMI Permission to destination AWS Account

```
aws ec2 modify-image-attribute \
    --image-id <AMI-ID-retrieved-from-above-command> \
    --region <region-id> \
    --launch-permission "Add=[{UserId=<destination-aws-account-id>}]" \
    --profile infolytxdev
```

Reference:

1. https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html
2. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html
nix VPS running out of memory?
Tags: linux, system
Published: 2023-07-23 05:22:14

Note to me: If your VPS is running out memory while installing another application, then quick fix:

- check disk usage:

```
$df -h
```
- find files greater than 500MB 

```
sudo find / -type f -size +500M -exec ls -lh {} \;

```
If you understand and are sure of what files are not being used by you, database or system, remove them.
Create a Calculator Using HTML CSS and JavaScript
Tags: html, css, javascript
Published: 2023-07-23 05:06:33

Create a Calculator Using HTML CSS and JavaScript

learn how to create a calculator using html css and javascript from scratch. It's great project for everyone, they are interested in HTML, CSS and JS languages.

It's beginners based project, but it's very helpful for beginners, every beginners should try to create a projects. So here is great project for you.

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

I've used HTML and CSS to design professional calculator, then I've used JS to add the functionalities inside that.

Inside the project have a great features such as remove the digit from input field, display the operations result in the left side and finally have a superb feature keyboard usage.

you can use keyboard keys to do operations such as addition, subtraction, division etc. 

after watching the complete video tutorial, I hope you've got a lot ideas and learned something from it.

Hope this tutorial is helpful and beneficial for you.
How can i display data by category in laravel
Tags: laravel, php, beginners, programming
Published: 2023-07-23 04:30:22


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


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


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


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



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a4u3dle33932birofx1y.png)
Nhưng món đồ không quên trong vali khi đi du lịch
Tags: travel, news
Published: 2023-07-23 04:24:33

``Khi bắt đầu một hành trình tất cả khách du lịch đôi khi phải chịu đựng nhiệm vụ tẻ nhạt nhưng cần thiết là đóng gói và lựa chọn thiết bị du lịch cần thiết. Khi bắt đầu đi du lịch, chúng ta cần có quần áo và phụ kiện thiết yếu mang lại cho chúng ta sự thoải mái, an toàn và giúp chúng ta giải quyết các vấn đề điển hình phát sinh trong chuyến đi.

Do đó, ở đây Vali.sale sẽ giới thiệu cho bạn một số phụ kiện sẽ giúp ích rất nhiều cho bạn mọi lúc mọi nơi. Mặc dù mỗi loại có một chức năng khác nhau, nhưng tất cả đều nhằm mục đích làm cho chuyến đi của bạn thoải mái hơn và tránh những bất tiện.
https://vali.sale/category/vali-nhua-abs
Unveiling the Power of Cypress for End-to-End Testing."
Tags: javascript, testing, tutorial, beginners
Published: 2023-07-23 04:17:17


I wanted to take a moment to express my sincere gratitude to The Test Tribe for providing me with the wonderful opportunity to speak on the topic "Unveiling the Power of Cypress for End-to-End Testing." It was truly an enriching experience!


[More then 110 + People Joined the Virtual meet.](https://www.linkedin.com/posts/kailashpathak_softwaretesting-testing-community-activity-7088454972937244672-5Bue?utm_source=share&utm_medium=member_desktop) Thanks you all for Joining the meet.
67 berufliches Vorwärtskommen: Karriere-Weg-Nicht-Helfer.
Tags: deutsch, career, motivation, discuss
Published: 2023-07-23 03:49:00

Moin Moin,

in den letzten Wochen bin ich immer wieder mal über die Aussage gestolpert, dass man des Ergebnis der fünf Leute sei, mit den man am meisten Zeit verbringe. Unter anderem bringt mich dies zu Leuten, die sich bewusst von anderen fernhalten und keinem auf dem Karriere-Weg helfen. Folglich können diese niemals einer der fünf Leute sein.

Andererseits gibt es Leute, die auf Grund ihres Umstandes, besondere Hilfe auf ihrem Karriere-Weg gebrauchen könnten. Leute, die in ihrer näheren Umgebung niemanden haben der sie unterstützt. Dies kann vom Elternhaus und vom Freundeskreis ausgehen. Zusätzlich gibt es Leute deren Mittel zu beschränkt sind, um für bestimmte wichtige Bildungsleistungen zu zahlen.

Ich denke, dass dies ein interessantes Anliegen ist, geht es doch um Ethik, Moral, Gerechtigkeit und so weiter. Also ggf. eine der schwierigeren Fragen des Lebens.

1) Dies Aussage bzgl. der fünf Leute an sich ist bereits interessant genug. Hast du entsprechende Erfahrungen in deinem Leben gesammelt?
2) Was meinst du sei eine gute Karriere-Förderungsmaßnahme für IT-begeisterte Jugendliche, die unter den oben beschriebenen Umständen leben?


Lass uns mittels Kommentaren austauschen.

Beste Grüße,
Mustafa

Oder auch mittels E-Mail: mustafa.kevin.dwenger@posteo.de
Betreff: Austausch
Holistic approach to make an ultimate AI
Tags: ai, webdev, beginners, tutorial
Published: 2023-07-23 03:30:00

Creating responsible AI goes beyond good intentions; it requires a holistic approach that encompasses data, governance, risk, and compliance considerations. [Monitaur](https://www.aiforme.wiki/ai/tools/monitaur) is dedicated to keeping AI honest and ensuring responsible AI practices.

By bringing together data, governance, risk, and compliance teams onto one platform, Monitaur helps businesses mitigate AI risks, leverage AI's full potential, and translate intentions into action.

**The Monitaur "Policy to Proof" Roadmap:**
Monitaur's SaaS products offer a comprehensive "policy to proof" roadmap for AI and model governance. This roadmap unites every stage of the AI governance journey, enabling businesses to turn AI governance frameworks into practical and actionable practices that can be implemented at scale.

**Governance for Responsible AI:**
Monitaur provides a robust three lines of defense approach for responsible AI governance. By adopting Monitaur, businesses can implement user-friendly workflows that thoroughly document the entire lifecycle of their AI journey on a single platform. This comprehensive approach not only ensures risk mitigation but also positively impacts the bottom line by promoting ethical AI practices.

**The Complexity of AI Ethics:**
Monitaur acknowledges that the path from model to proof of ethics is not a straightforward one. The intricacies involved in ensuring responsible AI demand a systematic and unified platform that can address data challenges, governance frameworks, and ethical considerations.

**Conclusion:**
[Monitaur](https://www.aiforme.wiki/ai/tools/monitaur) stands as a dedicated partner in the journey of responsible AI governance. By uniting data, governance, risk, and compliance teams, [Monitaur](https://www.aiforme.wiki/ai/tools/monitaur) offers a comprehensive approach to AI ethics. With user-friendly workflows and a "policy to proof" roadmap, businesses can confidently embrace AI's potential while maintaining ethical integrity. [Monitaur](https://www.aiforme.wiki/ai/tools/monitaur) not only safeguards businesses against AI risks but also empowers them to unlock the full potential of AI responsibly. Embrace Monitaur to navigate the complexities of AI ethics and ensure responsible AI practices that align with your company's values and goals.
Proposition : Simplifying CRUD Operations in Angular
Tags: angular, ngrx
Published: 2023-07-23 03:13:49

The proposed library aims to provide a generic admin component that dynamically generates CRUD forms and UI components based on entity metadata. By automating the admin interface setup, developers can save valuable time and effort, allowing them to focus on building exceptional applications.

💪 **Key Features We Envision:** 💪

- **Generic Admin Component:** A flexible component to handle CRUD operations across various entities/models.
- **@ngrx/data Integration:** Seamless integration with @ngrx/data for efficient entity management.
- **Consistency & Customizability:** Maintain a consistent UI while offering customization options as per specific project needs.
- **Role-Based Access Control:** Easy implementation of role-based access control to ensure security.
- **Community-Driven & Open Source:** An open invitation for developers of all levels to contribute and collaborate.


🚀 **Stay Updated - Be Part of the Journey!** 🚀

To stay in the loop and actively participate in shaping this project, we encourage you to leave your valuable comments on this post. Your feedback, ideas, and suggestions will play a crucial role in defining the direction of this library. Whether you are an experienced Angular developer or just starting out, your voice matters!

🗣️ **Join the Discussion - Share Your Thoughts:** 🗣️

Let us know what features you'd like to see, how you envision the admin component, and any use cases that are essential for your projects. Engaging in discussions will foster a collaborative environment and help create a truly community-driven solution.

🗓️ **What's Next?** 🗓️

If there is sufficient interest and engagement from the community, we'll initiate the development of this library as an open source project on GitHub. We'll create a dedicated repository to host discussions, and together, we'll chart the course of this project based on your input.

🙌 **Your Participation Matters!** 🙌

By actively participating in the conversation, you become an essential part of this journey to simplify CRUD operations in Angular. Let's work together to build a feature that benefits the entire Angular community!
Bandit Level 4 Level 5
Tags: writeup, ctf, overthewire, bandit
Published: 2023-07-23 03:02:52

### Introduction

Bandit5 is the sixth level of the OverTheWire Bandit wargame. In this level, we will learn how to use the "file" command to determine the file type of a file and how to read the contents of a specific file. By completing this level, we will gain access to the password for the next level.

### Steps

1. Open your terminal application.
2. Enter the following command to ssh into the remote server:

```
ssh bandit4@bandit.labs.overthewire.org -p 2220
```

1. You will be prompted to enter a password. Enter the password from the previous level, "2EW7BBsr6aMMoJ2HjW067dm8EgX26xNe", and hit enter.
2. You are now connected to the remote server and are able to execute commands.
3. Enter the following command to view the file types of all files in the "inhere" directory:

```
file inhere/*
```

1. The output will show that all files in the directory are “data” files, except for one file which is a ASCII text file, this human-readable file should contain the password for the next level.
2. Enter the following command to read the contents of the file with the name "-file07" in the "inhere" directory:

```
cat inhere/-file07
```

1. The output should show the password for the next level: lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR.

Congratulations! You have successfully completed Bandit5 and gained access to the password for the next level.

### Conclusion

In this level, we learned how to use the "file" command to determine the file type of a file and how to read the contents of a specific file. These are important skills to have when working with files in Linux command line, and mastering them will be useful for solving future levels in the OverTheWire Bandit wargame.
Dev academy
Tags: beginners, tutorial, programming
Published: 2023-07-23 01:41:29

## Who am I?
University lecturer and CTO with 2 decades of academic and industry experience.


## What I am building 
An academy for helping developers at all levels to learn the theory and practice of software engineering.

[You can find it here](http://dev-academy.uscreen.io)


## Background
I had the feeling that universities nowadays teach too much theory and are disconnected from "the real world", but code schools and similar are too shallow, and I wanted to create something that would help people grow as software developers.

### How I built it
I started recording videos where I explain topics of software development from my academic and industry experience. Each course has theory (I explain how something works) and practice (I solve coding assignments on camera).
The whole academy is under construction, and at a rhythm of one new lecture per week this will be the full curriculum:
- Introduction to TypeScript 
- Introduction to C#
- Introduction to SQL and NoSQL(Postgres and Elasticsearch)
- Backend development in ASP.Net
- Introduction React
- Advanced patterns in React
- Building headless websites with Strapi and React
- How to write high performance code with algorithms and data structures
- Machine learning and recommender systems basics
- Introduction to functional programming 
- Advanced patterns in functional programming and category theory
Better Validation
Tags: unity3d, csharp, gamedev
Published: 2023-07-23 00:12:08


The Better Validation package provides attributes to perform validation in scenes and the whole project. Link to the project:

https://github.com/techno-dwarf-works/better-validation

### Validation

To initiate validation, you can go to `Toolbar > Better > Validation > Open Validation Window`, or it may start automatically prior to building (validation before play mode will be available in the future).

![Validation window](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i23vixaylbkx77ux0hyo.png)

### Settings

If you wish to disable automatic pre-build validation or change the logging level, you can open the settings at `Toolbar > Better > Validation > Highlight settings` or `Edit > Project Settings > Better > Validation`.

![Settings window](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bgb20apvhhif076t5dz4.png)

### Available Attributes

The available attributes completely cover all the needs of the modern development process. But if you need more, just add an issue on GitHub, and I'll get back to you.

1. **NotNull**: Fails if a `UnityEngine.Object` is null or has a missing reference.

2. **PrefabField**: Inherits from NotNull and fails if the field references a scene object or an object context.

3. **SceneReference**: Inherits from NotNull and fails if the field references a prefab in the Project.

4. **Find**: Searches for a Component of Type provider in the constructor. It has additional settings:
   - **ValidateIfFieldEmpty**: Configures the search only if the field is null or missing.
   - **RequireDirection**: Configures the direction of the search.

5. **DataValidation**: Validates data in the field using the provided method name. It only supports methods in the same class. The method can return one of the following types:
   - `void`: Validation will be called, but nothing will be displayed in the editor or the Validation Window.
   - `bool`: `true` represents a successful validation, while `false` will draw a default error in the editor and the Validation Window.
   - `string`: The returned string is regarded as a failed validation, while an empty string indicates success.

All attributes have a `ValidationType` that represents the importance of the validation result.

The plugin supports extensions through IBuildValidationStep and IValidationStep interfaces.