teleren/devto huggingface dataset:
An app made by 16 year old boy - FarmYara
Tags: webdev, dart, programming, mobile
Published: 2024-02-17 05:56:26


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/awyomcbi29lql0x1sbjr.png)
I have coded an application it's name is FarmYara and it is available on play store. This app has alot of features like to calculate the area of land and field through google map, you can sell your tractor, combine, implements, animals and land or plot mearby by you, and you can also buy by contacting to the pesonal who is selling. It have feature to show weather and consist emi calculator. Now it is available only in India but in future within few months I have planned to publish it globally.
Download this - [https://play.google.com/store/apps/details?id=com.global.farmyara](https://play.google.com/store/apps/details?id=com.global.farmyara)
How to setup SES Email templates [2024 Guide]
Tags: ses, aws, email, node
Published: 2024-02-17 05:31:35

When I want to build transactional emails in my apps, AWS SES is my first choice! There are several alternatives like Sendgrid, Mailgun but when it comes to pricing, AWS SES wins!

But the only drawback is that, AWS SES doesn't offer any template editors. Developers should write HTML to build good looking emails, and keep them in S3. 

But that's boring, difficult and hard to maintain.

In this tutorial, I'll show you an alternative, an easiest way to [setup SES email templates](https://engagespot.co/notification-templates) using a free tool - Engagespot!

**Prerequisites**

- Configured SES account
- Engagespot account ([signup here](https://console.engagespot.co/auth/register))

## Setting up SES Email templates

Login to your Engagespot account, navigate to channels -> Enable the AWS SES Email Provider with the API key and secret.


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

Then, navigate to Templates and create a new template and add Email channel to it. Now you'll get the email editor.

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

Build a beautiful email editor using one of the existing layouts, or create one from scratch yourself.

You can also test the template directly using the "Test" template option available in the dashboard!


## Sending the SES Email template from your backend

Now, to trigger the email template you've created using the SES provider, we will use the [Engagespot REST API](https://docs.engagespot.co/docs/rest-api), or a library such as [@engagespot/node ](https://www.npmjs.com/package/@engagespot/node) or [Engagespot PHP library](https://packagist.org/packages/engagespot/php-sdk)

If you're using the REST API, this is how you can simply send the templated SES email to your user!

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

Done! All it took was less than a few minutes! 
You can edit the template anytime without having to touch your code!
Crop images seamlessly in Node.js
Tags: unburn, cropify, javascript, node
Published: 2024-02-17 05:26:25

[Cropify](https://github.com/unburn/cropify) helps to crop and round image corners seamlessly.

## Installation
```
npm install cropify
```

## Usage
```javascript
const { cropImage } = require("cropify");
const fs = require("fs")

const imagePath = 'https://th.bing.com/th/id/OIGP.914kwCtAqWQ7Lkx5hT2B?pid=ImgGn';

const cropX = 0;
const cropY = 0;
const cropWidth = 1280;
const cropHeight = 720;
const borderRadius = 80;

cropImage({
    imagePath: imagePath,
    x: cropX,
    y: cropY,
    width: cropWidth,
    height: cropHeight,
    borderRadius: borderRadius,
    cropCenter: true
}).then(x => {
    fs.writeFileSync("cropped-image.png", x);
});
```

## Output
![Example of Cropify](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1la08mh9i7dqdvb9jcv4.png)
Inheritance Vs Composition
Tags: typescript, node, softwaredevelopment, oop
Published: 2024-02-17 05:11:03

Hi everybody :blush:,

Let’s talk about inheritance vs composition

They are key concepts in OOP, both are mechanism to reuse code and class hierarchy, but they have different approaches and they are use in different context

##Inheritance
It’s allows to create a class and reuse codes, we create a father class which has all the implementation of its own method, we can extends the class to another class, this class is a child from the class that is extends, but the child class can have extra methods and attributes, you can also override the father methods if you need an specific implementation of that method.

- It’s a mechanism through which a class can inherit attributes and methods from another class.

- The class inherits characteristics from another class.
The sub-class can add methods and attributes and override a method which comes from the superclass.

### Example
A class name “Dog” can inherit from a class name “Animal”. The class Dog inherits attributes and methods from Animal as name and the method to eat, but also it could have their own methods and attributes, such as breed.

![Inhericante example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/exkn8b82zg94sdwmfuig.jpg)

##Composition
It’s the design technique in OOP to implement has-a relationship between objects, it’s very useful designing software components, at the beginning it could be challenging, because an object contains one or more objects from another class as part of its structure, when using this concept you can:

- Reuse existing code, It’s allows you to reuse code with modeling association as you do in inheritance, that’s allows to encapsulate and makes your code more easier to maintain, as you can see is very use in real world, for example a car is not an engine, it’s a composition of many differents components unit via externals API’s to compose a higher level of abstraction and provide more significant use value to their users.

- The objects contains are not expose directly to external classes, for that reason could be changed, but it not an instance of a concrete class

###Example
A class named Car could has a class name Engine as part of its structure, the Car has a Engine, but the Engine it’s not a special type of Car

![Composition example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mdta7rmcivvnvmi3lnr.jpg)

##Summary
Inheritance is used for modeling hierarchical relationships between classes, while composition is used to build complex objects combining other objects.
Both are important in OOP and they are used depending on design's necessity and the nature of the relationships between classes in the system.
Games that are Supported by Lulubox Pro
Published: 2024-02-17 05:08:22

Lulubox is an app that provides users with tools and plugins to enhance their gaming experience on mobile devices. It's important to note that using third-party apps or tools to modify games can violate the terms of service of the respective games and app stores.

Additionally, the availability of features in [Lulubox](https://proluluboxapk.com) may change over time, and new games may be added or removed from its supported list. For the most up-to-date information, I recommend checking the official website or app store listing for Lulubox.

Keep in mind that modifying games using  tools may lead to consequences such as account bans, and it's essential to use such tools responsibly and in compliance with the terms of service of the games you are playing.
Portfolio website - Devlog #1
Tags: react, webdev, frontend, beginners
Published: 2024-02-17 05:05:26


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aql2syz5x9fk7qtvjlz8.png)
Started working on portfolio website and have almost finished the first section.

Implemented a fixed navbar with an active element, layout of the first section is almost done, incomplete custom cursor.

Next steps:
**RESPONSIVE WEBSITE!!**
Design the next section i.e. expertise / work.
Customized cursor
Navbar element should light up when hovering, others greyed out.
How To Install Remix.Js? A Step By Step Guide For Beginners
Tags: remixjs, javascript, framework, react
Published: 2024-02-17 04:49:23

## Introduction

[Remix](https://remix.run/) is a cutting-edge web framework designed to create React apps with an emphasis on scalability, developer experience, and performance. In this blog, we'll take you through installing and configuring your first application.

With the help of Remix.js, you can create server-rendered React apps with a unified routing system and streamlined data loading by integrating client and server code into one file. Remix.js's client-server architecture simplifies the development process for creating React full-stack apps. Below is the complete client-server architecture of remix.js.

## Client-Server Architecture


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

## Prerequisite

You must install [Node.js](https://nodejs.org/) before you can install Remix.js. Verify that npm and Node.js are installed on your computer. If not, get Node.js. from the official website and install it.

Verify that Node is up to date on your machine. Run the below command in your terminal to verify, then compare the result with the most recent LTS version found at https://nodejs.org/

Would you like to read the rest of the post? Here it is [How To Install Remix.Js? A Step By Step Guide For Beginners](https://www.swhabitation.com/blogs/how-to-install-remixjs-a-step-by-step-guide-for-beginners) 

Don't forget to follow us on [Medium](https://medium.com/@swhabitation) for more engaging content covering web development and technology!
Kamal Deploy on GCP
Tags: kamal, gcp, devops
Published: 2024-02-17 04:48:56

---
title: Kamal Deploy on GCP
published: true
description: Notes of using kamal to deploy web app on GCP
tags: kamal, GCP, devOps
cover_image: https://images.unsplash.com/photo-1597945161640-9366e6d4253b
# Use a ratio of 100:42 for best results.
# published_at: 2024-02-16 08:07 +0000
---

Kamal (https://kamal-deploy.org/) serves as the Docker equivalent of Capistrano, presenting a familiar interface to those already acquainted with Capistrano.

In this article, I'll share insights gained from deploying a web application on Google Cloud Platform (GCP) using Kamal. Rather than offering a one-size-fits-all guide, I aim to provide a collection of useful snippets and references to facilitate your project's deployment.

## Utilizing GCP's Artifact Registry

The integration of Kamal with GCP's Artifact Registry is streamlined by an ongoing PR (https://github.com/basecamp/kamal-site/pull/35). For seamless operation, configure the following in your Kamal settings, ensuring to replace the placeholders with your specific project details and incorporating the service account's JSON key.

```yaml
image: <your gcp project id>/<artifact registry repo name>/<desired image name>
registry:
  server: <your registry region>-docker.pkg.dev
  username: _json_key_base64
  password:
    - KAMAL_REGISTRY_PASSWORD
```

## Secure SSH Access via IAP

To securely SSH into GCP's Compute Engine VMs, the use of Identity-Aware Proxy (IAP) is advocated. Before proceeding, verify your ability to SSH via IAP by following GCP's official guide (https://cloud.google.com/compute/docs/connect/ssh-using-iap).

In the Kamal configuration file, define your server host as shown below:

```yaml
servers:
  - "myhost.us-west1-a.my-gcp-project"
```

### Setting up Proxy Command

For a smooth SSH connection, download and implement this script (https://gist.github.com/hSATAC/d72bd174f8845d8b9995f8921fe13b39) as your proxy_command. This script, compatible with both macOS and Linux, facilitates usage across various environments including CI runners.

Locate the script within the project at `./.kamal/scripts/`:

```yaml
ssh:
  proxy_command: sh ./.kamal/scripts/gcp-start-iap-tunnel-ssh-proxy-magic.sh gce_instance=%h sshuser=root
```

### Enabling Root SSH Access

Though Kamal permits SSH access under any username, employing the root user simplifies processes, adhering to Kamal's default assumptions.

Enable root SSH access as per GCP's guidance (https://cloud.google.com/compute/docs/connect/root-ssh#gcloud), and in your SSH configuration (`~/.ssh/config`), include a reference to Google's Compute Engine private key:

```yaml
Host *.my-gcp-project
  IdentityFile ~/.ssh/google_compute_engine
```
What is Microsoft 365 Developer Program?
Tags: microsoft, microsoft365, powerplatform, powerapps
Published: 2024-02-17 04:22:42

Microsoft 365 Developer Program is a resource for developers who want to build solutions for organization on the Microsoft 365 platform. This program offers a Microsoft 365 E5 developer subscription to members who qualify. As a qualified program member, you can use the developer subscription to build solutions independent of your production environment. 

You can build such as:-

- Microsoft Teams apps, 

- Power Apps,

- Power Pages,

- Power BI,

- Power Automate,

- Copilot Studio/Power Virtual Agents,

- SharePoint solutions,

- Microsoft Graph, 

- SharePoint Framework, 

- Office Add-ins for Word, Excel, PowerPoint,

- Outlook, and more.

Note:- If you want to Join Our Power Platform Training Programs **click below link**👇👇

[Join Now
](https://wa.me/919216147026)
[How-To] 如何不用苦讀就能突破Python基礎語法的學習瓶頸？
Tags: beginners, programming, tutorial, python
Published: 2024-02-17 03:37:16

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

今天我想要為你介紹一種以玩樂高的方式來理解如何有效的學習 Python 程式設計。

這個觀念將會對一直卡關的你非常有用，因為絕大多數的初學者一跳進程式設計的領域時就是拿起書本一章一章的往後讀，像是：環境設定、變數、條件、迴圈、函式、物件⋯⋯等。但你沒有理解到的是這與老手們寫程式的順序是相反的！初學者們都是從 bottom-up 的方向，而老手們則是由 top-down 的方式來進行。

讓我以玩樂高的例子來解釋這是如何進行的。回想一下你在玩樂高時的過程，你先在心中有個最終成品的畫面，然後在腦中將其打散成更小的部位，接著從玩具箱裡找出所需的零件，一步步地將這些部位拼湊並組合起來，最終形成你心中的作品，對吧！？

有時候你只是隨意的翻找，直接挑選視野範圍內那些看似合適的零件。往往那些零件的原始設計根本不是用在你手頭上的這個部位，但這並不影響你，因為你正在充分發揮你的想像力，靈活組合，最後仍是能拼湊出接近你心中的那個成品。

對你來說，現階段無需模仿資深玩家，用一層一層的分類盒井井有條地將零件按種類分類以提高效率；這些都是隨著經驗累積，日後才需考慮的事情。

其實寫程式就像這整個玩樂高的過程。你只需掌握一些基本概念，像是變數是拿來儲存數值或資料、if/else 是在某些條件下做某些事、function 能重覆利用寫好的程式碼⋯⋯這樣就足夠了！什麼 list 丫、dict丫、set/tuple/lambda 之類的都不是重點，重點在於你腦中的建構順序應是從「成品」到「部位」到「零件」。

按照這樣的順序來學習寫程式，是不是感覺輕鬆多了？最重要的是你在這過程中，培養出來的是對問題的思考和解決能力，那是至關重要且無法取代的。至於語法細節等問題，是隨著時間的推移和經驗的累積，逐漸熟練並不斷提升！

覺得這個方法如何？可以在下方留言說說你的感想。如果還想看更多更即時的觀念教學，請追踪我的 Instagram: https://www.instagram.com/neil.skilltree/
[閒聊] 半成品的重要性
Tags: beginners, programming, tutorial, python
Published: 2024-02-17 03:33:12

當年我在研究所讀碩士班時，每個禮拜都要跟指導老師一對一的面談來討論我的論文。他是一位很嚴格（i.e.: 難搞）的老師，對我論文的走向意見很多，我的版本從 A -> B -> C -> D… 不知經過多少次修改之後，我發現老師改回了我最初的那個 A 版本。

那時約莫是六月初，我開始察覺到不對勁、也開始急了，因為別間實驗室的同學們早在四月就已交付印刷，但我竟連初版都還沒寫完。再者，我還有數不清的數據要跑模擬，畢業典禮前能否完成都還是未竟之天⋯。

因此我決定不再被老師牽著鼻子走，先把自己論文的「下一個階段的版本」給確立出來，然後找老師辯論（i.e.: 吵架）。漸漸的，老師開始順著我的思路前進，我才能開始著手修改模擬程式來跑所需的數據。

這個例子與我們寫程式時腦中的狀態很像，「老師」是我們那個聒噪不休的 thinking mind，天馬行空毫無章法的點子總是讓你不經意的偏離正軌。你不一定要有「最終成品」的定見，但如果你連「下一個版本」都沒有頭緒，那麼你一定會處於瞎忙的狀態好一陣子，甚至超過 deadline 卻沒有任何產出。
done
Published: 2024-02-17 03:01:35


i kind of solved the error i think, because some results are coming as i intend to and only few are those which are not intended, but i choose to do something else with this, i will make this program to remind me to make a github contribution for 5 days a week, let's see how i pull it off, we can say that i changed the problem from what was earlier but i think it is ok for now.
免费的中文成人色情网站
Published: 2024-02-17 02:52:15

免费的中文成人色情网站
[https://sexcn.me](https://sexcn.me)
为您提供免费的成人色情视频/黄色小说/色图AI美女写真/韩漫.
每日更新 
Addr:  130 East Beijing Road, Chaoyang District, Beijing, China, 100025
Email: sister18@sexcn.me
Tag: #色情视频, #成人小说, #黄色图片, #h漫画
REDEMPTION TO STOLEN CRYPTOCURRENCY/USDT/ETH/WITH-TECHNOCRATE RECOVERY
Tags: bitcoin, cryptocurrency, usdt, ethereum
Published: 2024-02-17 02:15:03

Telegram: @TECHONOCRATE_RECOVERY}   Email: Techno cratreco very@con tractor.net}

I am thrilled to share my experience with others and hope that they will read and share it as well. When you hear the word cryptocurrency these days, what comes to mind? For me, it's a SCAM. I learned the hard way, but at least I learned and will never fall victim to such a scam again in my life. I work as a secretary at a law firm here in New York, and I had never made a bad financial decision until recently when I came across a fake stock trading website. I have always had an interest in the stock market for quite some time, but I never had the opportunity to fully explore it myself, although I have some knowledge about how it works. In the stock market, you can trade various stocks and earn profits from each trade. Unfortunately, not everyone can be successful in this field, To succeed, you need guidance or you can invest with a company and let their experts handle the trades and earn profits on your behalf, which I did. So, I did some research and found an online company that claimed to primarily trade stocks and cryptocurrencies. I had a call with one of their experts who explained everything to me, and we continued our conversations on WhatsApp, where he introduced me to a few applications that would be used for trading. He asked me to wire a total of $612,000 into my Crypto.com wallet and send it to a wallet he claimed was the trading wallet. Weeks went by, and I could see my profits fluctuate, but he assured me there was no need to panic. However, when I wanted to make withdrawals, he told me that the market had crashed and I could only withdraw $22,200 out of the $612,000. He said they had reinvested the funds into a more profitable market. Seeing this, I knew this wasn’t a fight I could win by myself, I had to find an alternative solution to retrieve my money because it all seemed like a scam to me at that point, which it turned out to be. Technocrate Recovery, a reputable recovery company that my legal advisor introduced me to after I tried filing a case against the SCAM company, made it known to me that the details about the company were just a clone and that filling a case against them would yield no results. Well, Technocrate Recovery did an excellent job, as expected. The whole $612,000K was recovered. PSA: It is crucial to be cautious about who you trust with your funds out there. If you find yourself in a similar situation and need to recover your digital assets, I highly recommend contacting Technocrate Recovery. {wWw.techno crate recovery.site}
Como Salvar um PDF no Banco de Dados PostgreSQL usando Laravel
Tags: postgres, laravel, pdf
Published: 2024-02-17 01:46:26

Neste tutorial, vamos explorar como salvar arquivos PDF no banco de dados PostgreSQL utilizando o framework Laravel. Esta abordagem pode ser útil em casos em que você deseja armazenar os arquivos diretamente no banco de dados em vez de no sistema de arquivos.

**Passo 1: Configuração do Banco de Dados**
Primeiramente, assegure-se de que você configurou corretamente o banco de dados PostgreSQL no arquivo .env do seu projeto Laravel. Certifique-se de que as credenciais e detalhes de conexão estejam corretos.

**Passo 2: Migração do Banco de Dados**
Em seguida, crie uma migração para a tabela onde os PDFs serão armazenados. Por exemplo, crie uma migração usando o comando:
` php artisan make:migration create_uploads_table.`

```
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUploadsTable extends Migration
{
    public function up(): void
    {
        Schema::create('uploads', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('mime');
            $table->binary('data');
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('uploads');
    }
}
```

Em seguida, execute a migração usando o comando:
` php artisan migrate`.

**Passo 3: Implementação na Aplicação Laravel**
Agora, vamos implementar a lógica para salvar e recuperar os PDFs na sua aplicação Laravel. Suponhamos que você tenha um controlador chamado PdfController.

```
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Response;

class PdfController extends Controller
{
    public function store(Request $request)
    {
        $name = $request->file('pdf_file')->getClientOriginalName();
        $mime = $request->file('pdf_file')->getClientMimeType();
        $data = base64_encode(file_get_contents($request->file('pdf_file')));

        DB::table('uploads')->insert(['name' => $name, 'mime' => $mime, 'data' => $data]);

        return redirect('/')->with('success', 'PDF enviado com sucesso.');
    }

    public function show(int $id)
    {
        $pdf = DB::table('uploads')->find($id);

        if (!$pdf) {
            abort(404);
        }

        $content = base64_decode($pdf->data);

        $response = Response::make($content, 200);
        $response->header('Content-Type', 'application/pdf');

        return $response;
    }
}
```

**Passo 4: Rotas**
Não se esqueça de definir as rotas adequadas para os métodos do controlador. Por exemplo:

```
Route::post('/pdf/store', [PdfController::class, 'store']);
Route::get('/pdf/{id}', [PdfController::class, 'show']);
```
Com isso, você criou as funcionalidades necessárias para salvar e recuperar PDFs no banco de dados PostgreSQL usando o Laravel. Lembre-se sempre de considerar as melhores práticas de segurança e desempenho ao lidar com o armazenamento de arquivos em um banco de dados.
Level 4, Schmeltool (Coslpore3D Pt:15)
Tags: go, gamedev, learning
Published: 2024-02-17 01:30:00

## Intro
This is a series following [Cosplore3D](https://github.com/Chig-Beef/Cosplore3D), a raycaster game to learn 3D graphics. This project is part of 12 Months 12 Projects, a challenge I set myself. We've been doing a lot of level development recently so I though why not just create the last level?

## Using The Level Editor
After creating an image for Schmeltool walls, I put together what I though would be an alright level design.

![Schmeltool in the editor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sly96tnjpt0rzx6exkqo.png)

Since this is the last level I tried to add quite a few enemies, along with quite a bit of ammo to compensate. We're using the trash crawlers that we made previously as enemies.
Here's what it looks like in 3D

![Schmeltool in 3D](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i550vg8m0nbtuamtp4lm.png)

There's quite a big room at the bottom, this is where the player will fight the final boss, so I made sure there was plenty of room for that.

## Getting To Schmeltool
To get to Schmeltool from Enikoko, we need to create a new `Progressor` that will take us to that level. Here is the little bit of code we had to add this new `Progressor`.
```golang
case 22: // Progressor (Has Cosmium)
    code = 0
    progressors = append(progressors, Progressor{
        tileSize * (float64(col)),
        tileSize * (float64(row)),
        tileSize,
        tileSize,
        has_cosmium,
        "schmeltool",
    })
```
That little bit of extra code has made the chain of Ankaran, The Cosplrer, Enikoko, and Schmeltool complete.

## Playthrough
Obviously, for me the game isn't that hard. I know where every ammo item and enemy is, so nothing is a surprise. However, there are a few visual things I would like to fix.

## Next
We will be making a few visual additions to make the game play nicer and make more sense, such as seeing the items in your inventory. Little changes like this that I think are core to making the game seem playable (because although it is currently playable, it looks like a prototype).