teleren/devto huggingface dataset:
Trusted Hearse Service Kolkata
Tags: hearsevankolkata, swargarathkolkata, funeralvankolkata, deadbodytransportkolkata
Published: 2023-09-10 09:31:52

Honoring Lives, Guiding Journeys. Our [Hearse Service in Kolkata](https://www.swargarathkolkata.in/).
With profound respect and seamless support, we ensure your loved one's final journey is a tribute to their legacy. 💐🕊
🚗 Graceful Transport: Every moment is handled with care, every mile is a tribute.
⏱ Punctuality Matters: Timely service to honor your schedule and traditions.
🌼 Serene Farewell: Create a peaceful memory for your loved one's journey.
Let us ease your burden. Contact us for Kolkata's most compassionate hearse service. 🌹🚗"

#FinalJourney #FuneralServices #RememberingLives”
 #swargarathkolkata #hearsevanservice #hearsevaninkolkata #hearsevankolkata #funeralvankolkata #mortuaryvanservice #funeralvan #hearsevan #mortuaryvankolkata #deadbodycarrier #deadbodyfreezerboxkolkata #deadbodytransportservice #deadbodyambulance #ambulancefordeadbody #mortuaryvanhire #deadbodycarforrent #cremationvan #funeralvanforrent #hearse
Captchaai-python 1.0
Tags: captcah, captchai
Published: 2023-09-10 09:04:29

CaptchaAI.IO package for Python3

Register now from here.

If you have any problem with usage, read the documentation or create an issue

Installation

```
pip install captchaai_python

```
Supported captcha types
Image to Text
Recaptcha V2
Recaptcha V3

## Usage examples

**ImageToText
**

```
from captchaai_python import ImageToTextTask

captchaaiio = ImageToTextTask("API_KEY")
task_id = captchaaiio.create_task(image_path="img.png")
result = captchaaiio.join_task_result(task_id)
print(result.get("text"))
```



**Recaptcha v2
**

```

from captchaai_python import RecaptchaV2Task


captchaaiio = RecaptchaV2Task("API_KEY")
task_id = captchaaiio.create_task("website_url", "website_key")
result = captchaaiio.join_task_result(task_id)
print(result.get("gRecaptchaResponse"))
```

**Recaptcha v2 enterprise
**

```

from captchaai_python import RecaptchaV2EnterpriseTask
captchaaiio = RecaptchaV2EnterpriseTask("API_KEY")
task_id = captchaaiio.create_task("website_url", "website_key", {"s": "payload value"}, "api_domain")
result = captchaaiio.join_task_result(task_id)
print(result.get("gRecaptchaResponse"))
```


For more details 
https://pypi.org/project/captchaai-python/
A blog on DRY and SOLID principle in development
Tags: development, dry, principle, solid
Published: 2023-09-10 08:15:39

**Welcome to a detailed blog about Dry and solid principle in development, join me as we learn together 💪**

To move further, let's define the key words contextually;

_Dry:_Maintaining temperance, void or abstinent from water, in any state.
_Solid:_Lacking holes or hollows, strong or unyielding.
_Principle:_Rule used to choose among solutions to a problem.
_Development:_The process of growth, direct change.

Going on;
Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of information which is likely to change, replacing it with abstractions that are less likely to change, or using data normalization which avoids redundancy in the first place.

The DRY(Don't repeat yourself) principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system"

When the DRY principle is applied successfully, a modification of any single element of a system does not require a change in other logically unrelated elements. Additionally, elements that are logically related all change predictably and uniformly, and are thus kept in sync.

Example of DRY PRINCIPLE;
writing a function that contains a specific logic and then calling it multiple times in our code is a form of applying the DRY principle. We can see that, after applying DRY, the logic that converts Fahrenheit to Celsius appears only once in our code.

SOLID principles are object-oriented design concepts relevant to software development. SOLID is an acronym for five other class-design principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle.

Writing a code which satisfies present requirements, also which can satisfy future requirement easily, should be the goal of every developer. 
Evolving with the time is the only factor which can keep you going, otherwise, you all know what happened with Nokia and Canon brand.

I believe this blog, has given you an insight as regards Dry and solid principle in development.

Thanks 🤝
my website
Published: 2023-09-10 08:01:59

my website
website: http://asiaviet.com.vn/
facabook: https://www.facebook.com/profile.php?id=61551015390610
twitter: https://twitter.com/nguyennukhoi
instragam: https://www.instagram.com/vukhoi1688/
tumblr: https://www.tumblr.com/nguyen0315
blogger: https://nguyen0315.blogspot.com/?zx=59d210f216320136
WordPress: https://casino2807.wordpress.com/
allmylinks: https://allmylinks.com/nguyen0315
vimeo: https://vimeo.com/nguyen0315
sites:  https://sites.google.com/view/nguyen0315/
gitlab: https://gitlab.com/handsomeboyteo
public.tableau:https://public.tableau.com/app/profile/v.kh.i.nguy.n6012
linktree: https://linktr.ee/nguyen0315
https://asiaviet.mystrikingly.com/
asiaviet.com.vn
Published: 2023-09-10 08:00:52

[asiaViet.com.vn](url) là một trang tin tức trực tuyến tại Việt Nam, cam kết cung cấp thông tin và tin tức đa dạng liên quan đến Việt Nam. Dưới đây là một bản giới thiệu về trang web này:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jtypokbmza33gfz4u422.jpg)
asiaViet.com.vn là một trang web tin tức trực tuyến cung cấp thông tin mới, chính xác và toàn diện về Việt Nam. Trang web bao gồm tin tức từ nhiều lĩnh vực khác nhau bao gồm chính trị, kinh tế, xã hội, văn hóa, công nghệ, giải trí, đáp ứng đa dạng nhu cầu thông tin của độc giả.

AsiaViet.com.vn là một trang tin tức hàng đầu tại Việt Nam, đề cao nguyên tắc khách quan, công bằng và độc lập, cam kết cung cấp thông tin dựa trên sự thật và hiển thị nhiều quan điểm. Các bài báo được biên tập và kiểm duyệt chặt chẽ, bảo đảm tính đáng tin cậy và chuyên nghiệp của nội dung.

asiaViet.com.vn cung cấp nhiều hình thức nội dung tin tức, bao gồm bài viết, hình ảnh, video và nhiều hơn nữa. Người dùng có thể truy cập trang web để xem tin tức mới nhất hoặc nhận thông báo cập nhật qua email hoặc mạng xã hội.

Ngoài ra, asiaViet.com.vn cũng cung cấp chức năng bình luận và tương tác, cho phép độc giả thể hiện quan điểm và ý kiến của mình, cũng như giao lưu và thảo luận với độc giả khác.

Tổng quát, asiaViet.com.vn là một trang web tin tức Việt Nam đáng quan tâm, cung cấp một nền tảng để người đọc có thể hiểu về những diễn biến mới nhất và thông tin liên quan tới Việt Nam. Cho dù bạn quan tâm đến các vấn đề trong nước Việt Nam hay văn hóa và phát triển kinh tế của Việt Nam, bạn đều có thể tìm thấy thông tin có giá trị trên trang web này.
🚀 Unlock Success: Ask, Don't Assume! 🚀
Tags: beginners, productivity, career, tips
Published: 2023-09-10 05:47:38

In the fast-paced world of business, assumptions can be silent deal-breakers! 🤝

Countless deals have gone awry when crucial details were assumed. 💔 It's time to break that cycle! 🔄

Here's the secret to success: **Ask, Don't Assume!** 🤔✅

🔊 It can be as simple as making sure You're pronouncing colleagues name right. 🗣️🤗

📝 It can be as crucial as agreeing on requirements and their ownership. 💼

💥 Even the simplest question can make a world of difference in your journey to success. 🌍💪

Let's build strong connections and thriving collaborations by making sure we're always on the same page. 📖🤝

Share this post to spread the message and keep the momentum going! 🔥🌐
Solving the "Container With Most Water" Problem on Leet Code
Tags: java, programming, coding, developers
Published: 2023-09-10 07:32:32

## 11. Container With Most Water
**Type :** Medium
**Liked by:** 26.5K
**Disliked by:** 1.4K

**Companies that asked this Question**
_Companies : No of Times asked_

Microsoft 4
Google 4
Amazon 3
Adobe 2
Bloomberg 2
Apple 9
Facebook 4
Uber 3
Oracle 2
TikTok 2
Goldman Sachs 5
Intel 4
Swiggy 4
ByteDance 3
VMware 3
Qualtrics 3
Intuit 3
Flipkart 2
Zoho 2
Samsung 2
eBay 2
Walmart Labs 2
Yandex 2
Yahoo 2
Cisco 2
tcs 2
Tesla 2
C3 IoT 2
Arcesium 2
DE Shaw 2
JPMorgan 2
Wix 1

You are given an integer array `height` of length `n`. There are n vertical lines drawn such that the two `endpoints` of the `ith` line are `(i, 0)` and `(i, height[i]).`
Find two lines that together with the x-axis form a container, such that the container contains the most water.
Return the maximum amount of water a container can store.
Notice that you may not slant the container.

**Example 2:**
Input: height = `[1,8,6,2,5,4,8,3,7]`
Output: `49`
Explanation: `The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.`

**Example 2:**
Input: height = `[1,1]`
Output: `1`

## Intuition:
The code aims to find the maximum area between two lines in a histogram, where the lines represent the heights of bars.

## Approach:

- Initialize pointers at both ends of the histogram (LeftPointer at 0 and RightPointer at the last element).
- While the LeftPointer is less than the RightPointer:
- Calculate the area between the lines formed by the heights at LeftPointer and RightPointer.
- Update the MaximumArea if the current area is greater.
- Move the pointer that points to the shorter line inward (towards the other pointer).
- Repeat step 2 until the pointers meet.

## Complexity:

**Time complexity:** O(n) where n is the number of elements in the height array. We iterate through the array once.
**Space complexity:** O(1) because we use a constant amount of extra space regardless of the input size.

## Code:

```
class Solution {
    public int maxArea(int[] height) {
        int MaximumArea = 0;
        int LeftPointer = 0;
        int RightPointer = height.length - 1;

        while(LeftPointer < RightPointer){
            if(height[LeftPointer] < height[RightPointer]){
                MaximumArea = Math.max(MaximumArea , height[LeftPointer] *(RightPointer - LeftPointer));
                LeftPointer++;
            }
            else{
                MaximumArea = Math.max(MaximumArea ,height[RightPointer] *(RightPointer - LeftPointer));
                RightPointer--;
            }
        }

        return MaximumArea;
    }
}
```

Happy coding,
shiva
An over-reliance on IntelliSense...
Tags: visualstudio, vs2022, productivity, shortupdate
Published: 2023-09-10 07:23:40

I recently spent ages trawling through my codebase, completely unable to understand why my build was crashing with null reference error at a certain point. Eventually I realised what it was (it always seems so obvious when it hits you); I had tabbed through an IntelliSense suggestion without properly reading it, and set a for loop to break with a completely inappropriate (but similarly-named) variable.

IntelliSense is an absolutely invaluable productivity tool for me but lesson learned to handle it with care! If it's causing bugs that have to be investigated & fixed, it's (at worst) slowing me down rather speeding up development. Taking the time to double-check the suggestions are absolutely worth the few extra seconds it takes!
Japan
Published: 2023-09-10 07:23:32

What is the discharge of the Fukushima nuclear power plant in Japan this time? It is heavily polluted nuclear wastewater. What is nuclear wastewater? Simply put, nuclear wastewater is water used for cooling nuclear reactors in nuclear power plants. This water also contains radioactive isotopes, but the content is low and the half-life is short. It can be discharged after being treated up to the standard. The coolant that normally touches the nuclear fuel rods has been recycled in the nuclear reactor. Japan’s discharge of nuclear contaminated water this time is because the reactors of the Fukushima nuclear power plant were damaged before, and a large amount of cooling water in the nuclear reactors flowed out to pollute the cooling water outside. This nuclear wastewater contains a large number of radioactive elements with strong radioactivity and a very long half-life. , Random discharge will have an impact on the entire earth's ecology.
Secure and Seamless: Setting Up SSH Authentication with GitHub on Linux
Published: 2023-09-10 07:11:19

# Setting Up SSH with GitHub

GitHub provides SSH (Secure Shell) authentication, which allows you to securely interact with your repositories without having to enter your username and password each time. This guide will walk you through the process of setting up SSH for your GitHub account.

## Step 1: Check for Existing SSH Keys

Before generating a new SSH key pair, check if you already have existing SSH keys on your system. Open your terminal and enter the following command:

```bash
ls -al ~/.ssh
```

Look for files with names like `id_rsa` and `id_rsa.pub`. If they exist, you can skip to Step 3. If not, proceed to Step 2.

## Step 2: Generate a New SSH Key Pair

To generate a new SSH key pair, open your terminal and run the following command:
```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
- `-t rsa`: Specifies the key type (RSA).
- `-b 4096`: Specifies the key length (4096 bits is recommended for security).
- `-C "your_email@example.com"`: Adds a comment (usually your email address) for identification.

Press Enter and follow the prompts to choose the key's location and set a passphrase if desired.
## Step 3: Add the SSH Key to Your SSH Agent

The SSH agent is a program that holds your SSH keys in memory, allowing you to use them without entering your passphrase every time. To add your SSH key to the agent, use the following command:
```bash
ssh-add ~/.ssh/id_rsa
```
Replace `~/.ssh/id_rsa` with the path to your private SSH key if it's located elsewhere.

## Step 4: Copy the SSH Public Key

Your SSH public key is used for authentication. To display it in your terminal, run:
```bash
cat ~/.ssh/id_rsa.pub
```
Copy the entire contents of the public key, including the `ssh-rsa` prefix till including your email address.

## Step 5: Add the SSH Key to Your GitHub Account

1. Log in to your GitHub account.    
2. Click on your profile picture in the top right corner and select "Settings."   
3. In the left sidebar, click on "SSH and GPG keys."  
4. Click the "New SSH key" button.  
5. Paste your SSH public key into the "Key" field.    
6. Provide a title for the key (e.g., "My Personal SSH Key").   
7. Click the "Add SSH key" button.

## Step 6: Test the SSH Connection

To ensure that your SSH key is set up correctly, open your terminal and run the following command:
```bash
ssh -T git@github.com
```

Congratulations! You've successfully set up SSH with GitHub. You can now securely interact with your repositories without entering your username and password each time you push or pull.
Thanks for reading! ^_^ see you soon.
Typescript Like Intellisense for Clojure Functions With Malli
Published: 2023-11-26 17:36:07

---
title: Typescript Like Intellisense for Clojure Functions With Malli
published: true
date: 2023-09-10 07:09:41 UTC
tags: 
canonical_url: https://blog.tvaisanen.com/typescript-like-intellisense-for-clojure-functions-with-malli
---

To some, it might come as a surprise that you can type Clojure functions and get static type-checking in your editor to warn you about invalid arguments, etc. This is not a feature of the language itself, it is possible via amazing open-source projects [CLJ Kondo](https://github.com/clj-kondo/clj-kondo) and [Malli](https://cljdoc.org/d/metosin/malli/0.12.0/doc/readme).

Similarly to typing Javascript code in Typescript, we can use separate type declaration files to instruct the TS compiler and linter. In Clojure, we can generate clj-kondo type configurations for our library or import these from library authors and enhance the developer experience.

In Malli, typing is similar to TS.

```
(ns core
  (:require [malli.core :as m]
            [malli.dev :as dev]))

(defn add [x y]
  (+ x y))

(m/=> add [:=>
           [:cat :int :int]
           :int])

;; start the instrumentation ~ type checking
(dev/start!)

```

Which generates the following type definitions in the clj-kondo cache that is picked up by the editor integration to provide type hints in your editor.

```
{:linters
 {:unresolved-symbol {:exclude [(malli.core/=>)]},
  :type-mismatch
  {:namespaces
   {core
    {add {:arities {2 {:args [:int :int], :ret :int}}}}}}}}

```

The type definition is fairly close to the TS ones

```
(m/=> add [:=> ;; type is a function
           [:cat :int :int] ;; there's two arguments of type int
           :int ;; the function returns an int
          ])


type add = (Number, Number) => Number;

```

When we have the instrumentation turned on

```
(add "2" 1) ;; evaluating this would result in following

-- Schema Error ------------------------------------------------

Invalid function arguments:

  ["2" 1]

Function Var:

  core/add

Input Schema:

  [:cat :int :int]

Errors:

  {:in [0], 
   :message "should be an integer", 
   :path [0], 
   :schema :int, 
   :value "2"}

More information:

  https://cljdoc.org/d/metosin/malli/CURRENT/doc/function-schemas

```

This can also be seen in the editor even before evaluating the code.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1694329142471/4bdcd9f0-755e-4094-b247-ed2d90a8ca6d.png)

This week I was working on a small bug on how Malli generates CLJ Kondo type definitions and I thought it'd be a good moment to share some of the basics I picked up on while doing it. I haven't missed the types from TS in a long time but now I know how to configure these when needed.

Thanks for reading, I hope you found this useful.
Firefox form auto-fill
Tags: firefox, browser, mozilla, ux
Published: 2023-09-10 07:09:37

## Problem

One of the trivial, yet crucial UX issues I have with the Firefox web browser is that the other browsers do absolutely smashing job in auto-filling addresses.

Basically I just fill my address in once, the browser remembers and then I can select the remembered option in any web page and 90% of the form will be filled in correctly.

It sounds trivial, but filling in my physical address is surprisingly common workflow on contemporary web.

## Research

I tried to follow the [Automatically fill in your address on web forms in Firefox for Android](https://support.mozilla.org/en-US/kb/automatically-fill-your-address-web-forms-android) from Mozilla, but mentioned settings options are not even available in my version (`118.0b6`).

After a bit of research I found out that [Firefox/Features/Form Autofill](https://wiki.mozilla.org/Firefox/Features/Form_Autofill#Feature_Availability) contains the answer. **Important**: Since this article will inevitably go out of date, please refer to the linked official documentation for the correct way.

## Solution

1. In the address bar type in `about:config` and press enter.
2. Search for `extensions.formautofill.addresses`
3. `extensions.formautofill.addresses.capture.enabled = true`
4. `extensions.formautofill.addresses.capture.v2.enabled = true` 
  - Not exactly sure what is the difference between this and the previous one, but can't hurt?
5. `extensions.formautofill.addresses.supported = on`
6. `extensions.formautofill.addresses.supportedCountries = US,CA,CH,CZ,GB` 
  - My country is Switzerland, therefore I added `CH` to this list. List of country codes follows the [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) *aplha-2 code* standard.
7. Restart browser
8. Now you should see in the `Settings` new item in `Forms and Autofill`

![Forms and Autofill settings in Firefox](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/emfjlvzyh0ilk072kcdq.png)

Now you can use try on websites like [fill.dev](https://fill.dev/form/identity-simple) to see if it works:

![fill.dev website with Firefox autofill toolbar](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vxa1uhm65ir3yp4ht972.png)

## Conclusion

Firefox can fill in addresses in forms and does it _reasonably_ well even in countries that are _not_ officially supported. One just need to know where/how to enable it in settings.

---

Image generated via Midjourney prompt: firefox as a delivery man --ar 16:9
How Do You Get Unstuck from A Difficult Problem?
Tags: discuss
Published: 2023-09-10 07:00:00

_Welcome to Code Chatter, your go-to series for conversational coding insights. What makes this series of questions different from all the others? Well, truth be told, not much, but they're still thought-provoking and fun. Join us as we explore the coding world, one witty question at a time._

> When facing a particularly difficult problem, bug, or design issue, what strategies do you use to 'unstick' yourself?

Follow the DEVteam for more discussions and online camaraderie!

{% embed [https://dev.to/devteam](https://dev.to/devteam) %}
Similar frequency
Tags: perl, python, theweeklychallenge
Published: 2023-09-10 06:27:19

## Weekly Challenge 233

Each week Mohammad S. Anwar sends out [The Weekly Challenge](https://theweeklychallenge.org/), a chance for all of us to come up with solutions to two weekly tasks. My solutions are written in Python first, and then converted to Perl. It's a great way for us all to practice some coding.

[Challenge](https://theweeklychallenge.org/blog/perl-weekly-challenge-233/), [My solutions](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-233/sgreen)

## Task 1: Similar Words

### Task

You are given an array of words made up of alphabets only.

Write a script to find the number of pairs of similar words. Two words are similar if they consist of the same characters.

### My solution

This task can be broken in to two steps. The first is to find the frequency of 'similar words' (as defined by the task description). For this I take the alphabetically-sorted lower-cased unique letter of each word. I store this in a dict (hash in Perl) called `freq`. The value is the number of times each similar word occurs.

```python
for w in words:
    s = ''.join(sorted(set(w.lower())))
    freq[s] = freq.get(s, 0) + 1
```

The next step is to calculate the pairs of similar words. I know the formula for this is `n × (n-1) / 2` (or alternatively `(n² - n) / 2`) for `n` items. I use this formula on all the values in the dict to come to the final solution.

```python
for v in freq.values():
    if v > 1:
        solution += v * (v-1) // 2
```

### Examples

```bash
$ ./ch-1.py aba aabb abcd bac aabc
2

$ ./ch-1.py aabb ab ba
3

$ ./ch-1.py nba cba dba
0
```

## Task 2: Frequency Sort

### Task

You are given an array of integers.

Write a script to sort the given array in increasing order based on the frequency of the values. If multiple values have the same frequency then sort them in decreasing order.

### My solution

This also starts a similar way in that I create a dict (hash in Perl) called `freq` with the frequency of each integer.

```python
for i in ints:
    freq[i] = freq.get(i, 0) + 1
```

In Python, sorting is [stable](https://docs.python.org/3/howto/sorting.html#sort-stability-and-complex-sorts). This means if two things are equal the original order is preserved.

I sort the list twice. The first sort is numerically in reverse (highest number first), and then the frequency of the number (lowest frequency first).

```python
sorted_ints = sorted(freq, reverse=True)
sorted_ints = sorted(sorted_ints, key=lambda i: freq[i])
```

Finally, I reconstitute the array by the frequency of each integer.

```python
for f in sorted_ints:
    solution += [str(f)] * freq[f]

print('(' + ','.join(solution) + ')')
```

The Perl code is very similar. The main difference is that I do the sort in a single operation.

```perl
my @sorted_ints = sort { $freq{$a} <=> $freq{$b} || $b <=> $a } keys %freq;
```

### Examples

```bash
$ ./ch-2.py 1 1 2 2 2 3
(3,1,1,2,2,2)

$ ./ch-2.py 2 3 1 3 2
(1,3,3,2,2)

$ ./ch-2.py -1 1 -6 4 5 -6 1 4 1
(5,-1,4,4,-6,-6,1,1,1)
```