teleren/devto huggingface dataset:
SaaS companies that have a great content marketing
Tags: saas, contentmarketing, saasmarketing
Published: 2022-06-22 12:03:53

For a B2B company, content marketing for SaaS can dip on the boring side too often, and quickly. The internet has a range of generic newsletters, similar whitepapers, and blog posts that fail to offer valuable advice or drive sales.If you are also struggling to modify your SaaS content marketing strategy to get some conversions, then you are not alone. Many SaaS providers and B2B companies struggle to create engaging and useful content.

**1. Moz**

- Moz has always aced its SaaS content marketing strategy, whether it is video content creation, blog posts, or social media content. The brand’s unique content marketing has improved its visibility and truly made Moz one of the best tools for SEO strategies.

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

**2. Kissmetrics**

- The reason why Kissmetrics was able to generate traffic and improve conversions on their product is that co-founder Neil Patel focused on the content strategy. A strategy that helps customers and their business models. Since the blog is so focused and dedicated to valuable topics, they have segmented its topics so that readers can easily find relevant content. For example, e-commerce, conversions, sales, etc.

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

**3. HubSpot**

- HubSpot is a powerful CRM product, which is focused on helping you succeed and grow. If you look at it, HubSpot is unbeatable. If you go on to Google Search right now and search ‘Marketing CRM’, then HubSpot would show up in top searches.

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

**What is HubSpot doing differently?**

They know their audience, which is why their content marketing for SaaS is amazing. They use dedicated insights to understand user needs, which also helps them figure out what customers want before users themselves know it.

**4. CoSchedule**

- CoSchedule provides a calendar and editorial tool to marketers and business owners. They have an innovative SaaS content marketing strategy. The website has many posts from guest bloggers and influencers. The company usually creates long-form blogs that are packed with videos, graphics, visuals and every other element that engages users.

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

> [**_UUKI_**](UUKI.live)
How To Write Tests With Cypress UI Commands | Cypress Tutorial | Part VII
Tags: javascript, beginners, tutorial, cypress
Published: 2022-06-22 11:49:51

In this video, learn how to write tests with Cypress UI commands and interact with the user interface. [Try LambdaTest now](https://accounts.lambdatest.com/register?utm_source=devto&utm_medium=organic&utm_campaign=jun21_sb&utm_term=sb&utm_content=tutorial_video)


Know more on LambdaTest Cypress Testing-: [https://www.lambdatest.com/cypress-testing](https://www.lambdatest.com/cypress-testing?utm_source=devto&utm_medium=organic&utm_campaign=jun21_sb&utm_term=sb&utm_content=tutorial_video)


This video is a part of our Cypress Testing Tutorial series. Cypress provides a number of commands that can be used to simulate a user's interaction with an application. In this video, Chris DeSilva (@desilvadev) explains how to write tests with Cypress UI commands, interacting with the user interface, and different ways of implementing these commands with examples of UI actions that you can take for clicking, typing, checking, etc.

This video will help answer the following questions -: 

🔹How do you write a test in Cypress?
🔹When to use the Cypress command option?
🔹How do you run Cypress commands?
🔹How do you run a test in Cypress?
#TestCulture 🦅 Episode 2 - What was the first prejudice you had about the testing world before joining the industry?
Tags: testing, agile, softwaretesting, devops
Published: 2022-06-22 11:49:17

At Agilitest, we questioned a few testers about the preconceptions they had about testing before working in this field. 💭 What did you think about testing before? What did you imagine? 🥶 And what's different, finally? 🤔

Some have mentioned the need for technical and development knowledge to automate tests... 😪 But in reality, with the right tools and the right team organization, it is accessible to functional profiles! 😎
Another prejudice was that tests were done by developers in an "anarchic" way, whereas testing is actually a proper discipline. 🤓

And you, What was the first prejudice you had about testing before? 🤔

Learn more about the topic: [4 software testing myths you should debunk.](https://www.agilitest.com/blog/software-testing-myths-you-should-debunk) [Thread on Twitter.](https://twitter.com/agilitest/status/1504472646347419657?s=20&t=bUwPiFIDkBONA50sOHXvUA)
How to use Assertion in Cypress? | Cypress Tutorial | Part VI
Tags: javascript, beginners, tutorial, cypress
Published: 2022-06-22 11:47:27

This video will demonstrate the most common Cypress assertions and explain what assertions are and how they work. [Try LambdaTest now](https://accounts.lambdatest.com/register?utm_source=devto&utm_medium=organic&utm_campaign=jun21_sb&utm_term=sb&utm_content=tutorial_video)


Know more on LambdaTest Cypress Testing-: [https://www.lambdatest.com/cypress-testing](https://www.lambdatest.com/cypress-testing?utm_source=devto&utm_medium=organic&utm_campaign=jun21_sb&utm_term=sb&utm_content=tutorial_video)


In automated testing, the assertion condition validates whether the program contains any bugs or not.  In this video, Chris DeSilva (@desilvadev) showcases practical code assertions on Cypress writing tests from libraries like chai covering how assertion can detect the errors in the program.


You will also learn 🎫 -: 

🔹What is assertion in Cypress?
🔹How do you use assertion in Cypress?
🔹What are Cypress commands?
Simple trick to use Array.includes() for conditionals
Tags: javascript, programming
Published: 2022-06-22 11:46:47

This is a quick post on a sweet little trick I learned.

## Conditionals

When writing a conditional you can sometimes write code like this to check for the value of a variable:

`myVariable === 'abc' || myVariable === 'cba' || myVariable === 'xyz'`

Totally nothing wrong with this. But this is a bit verbose, especially as the list gets longer. Also imagine this inside of a if statement or a ternary.

```
if (myVariable === 'abc' || myVariable === 'cba' || myVariable === 'xyz') return result

// OR

const value = myVariable === 'abc' || myVariable === 'cba' || myVariable === 'xyz' ? 'a' : 'b'
```

The code is not complicated but amongst other code this can get annoying pretty fast.

This is something I did a lot until recently, without giving it a second thought.

## .includes() a better way

A colleague of mine recently pointed out that you can use [Array.Prototype.includes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) to write the same conditionals in a much simpler way

eg.

```
['abc', 'cba', 'xyz'].includes(a)
```

Nice and short and totally readable!

## ES7

When I got this feedback I got a bit curious as I didn't recall ever using `.includes` before. I mean I do use Array.Prototype methods like .map, .reduce, .filter frequently after all.

After digging I found that this method is relatively new, introduced in ES7 ([ECMAScript 2016](https://en.wikipedia.org/wiki/ECMAScript#ES2016)).

This explains why I hadn't used it before - another reminder to check out the MDN docs more often!

## Takeaways

So there you have it. TL;DR Use `.includes()` for conditionals that need to check a variable in multiple ways, its much more readable!
How to Handle Non-Cypress Async Promises using ".then" command? | Cypress Tutorial | Part V
Tags: javascript, beginners, tutorial, cypress
Published: 2022-06-22 11:35:36

In this video tutorial, learn to handle Non Cypress Async Promises using “.then“ command. [Try LambdaTest now](https://accounts.lambdatest.com/register?utm_source=devto&utm_medium=organic&utm_campaign=jun21_sb&utm_term=sb&utm_content=tutorial_video)


Know more on LambdaTest Cypress Testing-: [https://www.lambdatest.com/cypress-testing](https://www.lambdatest.com/cypress-testing?utm_source=devto&utm_medium=organic&utm_campaign=jun21_sb&utm_term=sb&utm_content=tutorial_video)


This video is a part of our Cypress Testing Tutorial series.  In this video, Chris DeSilva (@desilvadev) explains how to manage Non-Cypress Async Promises. Also, you will get to know when to use the “.then” method in Cypress, which is built-in Cypress to explicitly handle Non Cypress Promises.  

By the end of this video, you will learn 🎫 -: 
🔹 What are Non-Cypress Async Promises?
🔹 How to handle Non-Cypress Async Promises using the .then() command?
🔹 When to use the .then command in Non-Cypress Promises
🔹 How to test Non Cypress Asynchronous Promises?
La compu de Cechix
Tags: testing
Published: 2022-06-22 11:12:01

▒█░░░ █▀▀█ 　 █▀▀ █▀▀█ █▀▄▀█ █▀▀█ █░░█ 
▒█░░░ █▄▄█ 　 █░░ █░░█ █░▀░█ █░░█ █░░█ 
▒█▄▄█ ▀░░▀ 　 ▀▀▀ ▀▀▀▀ ▀░░░▀ █▀▀▀ ░▀▀▀ 

█▀▀▄ █▀▀ 　 ▒█▀▀█ █▀▀ █▀▀ █░░█ ░▀░ █░█ 
█░░█ █▀▀ 　 ▒█░░░ █▀▀ █░░ █▀▀█ ▀█▀ ▄▀▄ 
▀▀▀░ ▀▀▀ 　 ▒█▄▄█ ▀▀▀ ▀▀▀ ▀░░▀ ▀▀▀ ▀░▀
Please remove that .git folder
Tags: git, security, cybersecurity, python
Published: 2022-06-22 11:08:59

Have you ever tried to browse http://yoursite.com/.git/?

If you get a 403 error, that's normal. It means directory browsing is disabled, which is basic security. However, many files in the `.git/` folder could be accessible, putting you at risk.

## `.git/` folder leakage: easy exploit

_N.B.: use the tool below at your own risks_

{% github https://github.com/WangYihang/GitHacker %}

Anyone can use automated scripts such as the above repository to download your source code and view the entire git history. Git is also a filesystem that follows some conventions, so you can guess directories and files easily.

Most projects use `master` or `main` as master branch, so it's easy to guess "hidden" paths in the ` /.git/` folder. Note that the tool can even brute force branches and tags if that's necessary.

If the scan succeeds, you get a `result` folder on your local machine (you can customize the folder name with the `--output-dir` option).

A typical result is the equivalent of `git checkout master` for free!

## Don't deploy the `.git/` folder or, at least, forbid access

The `.git/` folder can contain lots of information, including the source code itself but also names, mails, and, in the worst-case scenario, hard coded **credentials** (e.g. databases, tokens, keys). 

For a hacker, it's like Christmas!

You should completely disable public access to such folder. Modern CI/CD and deployment solutions are relatively easy to configure and allow cleaning such directories that have nothing to do with the production environment.

Note that some web hosting providers disable access to the folder for security purpose, but it's not always the case and it's not the default configuration, so check it before deploying anything.

I recommend doing all hardenings available. While it might seem a bit overkill, it's often a good idea to take into account any misconfiguration that could occur in the future or a miscalculated migration, so:

1. Disable public access in the `.git/` folder by default on your server
2. Add a rule to forbid access to the folder in your source code, for example, in the `.htaccess` file for Apache configurations
3. Don't even deploy such folder in public directories if that's possible

If you don't want to touch sensitive files such as the `.htaccess`, you can add a smaller `.htaccess` at the root of the `.git/` folder on your server with just the following line inside:

``` 
Deny from all
```

However, it's even better to return a 404 for the `.git/` folder in your server config or main `.htaccess`, so hackers won't be able to guess anything:

``` 
RedirectMatch 404 /\.git
```

Again, I recommend adding both rules if you can, as two layers of security. In case someone modifies the main `.htaccess` and delete the rule accidentally, there's still a fallback in the `.git/` folder.

When migrating from one server to another, misconfigurations and oversights do happen.
How to show reading time in Ghost blog posts
Tags: webdev, tutorial
Published: 2022-06-22 11:04:24

As we all know by know, the attention span of an average visitor browsing your website is very short. They often just skim through the contents of the homepage and move. A good tactic for increasing the time the visitor spends on your website is to give them an accurate estimate of how much time they need to spend on a particular post.

By providing them with a reading time estimate, the visitor won't get bored of the post content as he/she knows what to expect. Let's see how to do this in Ghost!

## The Ghost way

The easiest way to add post reading time in Ghost is by using Ghost's native reading_time helper in your theme. This helper simply counts all the words in a post and assumes a reading speed of 275 words/minute. You can use the reading_time helper both in the single post context and in a posts loop.

To use it in a single post, go to the post.hbs file in your Ghost theme and somewhere within the #post context add the helper:

```
{{#post}}
  ...
  <span class="reading-time-class">{{reading_time}}</span>
  ...
{{/post}}
```

If you want to show a reading time for every post in your post list, you can add it in a foreach loop in which you list your posts. For example:

```
{{#foreach posts}}
  <h1>{{title}}</h1>
  <p>{{excerpt}}</h1>
  <span>{{reading_time}}</span>
{{/foreach}}
```

## Customizing the values

The reading_time helper also accepts two optional arguments which enable you to customize how it outputs the values for the reading time of 1 minute and multiple minutes. The optional arguments are:

* minute - the text shown for the reading time of 1 minute
* minutes - the text show for the reading time of more than 1 minute
Let's see and example of the helper with arguments:

```
{{reading_time minute="1 minute" minutes="% minutes" }}
```

As you can see, in the case of multiple minutes, you can get the value of minutes by using the % character in the argument.

Give this helper a try if you are not using it already, as it may just help you decrease your website bounce rates. You can see it in action in the [Memo](https://bloomthemes.com/memo/) theme demo.
My hometown homepage project with html & css
Tags: programming, html, javascript, css
Published: 2022-06-22 10:55:53

**1. The project**
The website is an introductory page for the city, divided into three parts: the introduction, the activities that the tourist can carry out, and finally the guide card

[See page in web](https://mariamaitbella.github.io/hometown/)

**2. Technologies, languages & tools**

- languages
HTML, CSS

- tools
VSCode, Figma Design

**3. What I have learned?**

- Html: utility of each tag like div, h1.., img tag and how we can give it a class property or id and refer to it in css.

- Css: giving a specific design to a class/id or many , flexbox and its properties and its multiple uses, also I used some properties that css provides for example for the image background and i learned how to work with them and to do something nice with them.

- Figma: the ability to extract information about typography, redlines, colors, measurement and more from designed interfaces.

**4. Link to the source code on github**

[source code](https://github.com/mariamaitbella/hometown)

**5. A scrim record of a part of coding process**

_For better experience, please minimize the screen and increase the speed of the scrim in the corner right below!_
[Coding Scrim](https://scrimba.com/scrim/co17a4a0da17d29c3fc6e241d)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w25e8au4hwghg3ga3g73.png)
Split a List into Sublists of Size N in C#
Published: 2022-06-22 10:45:59

How do you write a code in C# to split the list `[a, b, c, d, e, f, g, h]` into sublists `[a, b, c], [d, e, f], [g, h]` each with three elements and the last with less than three? The most popular answer is the following LINQ.

```csharp
List<List<T>> Split<T>(this IList<T> source, int length)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / length)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}
```

In StackOverflow, this LINQ got more than 900 upvotes as of the answer to two questions ([Split a List into smaller lists of N size [duplicate]](https://stackoverflow.com/questions/11463734/split-a-list-into-smaller-lists-of-n-size), [Split List into Sublists with LINQ](https://stackoverflow.com/questions/419019/split-list-into-sublists-with-linq)).

However, this method has the worst performance in any assumed answers. It creates the same number of objects with Index and Value as the length of the source. Object creation is a costly operation in terms of both memory and speed. Although the cost is much smaller, the exact count of divisions and comparisons as the length of the source is also not good for performance.

If you need performance, you should not use LINQ in the first place, but if you insist on a concise LINQ, how about the following solution.

```csharp
List<List<T>> Split<T>(this IList<T> source, int length)
{
    return Enumerable
        .Range(0, (source.Count + length - 1) / length)
        .Select(n => source.Skip(n * length).Take(length).ToList())
        .ToList();
}
```

The following are the benchmark results taken from BenchmarkDotNet, which splits a 1000-length array of ints into three pieces each. The first answer is Splitter1, and the above is Splitter2. Mean is the average, and the rests are measurement errors. The results show Splitter2 was more than 3.5 times faster than Splitter1.

```ini
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1766 (21H2)
AMD Ryzen 7 3800X, 1 CPU, 16 logical and 8 physical cores
.NET SDK=6.0.106
  [Host]  : .NET 6.0.6 (6.0.622.26707), X64 RyuJIT
  LongRun : .NET 6.0.6 (6.0.622.26707), X64 RyuJIT

Job=LongRun  IterationCount=100  LaunchCount=3  
WarmupCount=15  
```
|  Method |	Mean |	Error |	StdDev |
|---------|---------:|-------:|--------:|
|Splitter1|	89.94 μs|	0.351 μs|	1.779 μs|
|Splitter2|	24.04 μs|	0.100 μs|	0.517 μs|

If the target framework of your projects is .NET 6 or later, you should use the Chunk method for this operation, which is introduced in .NET 6. The benchmark results, including the Chunk method, are shown below. It was more than 4,000 times faster than Splitter2.


|    Method |          Mean |       Error |        StdDev |
|---------- |--------------:|------------:|--------------:|
| Splitter1 | 88,650.102 ns | 245.2557 ns | 1,251.8625 ns | 
| Splitter2 | 23,481.503 ns | 117.8934 ns |   600.6975 ns | 
|     Chunk |      5.609 ns |   0.0198 ns |     0.0984 ns |
Migrate API Portal 10.7 to Developer Portal 10.11
Tags: webmethods, apimanagement, develperportal
Published: 2022-07-18 10:00:35

---
title: Migrate API Portal 10.7 to Developer Portal 10.11
published: true
date: 2022-06-22 10:35:27 UTC
tags: webMethods, APIManagement, DevelperPortal
canonical_url: https://tech.forums.softwareag.com/t/migrate-api-portal-10-7-to-developer-portal-10-11/258499
---

 

## Migrate API Portal 10.7 to Developer Portal 10.11

## Introduction

In 10.11 release, we have introduced a new product called Developer Portal, which will be the replacement for API Portal. This article will help you migrate your assets from API Portal 10.7 to Developer Portal 10.11.

## Assets that can be migrated

The assets which are listed below can be migrated from API Portal 10.7 to Developer Portal 10.11,

- APIs (REST, SOAP, ODATA, HYBRID).
- Packages.
- Applications.
- Providers.
- Communities and teams.
- Users and groups.
- UMC configurations (LDAP, SMTP, Policies, MFA).
- Transactions events and transactional logs for APIs (analytics).
- API followers and ratings (collaboration).

## Limitations

The following limitations are applicable.

- You cannot migrate UI themes, or collaboration data such as topics and comments.
- If you have any private communities that include users with the API consumer role as the  
Community administrator, these users will not have Community administrator rights after  
the migration.
- Client SDK download support is not available. (As of Jun 2022)

## Pre-requisite

The following pre-requisites should be taken care before proceeding with the migration.

- Install the latest product fix on top of API Portal.
- If any user registrations are waiting to be approved, complete the approvals in API Portal.

## Steps to follow
Check out the steps to follow in the [original post](https://tech.forums.softwareag.com/t/migrate-api-portal-10-7-to-developer-portal-10-11/258499) in the Software AG Tech Community
Mise À Jour En Masse Avec Spring Data MongoDB Reactive
Tags: java, mongodb, springboot, eip
Published: 2022-06-22 10:24:07

---
title: Mise À Jour En Masse Avec Spring Data MongoDB Reactive
published: true
description: In this blog, you will learn how to efficiently enrich and update a large amount of data with Spring Data MongoDB Reactive.
tags: Java, MongoDB, SpringBoot, Eip
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1zp1a3pew1aa7t6gu79u.png
---

Dans ce blog, vous apprendrez comment enrichir et mettre à jour efficacement une grande quantité de données avec Spring Data MongoDB Reactive.

[https://www.maoudia.com/fr/blog/mise-a-jour-en-masse-avec-spring-data-mongodb-reactive](https://www.maoudia.com/fr/blog/mise-a-jour-en-masse-avec-spring-data-mongodb-reactive/)

 #eip #java #mongodb #springboot #springdata #springwebflux #reactiveprogramming #junit5 #testcontainers #dockercompose #visualvm
Bulk Update With Spring Data MongoDB Reactive
Tags: java, mongodb, springboot, eip
Published: 2022-06-22 10:17:29

---
title: Bulk Update With Spring Data MongoDB Reactive
published: true
description: In this blog, you will learn how to efficiently enrich and update a large amount of data with Spring Data MongoDB Reactive.
tags: Java, MongoDB, SpringBoot, Eip
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bq3fn6ytde4l71r3aecw.png
---

In this blog, you will learn how to efficiently enrich and update a large amount of data with Spring Data MongoDB Reactive.

[https://www.maoudia.com/blog/bulk-update-with-spring-data-mongodb-reactive](https://www.maoudia.com/blog/bulk-update-with-spring-data-mongodb-reactive/)

 #eip #java #mongodb #springboot #springdata #springwebflux #reactiveprogramming #junit5 #testcontainers #dockercompose #visualvm
Spring Boot Interview Questions
Tags: java, beginners, programming, career
Published: 2022-06-22 10:08:28

Questions and answers to common interview questions related to Spring Boot.

- What does the SpringBootApplication annotation do?
- What is the application.properties file used for?
- How can you access a value defined in the properties file?
- How can you change the default port number?
- What is Spring DevTools used for?
- What are the Spring Boot Starters?
- What is Spring Boot Actuator?
- What embedded containers does Spring Boot support?

{% youtube RbHZzZOMnHk %}

{% youtube B_hOjFSLeoo %}