teleren/devto huggingface dataset:
BRIEF HISTORY AND RESEARCH ON HTTP
Published: 2022-10-20 19:50:37

The full name of the standard application-level protocol used for file exchange on the World Wide Web is HTTP, or HyperText Transfer Protocol. The TCP/IP protocol and, later, the QUIC protocol are built on top of HTTP. Web servers respond to file requests via an HTTP service after being sent by web browsers, which are HTTP clients. 
Tim Berners-Lee, one of the coauthors of the 1.0 definition, first suggested HTTP in 1989. Every every request from a client established a new connection with the server under HTTP/1.0 (sent in 1996), which did not handle all requests similarly through a single connection between a particular client and server. Persistent connections, client browser-based HTML file decompression, and numerous domain names using the same IP address are all features of HTTP/1.1, which was introduced in 1997.
HTTP is an extensible protocol which has evolved over time. It is an application layer protocol that is sent over TCP, or over a TLS-encrypted TCP connection, though any reliable transport protocol could theoretically be used. Due to its extensibility, it is used to not only fetch hypertext documents, but also images and videos or to post content to servers, like with HTML form results. HTTP can also be used to fetch parts of documents to update Web pages on demand.
HTTP is a client-server protocol, and the user-agent is the only thing that sends requests (or a proxy on behalf of it). The user-agent is often a web browser, although it can be anything, such as a robot that crawls the internet to build and maintain search engine indices.

A server receives each individual request, processes it, and then returns the response. Numerous entities, generally known as proxies, perform various tasks and function as gateways or caches between the client and the server.
HTTP is a client-server protocol, meaning requests are made by the recipient, which is often the Web browser, and it serves as the basis for all data communication on the Internet. The various sub-documents that are retrieved, such as text, layout descriptions, photos, videos, scripts, and more, are combined to form a complete document.
Stellar Quests Level 1: Change Trust
Tags: xlm, stellar, blockchain, tutorial
Published: 2022-10-20 19:42:42

## What are Trustlines?

A trustline, on the Stellar blockchain, is an one way agreement between two accounts. The source account that's making the agreement decides to trust another account. The trust is based on a custom asset (ex. "$ROCK") where Account-A decides that they would like to hold/sell/trade the custom asset issued by Account-B because they believe it to be of value. **NOTE:** Custom assets are never actually created- they only exist in the form of trust on other accounts; I'll cover this concept more in depth in a future blog post. 

## How are Trustlines created?

Trustlines are created by building a transaction of operation type "Change Trust". This operation asks for three inputs: asset, trust limit, and source account. The *Asset* is the custom asset one decides to trust; this field requires the asset code (ex. ROCK) and the issuer account id (public key of the account that issued the custom asset). The *Trust Limit* is a number that represents the max amount of units, of a custom asset, that you're willing to trust; if set to 1,000, then the account creating the trustline will only be able to hold 1,000 units of the custom asset. The *Source Account* is the public key of the account that'll be creating the trustline; this input is optional because if the trustline won't be created by the account which has built the transaction, then the public key entered here will refer to the account that will create the trustline. **NOTE:** All transactions **MUST** be signed off by all source accounts mentioned; in this case, the account which built the transaction and the account which is actually creating 
the trustline.

> I plan on writing corresponding blog posts with relevant code examples. For now, I'm simply learning the basics of the Stellar blockchain and utilizing the Stellar Laboratory in order to interact with the test net. If you wish to learn about the Stellar blockchain, and earn while doing it, then please visit: https://quest.stellar.org/
Redis Timeseries
Tags: redis, timeseries, cache, systemdesign
Published: 2022-10-20 19:00:04

Redis is an amazing tool to cache data. It supports different data types to help us cache different kinds of data.

Following are the the data types supported as of Redis 7.0

1. Strings
2. Hashes
3. Lists
4. Sets
5. **Sorted Sets**
6. **Timeseries**

In this article, we shall focus mainly on caching timeseries data in redis.

We can cache timeseries data in the following ways:

**1. Using the Redis-Timeseries extention**
   
- Save data using `ADD KEY Timestamp Record`
  where, Key is the name of the timeseries.
  Timestamp is the field used for sorting the elements.
  Record is the field representing the value at the given timestamp.

- Fetch records using `range` command. `RANGE KEY FROM_TS TO_TS` where from_ts and to_ts represent the upper bound and lower bound of the timestamp in the search space.

