Nuke Build 🗂
As C# developers, we are spoiled with a great language and awesome IDEs.
Why do most automation systems never really match the level of convenience and integration that we're used to?
NUKE is different. 💎
It is fully based on C# console applications and uses the type system to its full extent.
You want your auto-completion, package management, debugging, refactorings, formatting, and navigation back? It’s available right there❗️
[ Website ] : https://nuke.build/
[ GitHub ] : github.com/nuke-build/nuke
〰️〰️〰️〰️〰️〰️
#CSharp #Dotnet #BuildSystem
@ProgrammingTip
As C# developers, we are spoiled with a great language and awesome IDEs.
Why do most automation systems never really match the level of convenience and integration that we're used to?
NUKE is different. 💎
It is fully based on C# console applications and uses the type system to its full extent.
You want your auto-completion, package management, debugging, refactorings, formatting, and navigation back? It’s available right there❗️
[ Website ] : https://nuke.build/
[ GitHub ] : github.com/nuke-build/nuke
〰️〰️〰️〰️〰️〰️
#CSharp #Dotnet #BuildSystem
@ProgrammingTip
Telegram
Programming Tips Resources
Source Link 🐞
Source Link is a language- and source-control agnostic system for providing first-class source debugging experiences for binaries.
The goal of the project is to enable anyone building NuGet libraries to provide source debugging for their users with almost no effort.
Microsoft libraries, such as .NET Core and Roslyn have enabled Source Link.
Source Link is supported by Microsoft. ✅
〰️〰️〰️〰️〰️〰️
#DotNet #CSharp #Debugging
@ProgrammingTip
Source Link is a language- and source-control agnostic system for providing first-class source debugging experiences for binaries.
The goal of the project is to enable anyone building NuGet libraries to provide source debugging for their users with almost no effort.
Microsoft libraries, such as .NET Core and Roslyn have enabled Source Link.
Source Link is supported by Microsoft. ✅
〰️〰️〰️〰️〰️〰️
#DotNet #CSharp #Debugging
@ProgrammingTip
Telegram
Programming Tips Resources
Newsletter 🗞
In this newsletter, we will talk about the following:
• Retry patterns ♻️
• Evolution of the Netflix API architecture 🔝
• How does stop loss work❓
• Chaos Engineering 🤯
[ Article ] : https://kutt.it/newsletter1
〰️〰️〰️〰️〰️〰️
#Newsletter #Retry #Chaos_Engineering #API_Gateway
@ProgrammingTip
In this newsletter, we will talk about the following:
• Retry patterns ♻️
• Evolution of the Netflix API architecture 🔝
• How does stop loss work❓
• Chaos Engineering 🤯
[ Article ] : https://kutt.it/newsletter1
〰️〰️〰️〰️〰️〰️
#Newsletter #Retry #Chaos_Engineering #API_Gateway
@ProgrammingTip
Telegram
Programming Tips Resources
Diagrams - Diagram as Code for prototyping cloud system architectures 🎨
Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools. ✅
You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc ...
It also supports On-Premise nodes, SaaS and major Programming frameworks and languages. 🌀
[ GitHub ] : github.com/mingrammer/diagrams
〰️〰️〰️〰️〰️〰️
#Diagram #Architecture #DiagramAsCode
@ProgrammingTip
Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools. ✅
You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc ...
It also supports On-Premise nodes, SaaS and major Programming frameworks and languages. 🌀
[ GitHub ] : github.com/mingrammer/diagrams
〰️〰️〰️〰️〰️〰️
#Diagram #Architecture #DiagramAsCode
@ProgrammingTip
Telegram
Programming Tips Resources
ChilliCream GraphQL Platform 🌶
The ChilliCream GraphQL Platform, at its core, is a new way to create powerful Backends. HotChocolate, .NET GraphQL server, connects any service or data source and creates a cohesive service to offer your consumers a unified API. 💎
Hot Chocolate: GraphQL server to create GraphQL endpoints and merge schemas. ✅
Banana Cake Pop: GraphQL IDE to explore, request and analyze any GraphQL endpoint. 🌐
Strawberry Shake: GraphQL client to fetch data from any GraphQL endpoint. 🔁
Green Donut: DataLoader to solve the N+1 problem. 🔂
[ GitHub ] : github.com/ChilliCream/hotchocolate
〰️〰️〰️〰️〰️〰️
#GraphQL #DotNet #AspNetCore
@ProgrammingTip
The ChilliCream GraphQL Platform, at its core, is a new way to create powerful Backends. HotChocolate, .NET GraphQL server, connects any service or data source and creates a cohesive service to offer your consumers a unified API. 💎
Hot Chocolate: GraphQL server to create GraphQL endpoints and merge schemas. ✅
Banana Cake Pop: GraphQL IDE to explore, request and analyze any GraphQL endpoint. 🌐
Strawberry Shake: GraphQL client to fetch data from any GraphQL endpoint. 🔁
Green Donut: DataLoader to solve the N+1 problem. 🔂
[ GitHub ] : github.com/ChilliCream/hotchocolate
〰️〰️〰️〰️〰️〰️
#GraphQL #DotNet #AspNetCore
@ProgrammingTip
Telegram
Programming Tips Resources
WebChatGPT 🔝
This browser extension adds web access capability to ChatGPT. Get much more relevant and up-to-date answers from the chatbot!🆒
[ GitHub ] : github.com/qunash/chatgpt-advanced
〰️〰️〰️〰️〰️〰️
#ChatGPT
@ProgrammingTip
This browser extension adds web access capability to ChatGPT. Get much more relevant and up-to-date answers from the chatbot!
[ GitHub ] : github.com/qunash/chatgpt-advanced
〰️〰️〰️〰️〰️〰️
#ChatGPT
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - interstellard/chatgpt-advanced: WebChatGPT: A browser extension that augments your ChatGPT prompts with web results.
WebChatGPT: A browser extension that augments your ChatGPT prompts with web results. - interstellard/chatgpt-advanced
aspnetcore-developer-roadmap.png
606.9 KB
ASP.NET Core Developer Roadmap in 2023 🔝
Roadmap to becoming an ASP.NET Core developer in 2023 🚀
[ GitHub ] : https://github.com/MoienTajik/AspNetCore-Developer-Roadmap
〰️〰️〰️〰️〰️〰️
#AspNetCore #DotNet #DotNetCore #CSharp
@ProgrammingTip
Roadmap to becoming an ASP.NET Core developer in 2023 🚀
[ GitHub ] : https://github.com/MoienTajik/AspNetCore-Developer-Roadmap
〰️〰️〰️〰️〰️〰️
#AspNetCore #DotNet #DotNetCore #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub Copilot X: The AI-powered developer experience 🏳️
GitHub Copilot is evolving to bring chat and voice interfaces, support pull requests, answer questions on docs, and adopt OpenAI’s GPT-4 for a more personalized developer experience.🆒
[ Article ] : https://kutt.it/CopilotX
〰️〰️〰️〰️〰️〰️
#GitHub #AI #ChatGPT
@ProgrammingTip
GitHub Copilot is evolving to bring chat and voice interfaces, support pull requests, answer questions on docs, and adopt OpenAI’s GPT-4 for a more personalized developer experience.
[ Article ] : https://kutt.it/CopilotX
〰️〰️〰️〰️〰️〰️
#GitHub #AI #ChatGPT
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
GitHub Copilot X
Introducing our vision for the future of AI-powered software development with GitHub Copilot. To learn more visit https://gh.io/copilotx
Stay up-to-date on all things GitHub by subscribing and following us at:
YouTube: http://bit.ly/subgithub
Blog: https://github.blog…
Stay up-to-date on all things GitHub by subscribing and following us at:
YouTube: http://bit.ly/subgithub
Blog: https://github.blog…
WireMock.NET 😮
WireMock.NET is a .NET library for stubbing and mocking HTTP services. With WireMock.NET, you can define the expected responses for particular requests, and the library will intercept and manage those requests for you.✔️
This allows for easy testing of the code that makes HTTP requests, without having to rely on the actual external service being available and without hacking HttpClient.🆒
Sample code snippet:
〰️〰️〰️〰️〰️〰️
#UnitTest #DotNet #CSharp
@ProgrammingTip
WireMock.NET is a .NET library for stubbing and mocking HTTP services. With WireMock.NET, you can define the expected responses for particular requests, and the library will intercept and manage those requests for you.
This allows for easy testing of the code that makes HTTP requests, without having to rely on the actual external service being available and without hacking HttpClient.
Sample code snippet:
[Test][ Blog ] : https://cezarypiatek.github.io/post/mocking-outgoing-http-requests-p1
public async Task sample_WireMock_usage()
{
// Setup WireMock.Net server
using var wireMock = WireMockServer.StartWithAdminInterface(port: 1080, ssl: false);
// Setup WebApplicationFactory
await using var appFactory = new WebApplicationFactory<Program>().WithWebHostBuilder(builder =>
{
builder.ConfigureAppConfiguration(configurationBuilder =>
{
// Override downstream service addresses pointing to WireMock address
configurationBuilder.AddInMemoryCollection(new Dictionary<string, string>
{
["ExternalServices:WeatherService"] = "http://localhost:1080"
});
});
});
// Prepare stub for outgoing request
wireMock
.Given(
Request.Create()
.WithPath("/api/v1.0/weather")
.WithParam("lat", "10.99")
.WithParam("lon", "44.34")
.UsingGet()
)
.RespondWith(
Response.Create()
.WithStatusCode(200)
.WithHeader("Content-Type", "application/json; charset=utf-8")
.WithBodyAsJson(new
{
temp = 298.48,
feels_like = 298.74,
temp_min = 297.56,
temp_max = 300.05,
pressure = 1015,
humidity = 64
})
);
// Automate tested app
}
〰️〰️〰️〰️〰️〰️
#UnitTest #DotNet #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
Check out new C# 12 preview features! ⚡️
Three new features for C# 12😮 :
1️⃣ - Primary constructors for non-record classes and structs :
2️⃣ - Using aliases for any type:
3️⃣ - Default values for lambda expression parameters:
〰️〰️〰️〰️〰️〰️
#CSharp #DotNet
@ProgrammingTip
Three new features for C# 12
public class Student(int id, string name, IEnumerable<decimal> grades)
{
public Student(int id, string name) : this(id, name, Enumerable.Empty<decimal>()) { }
public int Id => id;
public string Name { get; set; } = name.Trim();
public decimal GPA => grades.Any() ? grades.Average() : 4.0m;
}
using Measurement = (string, int);
public void F(Measurement x)
{ }
var addWithDefault = (int addTo = 2) => addTo + 1;
addWithDefault(); // 3
addWithDefault(5); // 6
[ Article ] : https://devblogs.microsoft.com/dotnet/check-out-csharp-12-preview〰️〰️〰️〰️〰️〰️
#CSharp #DotNet
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
Raycast 🔥
Raycast is a blazingly fast, totally extendable launcher for MacOS. It lets you use AI (ChatGPT) directly from your launcher, complete tasks, calculate, share common links, and much more.🔝
[ Website ] : https://www.raycast.com
〰️〰️〰️〰️〰️〰️
#MacOS #Launcher #RayCast
@ProgrammingTip
Raycast is a blazingly fast, totally extendable launcher for MacOS. It lets you use AI (ChatGPT) directly from your launcher, complete tasks, calculate, share common links, and much more.
[ Website ] : https://www.raycast.com
〰️〰️〰️〰️〰️〰️
#MacOS #Launcher #RayCast
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
.NET 8 - Keyed service dependency injection container support 🔝
Keyed services are useful when you have an interface/service with multiple implementations that you want to use in your app. What's more, you need to use each of those implementations in different places in your app.☄️
Sample:
〰️〰️〰️〰️〰️〰️
#DotNet #DotNetCore #AspNetCore #CSharp
@ProgrammingTip
Keyed services are useful when you have an interface/service with multiple implementations that you want to use in your app. What's more, you need to use each of those implementations in different places in your app.
Sample:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddKeyedSingleton<INotificationService, SmsNotificationService>("sms");
builder.Services.AddKeyedSingleton<INotificationService, EmailNotificationService>("email");
builder.Services.AddKeyedSingleton<INotificationService, PushNotificationService>("push");
[ Article ] : https://andrewlock.net/exploring-the-dotnet-8-preview-keyed-services-dependency-injection-support〰️〰️〰️〰️〰️〰️
#DotNet #DotNetCore #AspNetCore #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
Media is too big
VIEW IN TELEGRAM
🚀 For those aiming to manage web & mobile apps in their .NET project, discover Bit. Experience seamless integration, PWA, SSR, SEO-friendly, optimized project templates, and a set of standard components. An open-source gem with an MIT license, tailored just for C# .NET enthusiasts.
Love it? Check out their GitHub repo and give them a ⭐!
Repository Link
Love it? Check out their GitHub repo and give them a ⭐!
Repository Link
Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8 🔥
.NET Aspire is an opinionated stack for building resilient, observable, and configurable cloud-native applications with .NET. It includes a curated set of components enhanced for cloud-native by including service discovery, telemetry, resilience, and health checks by default.👍
Sample Usage:
[ Article ] : https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8
〰️〰️〰️〰️〰️〰️
#DotNET #AspNetCore #CSharp #Aspire
@ProgrammingTip
.NET Aspire is an opinionated stack for building resilient, observable, and configurable cloud-native applications with .NET. It includes a curated set of components enhanced for cloud-native by including service discovery, telemetry, resilience, and health checks by default.
Sample Usage:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedisContainer("cache");
var apiservice = builder.AddProject<Projects.AspireApp_ApiService>("apiservice");
builder.AddProject<Projects.AspireApp_Web>("webfrontend")
.WithReference(cache)
.WithReference(apiservice);
builder.Build().Run();
[ Article ] : https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8
〰️〰️〰️〰️〰️〰️
#DotNET #AspNetCore #CSharp #Aspire
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Microsoft News
Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8
Introducing .NET Aspire: A cloud ready stack for building observable, production ready, distributed applications
The System Design Primer ✔️
System design is a broad topic. There is a vast amount of resources scattered throughout the web on system design principles. 🎨
This repo is an organized collection of resources to help you learn how to build systems at scale.
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.🆒
[ GitHub ] : https://github.com/donnemartin/system-design-primer
〰️〰️〰️〰️〰️〰️
#SystemDesign #Design #Scale #Interview
@ProgrammingTip
System design is a broad topic. There is a vast amount of resources scattered throughout the web on system design principles. 🎨
This repo is an organized collection of resources to help you learn how to build systems at scale.
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
[ GitHub ] : https://github.com/donnemartin/system-design-primer
〰️〰️〰️〰️〰️〰️
#SystemDesign #Design #Scale #Interview
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
🔍 Challenge: Create a compact Maze Game in C# under 2KB without .NET Runtime, Small enough to fit in a QR Code 🤔
👨💻 Process:
• Self-Contained: Includes all necessary components to run on any OS.✔️
• Game Type: A graphical maze, utilizing Win32 APIs, avoiding WinForms.⭐️
• Size Reduction Steps:
1- Initial Size: 64MB (with CoreCLR)
2- Post-Compression: 35.2MB
3- IL Trimming Applied: 10MB
4- Native AOT Compilation: 1.13MB
5- Removing Unused Features: 923KB
6- Using bflat Compiler: 882KB
7- bflat with Zerolib: 9KB
8- Direct PInvoke: 8KB
9- Eliminating Debugging and Relocations: 7KB
10- Targeting x86 Architecture: 6.5KB
11- Final Step with Crinkler Linker: 1,936 Bytes
🎉 Outcome: Achieved a C# game small enough to fit in a QR code!
[ Full Article 🔗 ] : https://migeel.sk/blog/2024/01/02/building-a-self-contained-game-in-csharp-under-2-kilobytes
〰️〰️〰️〰️〰️〰️
#CSharp #DotNet #Optimization #LowLevel
@ProgrammingTip
• Self-Contained: Includes all necessary components to run on any OS.
• Game Type: A graphical maze, utilizing Win32 APIs, avoiding WinForms.
• Size Reduction Steps:
1- Initial Size: 64MB (with CoreCLR)
2- Post-Compression: 35.2MB
3- IL Trimming Applied: 10MB
4- Native AOT Compilation: 1.13MB
5- Removing Unused Features: 923KB
6- Using bflat Compiler: 882KB
7- bflat with Zerolib: 9KB
8- Direct PInvoke: 8KB
9- Eliminating Debugging and Relocations: 7KB
10- Targeting x86 Architecture: 6.5KB
11- Final Step with Crinkler Linker: 1,936 Bytes
🎉 Outcome: Achieved a C# game small enough to fit in a QR code!
[ Full Article 🔗 ] : https://migeel.sk/blog/2024/01/02/building-a-self-contained-game-in-csharp-under-2-kilobytes
〰️〰️〰️〰️〰️〰️
#CSharp #DotNet #Optimization #LowLevel
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
This media is not supported in your browser
VIEW IN TELEGRAM
MeiliSearch: The Fast, Open-Source Search Engine 🔍🚀
MeiliSearch is a powerful, open-source search engine written in Rust. Designed for speed and ease of use, it's the perfect choice for developers looking to implement search capabilities in their applications. 🔝
Key Features:
• Lightning-fast search responses ⚡️
• Typo-tolerance for better user experience ✔️
• Simple to set up and integrate 🛠
• Customizable ranking rules for tailored search results 🔧
• Open-source and fully documented 📚
[ GitHub ] : https://github.com/meilisearch/meilisearch
〰️〰️〰️〰️〰️〰️
#MeiliSearch #SearchEngine
@ProgrammingTip
MeiliSearch is a powerful, open-source search engine written in Rust. Designed for speed and ease of use, it's the perfect choice for developers looking to implement search capabilities in their applications. 🔝
Key Features:
• Lightning-fast search responses ⚡️
• Typo-tolerance for better user experience ✔️
• Simple to set up and integrate 🛠
• Customizable ranking rules for tailored search results 🔧
• Open-source and fully documented 📚
[ GitHub ] : https://github.com/meilisearch/meilisearch
〰️〰️〰️〰️〰️〰️
#MeiliSearch #SearchEngine
@ProgrammingTip
Spotube 🎸
Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile! 🎧
Features✔️ :
• 🚫 No ads
• ⬇️ Downloadable tracks
• 🖥 📱 Cross-platform support
• 🪶 Small size & less data usage
• 🕵️ Anonymous/guest login
• 🕒 Time synced lyrics
• ✋ No telemetry, diagnostics or user data collection
• 🚀 Native performance
• 📖 Open source/libre software
• 🔉 Playback control is done locally, not on the server
[ GitHub ] : https://github.com/KRTirtho/spotube
〰️〰️〰️〰️〰️〰️
#OpenSource #Spotify
@ProgrammingTip
Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile! 🎧
Features
• 🚫 No ads
• ⬇️ Downloadable tracks
• 🖥 📱 Cross-platform support
• 🪶 Small size & less data usage
• 🕵️ Anonymous/guest login
• 🕒 Time synced lyrics
• ✋ No telemetry, diagnostics or user data collection
• 🚀 Native performance
• 📖 Open source/libre software
• 🔉 Playback control is done locally, not on the server
[ GitHub ] : https://github.com/KRTirtho/spotube
〰️〰️〰️〰️〰️〰️
#OpenSource #Spotify
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
The ultimate guide for making the best career choices in Tech 🧑🏻💻
Denilson Nastacio shares a structured framework for career success, likening it to Maslow's Hierarchy of Needs. He highlights the importance of aligning one's career with personal values and market demands, offering insights into the tech industry's evolving landscape.✔️
Key Takeaways🔑 :
• Employability is foundational, emphasizing education, skills, and market relevance.
• Compensation & Stability ensure job adequacy and a supportive environment.
• Growth & Development demand continuous learning and skill enhancement.
• Work-Life Balance & Well-Being focus on mental and physical health.
• Purpose & Meaning represent the pinnacle, aligning personal values with professional careers.
[ Article ] : https://medium.com/@dnastacio/c18768d32598
〰️〰️〰️〰️〰️〰️
#Tech #CareerPath #Growth
@ProgrammingTip
Denilson Nastacio shares a structured framework for career success, likening it to Maslow's Hierarchy of Needs. He highlights the importance of aligning one's career with personal values and market demands, offering insights into the tech industry's evolving landscape.
Key Takeaways
• Employability is foundational, emphasizing education, skills, and market relevance.
• Compensation & Stability ensure job adequacy and a supportive environment.
• Growth & Development demand continuous learning and skill enhancement.
• Work-Life Balance & Well-Being focus on mental and physical health.
• Purpose & Meaning represent the pinnacle, aligning personal values with professional careers.
[ Article ] : https://medium.com/@dnastacio/c18768d32598
〰️〰️〰️〰️〰️〰️
#Tech #CareerPath #Growth
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
Browserless | Headless browser automation, without the hosting headaches 🆒
Browserless allows remote clients to connect and execute headless work, all inside of docker. It supports the standard, unforked Puppeteer and Playwright libraries, as well offering REST-based APIs for common actions like data collection, PDF generation and more.✔
Sample 🐞:
[ GitHub ] : https://github.com/browserless/browserless
[ Website ] : https://www.browserless.io
〰️〰️〰️〰️〰️〰️
#E2E #Testing #Browserless #Docker
@ProgrammingTip
Browserless allows remote clients to connect and execute headless work, all inside of docker. It supports the standard, unforked Puppeteer and Playwright libraries, as well offering REST-based APIs for common actions like data collection, PDF generation and more.
Sample 🐞:
import puppeteer from "puppeteer";
// Try changing this! 👇
const URL = "https://t.me/s/ProgrammingTip";
const main = async () => {
const browser = await puppeteer.connect({
browserWSEndpoint: `wss://chrome.browserless.io`,
});
const page = await browser.newPage();
await page.goto(URL);
return page.screenshot();
}
[ GitHub ] : https://github.com/browserless/browserless
[ Website ] : https://www.browserless.io
〰️〰️〰️〰️〰️〰️
#E2E #Testing #Browserless #Docker
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources