Skip to content

Commit

Permalink
Set mastodon links for each post
Browse files Browse the repository at this point in the history
  • Loading branch information
sudorandom committed Apr 15, 2024
1 parent 89c9f2c commit d6634ad
Show file tree
Hide file tree
Showing 36 changed files with 1,033 additions and 659 deletions.
2 changes: 1 addition & 1 deletion content/posts/2024/api-contracts/index.md
Expand Up @@ -12,7 +12,7 @@ devtoId: 1815913
devtoPublished: true
devtoSkip: false
canonical_url: https://sudorandom.dev/posts/api-contracts
mastodonID: "112277137790306008"
mastodonID: "112277335329654214"
---

In today's interconnected world, APIs (Application Programming Interfaces) are the glue that connects computers. They allow different applications to talk to each other, share data, and perform actions. However, traditional methods of creating APIs can lead to challenges, especially when dealing with versioning changes and integrating complex systems. This is where **contract-based APIs** come in, offering a more robust and reliable approach and taming some of the wildness that exists on the web.
Expand Down
Expand Up @@ -12,7 +12,7 @@ devtoId: 1808828
devtoPublished: true
devtoSkip: false
canonical_url: https://sudorandom.dev/posts/connectrpc-dropping-unknown-fields
mastodonID: "112277143180958915"
mastodonID: "112277345241838737"
---

gRPC, with its focus on performance and language neutrality, remains a popular choice for building microservices and APIs. But when exposing your gRPC service to the internet, there are a few security considerations to account for. Protobuf, the serialization format often used with gRPC, offers various encoding options that can significantly impact your service's security posture.
Expand Down
2 changes: 1 addition & 1 deletion content/posts/2024/connectrpc/index.md
Expand Up @@ -17,7 +17,7 @@ devtoId: 1797651
devtoPublished: true
devtoSkip: false
canonical_url: https://sudorandom.dev/posts/connectrpc
mastodonID: "112277280987047720"
mastodonID: "112277436177327682"
---

## Introduction
Expand Down
2 changes: 1 addition & 1 deletion content/posts/2024/inspecting-protobuf/index.md
Expand Up @@ -14,7 +14,7 @@ slug: "inspecting-protobuf-messages"
type: "posts"
devtoSkip: true
canonical_url: https://sudorandom.dev/posts/inspecting-protobuf-messages
mastodonID: "112277282269734509"
mastodonID: "112277434216326412"
---


Expand Down
1 change: 1 addition & 0 deletions content/posts/2024/protobuf-unknown-fields/index.md
Expand Up @@ -16,6 +16,7 @@ devtoId: 1797652
devtoPublished: false
devtoSkip: false
canonical_url: https://sudorandom.dev/posts/protobuf-unknown-fields
mastodonID: "112277337082054030"
---

[Protobuf](https://protobuf.dev/programming-guides/proto3/) offers a powerful feature known as [**unknown fields**](https://protobuf.dev/programming-guides/proto3/#unknowns). These fields act as a safety net when messages encounter unforeseen circumstances. Let's delve into what they are, how they work and why they're useful.
Expand Down
2 changes: 1 addition & 1 deletion content/posts/2024/protoc-gen-connect-openapi/index.md
Expand Up @@ -14,7 +14,7 @@ slug: "protoc-gen-connect-openapi"
type: "posts"
devtoSkip: true
canonical_url: https://sudorandom.dev/posts/protoc-gen-connect-openapi
mastodonID: "112277284000727243"
mastodonID: "112277431193411736"

aliases: [
"/posts/introducing-protoc-gen-connect-openapi",
Expand Down
2 changes: 1 addition & 1 deletion content/posts/2024/restless/index.md
Expand Up @@ -16,7 +16,7 @@ devtoId: 1801742
devtoPublished: true
devtoSkip: false
canonical_url: https://sudorandom.dev/posts/restless
mastodonID: "112277152337621812"
mastodonID: "112277350972272100"
---

The "RESTful API" has been the workhorse of the web for many years. It has been an ever-changing religion with tenants that developers try their hardest to adhere to. But as web applications evolve, user demands grow and our industry experience with API design grows, it's time to re-evaluate this approach. This article explores the limitations of REST and delves into modern alternatives that can unlock a world of possibilities beyond.
Expand Down
2 changes: 1 addition & 1 deletion content/posts/2024/unknownconnect-go/index.md
Expand Up @@ -16,7 +16,7 @@ devtoId: 1797653
devtoPublished: false
devtoSkip: false
canonical_url: https://sudorandom.dev/posts/unknownconnect-go
mastodonID: "112277271581348914"
mastodonID: "112277437847001145"
---

gRPC systems can be quite complex. When making additions to protobuf files the server or the client often gets updated at different times. In a perfect world, this would all be synchronized. But we live in reality. Sometimes release schedules differ between components. Sometimes you just forget to update a component. Many times you might be consuming a gRPC service managed by another team and *they don't tell you that they're changing things*. I made something that will bring unique insight into this problem with very little work.
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277285817413643.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277287224227663.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277288984060202.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277290470311405.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277291254014638.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277293862200824.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277295705206443.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277297012772799.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277298441633204.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277299656130947.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277300779285594.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277301853521433.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277304410632895.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277305457708149.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277306681115233.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down
4 changes: 2 additions & 2 deletions content/updates/imported/112277307770471020.html
Expand Up @@ -45,9 +45,9 @@
"avatar_static": "https://media.infosec.exchange/infosec.exchange/accounts/avatars/109/300/069/582/362/316/original/37209718fa7513e2.jpg",
"header": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"header_static": "https://media.infosec.exchange/infosec.exchange/accounts/headers/109/300/069/582/362/316/original/4ff2fc4833c06e39.png",
"followers_count": 132,
"followers_count": 131,
"following_count": 44,
"statuses_count": 253,
"statuses_count": 255,
"last_status_at": "2024-04-15",
"hide_collections": false,
"noindex": false,
Expand Down

0 comments on commit d6634ad

Please sign in to comment.