> **NOTE: the record field is of type decimal. It supports only numbers.**

- Therefore, it is very helpful for saving single value records and not lists or maps.

- Example: stock values, moisture in soil etc.

- However it is not possible to save lists or tuples.

- In that case, we can make use of Sorted Sets.
____________________________________________________________

**2. Sorted Sets**

- `ZADD KEY Timestamp RECORD`.

- Here, zadd is used to save data in sorted sets. Key is the series name. Timestamp is the field used for sorting. Record can be of type string. Hence we can save json strings in the record field.

- To fetch data from sorted sets, use command `ZRANGE FROM_TS TO_TS BYSCORE=TRUE`.

- Use `by_score` to get data based on timestamp and not index.

____________________________________________________________

### Docker Image For Redis Timeseries

`docker pull redislabs/redistimeseries`

Link: https://hub.docker.com/r/redislabs/redistimeseries
____________________________________________________________

Thank you for reading the blog. Please suggest improvements and like the blog.

Aniketh Deshpande
Guide to Using Any Programming Language in GitHub Actions
Published: 2022-10-20 18:49:59

> Cover: Captured from flutter CI/CD Template (not published 
> yet)

Many times we need to process some data before using it in our Github workflows, but we don't find the appropriate action.
For that, I did some research on how we can use any programming language to process our data easily & use it on Github workflow
I found this example on [Github Doc](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter) :
{% embed https://gist.github.com/M97Chahboun/2ce6d317ef25f46e8b55b6ebb98280df.js %}
As you see we can save some output on GITHUB_OUTPUT & use it later in
GITHUB_OUTPUT. It's the path of a temporary file generated by the runner.
Now we will use some programming language (Dart for an example) to process some data & use it on our Github workflow
We will use an example for Bump Flutter app version using this [Fastlane plugin](https://rubygems.org/gems/fastlane-plugin-flutter_bump_version) based on PR's labels
Now this is the dart script :
{% embed https://gist.github.com/M97Chahboun/e69e46096549f8bc8da558dd9796ed3f.js %}
We process input data by removing all labels except major, minor & patch, and split it by (,)
Then in line 16 we get environment variables & select GITHUB_OUTPUT in line 17 to get the path of the temporary file generated by the runner
After it, we open the file by Dart & write our output ({name}={value}) that we need in Github workflow
Now we will create our Github workflow & use the Dart script onto it
{% embed https://gist.github.com/M97Chahboun/6a70ea30984e746e05b069a9be3c0c91.js %}
First, we need to use a setup for Dart lang action (line 18) (or any language used).
Then on line 21 we run the Dart script and pass PR labels as args & this script will return just the labels we need for the bump version (patch,minor, major) & in line 37 we use (env.parts) as the output of the script to use it as an input for the bump version by [Fastlane plugin](https://rubygems.org/gems/fastlane-plugin-flutter_bump_version)
Now when merging PR. The workflow will get labels & remove unused labels by Dart script & pass the output to [Fastlane plugin](https://rubygems.org/gems/fastlane-plugin-flutter_bump_version) to bump the version & push a new commit
You can use these steps on any programming language
How to Configure the Touch Bar in Visual Studio Code in Under 5 Minutes
Tags: vscode, javascript, productivity
Published: 2022-10-20 18:34:47


The touch bar on the MacBook has the potential to provide **quick access to commonly used commands** in Visual Studio Code.

In the default configuration, the 'go forward' and 'go back' buttons are very useful. However, other default touch bar actions are less valuable and take up space. You might also find that everyday operations such as 'rename' (`F2`) or 'go to definition' (`F12`) are harder to access because you need to hold down `Fn`. 

This post will show you how to **configure Visual Studio Code to make the most of the touch bar**.

## Nasc Touchbar extension
The **[Nasc Touchbar extension](https://marketplace.visualstudio.com/items?itemName=felipe.nasc-touchbar&ssr=false)** enables you to easily add many additional actions to the touch bar, for example, `Run command`, `Toggle side bar`, and `Rename`. 

You can configure which buttons are displayed in the Visual Studio Code settings (`Preferences > Open Settings (UI)`, search for `touch`).

## JavaScript Assistant extension
I have included touch bar buttons that are helpful for JavaScript and TypeScript users in the [JavaScript Assistant extension](https://marketplace.visualstudio.com/items?itemName=p42ai.refactor&ssr=false). The extension adds the following actions to the touch bar:

* ✏️ Rename: Triggers the rename command on the current symbol.
* 🪄 Quick-Fix: Opens the quick-fix context menu.
* 🔧 Refactor: Opens the refactor context menu.
* 📄 Source Action: Opens the source action context menu.

The actions are only available when you edit JavaScript or TypeScript files. Similar to the Nasc Touchbar extension, you can configure which buttons are displayed in the Visual Studio Code settings (`Preferences > Open Settings (UI)`).

## Disabling default debug touch bar actions
The default touch bar buttons take precedence over the controls added by the Nasc Touchbar and JavaScript Assistant extensions. In particular, the debug actions can take up a lot of space and hide other buttons.
You can disable them by adding the following to your `settings.json` file:
```json
"keyboard.touchbar.ignored": [
  "workbench.action.debug.start",
  "workbench.action.debug.run",
  "workbench.action.debug.pause",
  "workbench.action.debug.stepOut",
  "workbench.action.debug.stepInto",
  "workbench.action.debug.stepOver",
  "workbench.action.debug.stop",
  "workbench.action.debug.restart"
]
```

## Example configuration
![Visual Studio Code Touch Bar](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gog7i4qi6cz1a6dff7a0.png)

The above configuration shows the following buttons:
* `Go back` and `Go forward` (default)
* `Go to definition`, `Run command`, `Toggle side bar`, and `Toggle bottom panel` (Nasc Touchbar)
* `Rename`, `Source Action`, `Refactor`, and `Quick-Fix` (JavaScript Assistant)

In addition to the disable configuration for the debug actions, the following settings are used:
```json
"nasc-touchbar.addCursorBelow": false,
"nasc-touchbar.rename": false,
"nasc-touchbar.toggleSidebar": true
```
Başlık Testi
Published: 2022-10-20 18:26:43



Deneme deneme

[Jump to "Header 1"](#Header-1)
[Jump to "Header 2"](#Header-2)
[Jump to "header3"](#header3)
[Jump to "denene"](#denene)




# Header 1
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum

# Header 2

There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. 

* SSH Key Oluşturma {% embed https://asciinema.org/a/530674 %}

The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.

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



## denene
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 an
Day28 of #100DaysOfCode
Tags: 100daysofcode, nextjs, webdev, beginners
Published: 2022-10-20 13:16:00

Phew! Today has been productive!

I finished the editorial system so from next week onwards, I will have someone come in to help me curate articles for the website.  Basically fill in the Notion CMS with necessary content (basically the headlines, excerpts, summary, article image, etc).  Really excited to see how it’s going to look!

I also fixed a lot of bugs:
- add revalidate in getStaticProps
- Change the favicon
- Switch the position of Excerpt section and Summary section
- Add links to the Energy Profile and Companies Mentioned section
- Tweak the CSS of the article page so that it’s centered and hopefully making it looks better 😂
- Setup Google Analytics (GA4)
- Setup Google Search Console

You won’t see the changes now because I’m developing in a branch and have yet to push it to the main branch where it will be built and deployed (I know better now 😂).

There are a few more bugs that I need to fix. The main one being the hamburger menu in mobile that doesn’t seem to work.

Once it’s all done it will be tested, built locally to make sure everything works before I merge it to the main branch and you will then see the changes online!

Looking forward to finish this so I can go back to develop new pages.

Cheers!
How a stupid idea became a startup aka. #YetAnotherNotepadApp
Tags: startup, tooling, app, business
Published: 2022-10-20 17:58:23

It's not a story of "ohhhh, I have an idea", then release, then millions of $ of revenue. This is a story of "we can do it better", a struggle to release, and a small new business.

I'm a developer (duh), and I like writing on my keyboard more than writing with a pen. But at the same time, I like that a piece of paper and a pen can always be there, right on the spot, contrary to an app which I need to open, wait until it boots, and then I can start writing. No one has time for that bulls*it.

I needed something as quick as grabbing a pen. And I found it. A browser extension that replaces new tab with a blank canvas - a notepad. How cool is that?

All good, I've been working with it for a couple of months and loved the experience. But there's always a "but". It was just a single note, so I often had 38 kilometers of a document to scroll, and it didn't sync to other devices 👎

This is where I jump out of my office and scream "let's create own app!!!11oneone".

The idea was simple, I found a decent markdown editor lib and asked my wife - a graphic designer - to make it beautiful. It was just a matter of installing an NPM package, throwing a couple of lines of CSS, and making it available across all of my devices using Chrome sync storage.

But we started brainstorming this idea more and more. That, in no time, became a "let's make it public" idea. And then "make it public and create a pro version for a silly price". And then... here we are.

We went through a full branding, designing, and coding process, spending over 200 hours as a team for a dumb app like many others. And we're not even finished. But what keeps us rolling is that we believe in it. I still want a great-looking and working notepad, even if I'd be the one and only user. But maybe there are others like me 🤔

We worked on the App in the meantime of doing the client work. That was tough. We had to drop the ball for several days straight, multiple times, to be able to come back to it and continue working for a few hours. But we finally did release a demo version!

If you're keen to see what we're up to, check out [MadNotes](https://madnotes.app), that's the name.

I thought maybe I could share some personal insights with dev.to community if anyone would be interested in how we do it, what problems we're facing and how we resolve them. Let me know if you do! I'm also happy to answer any questions.
I just published the longest Article in the History of Medium.com
Tags: programming, javascript, devops, aws
Published: 2022-10-20 17:49:35

The title says it all and its a 52 min long read.

A few months back, I released a social network, after 4 years of a solo-development. Now I'm back to tell my story, so I wrote down everything that happened during those 4 years, including what I worked on and how.

I hope this article will serve those who are struggling with their side-projects and are looking for some motivation. Its not easy to keep going when you don't see the end in sight, but I guarantee you that if you just keep going, the end of the road is there waiting for you! 😉

https://medium.com/@mario.stopfer/how-i-built-a-social-network-in-4-years-as-a-solo-developer-4af70fb2d4c8
Headless vs. Decoupled CMS: What's the Difference?
Tags: webdev, developers, beginners, programming
Published: 2022-10-20 17:38:07

At first glance, the difference between a headless and decoupled cms may be hard to spot, which is why we've written a [no-nonsense guide](https://buttercms.com/blog/headless-vs-decoupled-cms/) settling the discussion once and for all.
ItalianSyllabary is out!
Tags: csharp, firstpost, opensource
Published: 2022-10-20 17:24:15

Hi Guys! 

My name is Carlo. I'm a Full Stack Web Developer that works in Sicily!

I'm excited about being part of Dev.to: I've found interesting content here, lot of ideas came to my mind thanks to you.

For my first post, I want to share my first little contribution to the open-source Community.

### TL; DR;

I wrote a library that can help with the Syllabification in Italian since I did not find anything that helps with that online.

Here's a quick get started on how to use that in your C# code.

```csharp
// Manual version with known issues
var syllabary = new ItalianSyllabary.ItalianSyllabary();
string[] syllables4Casa = syllabary.GetSyllables("casa").Result; // { "ca", "sa" }
string[] syllables4Manuale = syllabary.GetSyllables("manuale").Result; // { "ma", "nua", "le" }
		
// Online version, will fallback to manual if word is not found or is not italian
var syllabaryOnline = new ItalianSyllabary.ItalianSyllabary(preferOnline: true);
string[] syllablesOnline = syllabaryOnline.GetSyllables("manuale").Result; // { "ma", "nua", "le" }

```

#### Limitations

While coding I encountered one of the problems that all of the tools that I tried online have that is: in Italian, the same name "Mario" and "Maria" has different Syllabifications.

The former is "Ma-rio" while the latter is "Ma-ri-a". 

That's because of the accent "Màrio" and "Marìa"; you don't say Maria in a single breath.

##### Solution, Extension and contribute!

I built an enricher that gets word from a file (that is embedded into the source code so you don't have to navigate in the file system where the library is running, don't worry) and understand if it has accents to get the correct Syllabification.

And that's where you can contribute! If you want to help me, put words in the enricher, comment to tell me how you think this library can be useful, and thanks because you have read my first post! 

### References

You can find the library on Nuget [here](https://www.nuget.org/packages/ItalianSyllabary); links on Github [here](https://github.com/CarloP95/ItalianSyllabary).



I hope to see you around!



---

Cover Photo by <a href="https://unsplash.com/@brett_jordan?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Brett Jordan</a> on <a href="https://unsplash.com/s/photos/words?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>