Branca as an Alternative to JWTβπ
Branca is a catchy name for IETF XChaCha20-Poly1305 AEAD message with an additional version number and timestamp.π
It is well suited to be used as an authenticated and encrypted API token. π₯
Branca specification does not specify the payload format. Among others you can use for example JWT payloads but still have modern encryption and smaller token size provided by Branca. β‘οΈ
Currently there are implemenations for JavaScript, Elixir, Go and PHP and a command line tool for creating and inspecting tokens. β¨
Heads upβοΈJWT itself is the payload part of a larger standard called Javascript Object Signing and Encryption (JOSE). That said the term JWT has become ubiquitous when actually referring JSON Web Signature (JWS) or JSON Web Encryption (JWE). π
Branca is based on Fernet specification. π
Fernet takes an user provided message, a secret key and the current time and generates an Authenticated Encrypted (AE) token. Authenticated encryption specifies a way to secure a message so that a 3rd party cannot fake it, alter it nor read it. π
https://t.me/pgimg/171
[ Read More ] : kutt.it/branca
γ°γ°γ°γ°γ°γ°
#Branca #Authentication #JWT
@ProgrammingTip
Branca is a catchy name for IETF XChaCha20-Poly1305 AEAD message with an additional version number and timestamp.π
It is well suited to be used as an authenticated and encrypted API token. π₯
Branca specification does not specify the payload format. Among others you can use for example JWT payloads but still have modern encryption and smaller token size provided by Branca. β‘οΈ
Currently there are implemenations for JavaScript, Elixir, Go and PHP and a command line tool for creating and inspecting tokens. β¨
Heads upβοΈJWT itself is the payload part of a larger standard called Javascript Object Signing and Encryption (JOSE). That said the term JWT has become ubiquitous when actually referring JSON Web Signature (JWS) or JSON Web Encryption (JWE). π
Branca is based on Fernet specification. π
Fernet takes an user provided message, a secret key and the current time and generates an Authenticated Encrypted (AE) token. Authenticated encryption specifies a way to secure a message so that a 3rd party cannot fake it, alter it nor read it. π
https://t.me/pgimg/171
[ Read More ] : kutt.it/branca
γ°γ°γ°γ°γ°γ°
#Branca #Authentication #JWT
@ProgrammingTip
Telegram
Programming Tips Resources
Saving Grandma's Recipes With Xamarin.Forms π΅π»
When creating mobile apps, you have to create and maintain the user interface and app logic for both iOS and Android separately π€ : Objective-C/Swift with XCode and Java with Android Studio. π€―
That can quickly turn into a pain. With Xamarin.Forms, however, the UI and app logic for your app resides in a single codebase and you get to use a single IDE to maintain it all β saving time and headaches. β
In this article, take a lap around Xamarin.Forms to see what it can do for you.π
My grandma makes the best, most fluffiest, go weak-in-your-knees buns that anybody has ever tasted.π
The problem is, thereβs a ton of secret ingredients (and Iβm not just talking love) that go into those buns, and those ingredients and directions are all stored in my grandmaβs head. π€¦π»ββοΈ
We all have family recipes like that, and instead of possibly forgetting them, in this article weβre going to create a mobile app for iOS and Android using Xamarin.Forms that will save them for myself and future generations of my family! π¨βπ©βπ§βπ¦
https://t.me/pgimg/172
[ Article ] : kutt.it/xam
γ°γ°γ°γ°γ°γ°
#Xamarin #Android #IOS
@ProgrammingTip
When creating mobile apps, you have to create and maintain the user interface and app logic for both iOS and Android separately π€ : Objective-C/Swift with XCode and Java with Android Studio. π€―
That can quickly turn into a pain. With Xamarin.Forms, however, the UI and app logic for your app resides in a single codebase and you get to use a single IDE to maintain it all β saving time and headaches. β
In this article, take a lap around Xamarin.Forms to see what it can do for you.π
My grandma makes the best, most fluffiest, go weak-in-your-knees buns that anybody has ever tasted.π
The problem is, thereβs a ton of secret ingredients (and Iβm not just talking love) that go into those buns, and those ingredients and directions are all stored in my grandmaβs head. π€¦π»ββοΈ
We all have family recipes like that, and instead of possibly forgetting them, in this article weβre going to create a mobile app for iOS and Android using Xamarin.Forms that will save them for myself and future generations of my family! π¨βπ©βπ§βπ¦
https://t.me/pgimg/172
[ Article ] : kutt.it/xam
γ°γ°γ°γ°γ°γ°
#Xamarin #Android #IOS
@ProgrammingTip
Telegram
Programming Tips Resources
What Happened When I Peeked Into My Node_Modules Directory π€―
The left-pad fiasco shook the JavaScript community to its core when a rouge developer removed a popular module from npm, causing tens of projects to go dark. β
While code bloat continues to slow down our websites, drain our batteries, and make βnpm installβ slow for a few seconds, many developers like myself have decided to carefully audit the dependencies we bring into our projects. π
Itβs time we as a community stand up and say enough is enough, this community belongs to all of us, not just a handful of JavaScript developers with great hair. π₯
I decided to document my experiences in auditing my projectsβ dependencies, and I hope you find the following information useful. β
https://t.me/pgimg/173
[ Article ] : kutt.it/nmo
γ°γ°γ°γ°γ°γ°
#JavaScript #NPM
@ProgrammingTip
The left-pad fiasco shook the JavaScript community to its core when a rouge developer removed a popular module from npm, causing tens of projects to go dark. β
While code bloat continues to slow down our websites, drain our batteries, and make βnpm installβ slow for a few seconds, many developers like myself have decided to carefully audit the dependencies we bring into our projects. π
Itβs time we as a community stand up and say enough is enough, this community belongs to all of us, not just a handful of JavaScript developers with great hair. π₯
I decided to document my experiences in auditing my projectsβ dependencies, and I hope you find the following information useful. β
https://t.me/pgimg/173
[ Article ] : kutt.it/nmo
γ°γ°γ°γ°γ°γ°
#JavaScript #NPM
@ProgrammingTip
Telegram
Programming Tips Resources
Programming Tips π‘
Photo
Object Thinking.pdf
3.7 MB
Object Thinking π
Author : David West π
Level : Advanced π
γ°γ°γ°γ°γ°γ°
#Book #DesignPatterns #OOP
@ProgrammingTip
Author : David West π
Level : Advanced π
γ°γ°γ°γ°γ°γ°
#Book #DesignPatterns #OOP
@ProgrammingTip
PrimeNG π
°οΈ
PrimeNG is a collection of rich UI components for Angular. π
All widgets are open source and free to use under MIT License. πΈ
Features π :
β’ 80+ Components
β’ Open Source
β’ Productivity
β’ Themes
β’ Templates
β’ Mobile
https://t.me/pgimg/174
[ Website ] : kutt.it/pmng
[ Github ] : kutt.it/pmngi
γ°γ°γ°γ°γ°γ°
#Angular #UIKit
@ProgrammingTip
PrimeNG is a collection of rich UI components for Angular. π
All widgets are open source and free to use under MIT License. πΈ
Features π :
β’ 80+ Components
β’ Open Source
β’ Productivity
β’ Themes
β’ Templates
β’ Mobile
https://t.me/pgimg/174
[ Website ] : kutt.it/pmng
[ Github ] : kutt.it/pmngi
γ°γ°γ°γ°γ°γ°
#Angular #UIKit
@ProgrammingTip
Telegram
Programming Tips Resources
Crontab Guru β±
Cron format is a simple, yet powerful and flexible way to define time and frequency of various actions. π
This is a quick and simple editor for Cron schedule expressions by Cronitor. β‘οΈ
https://t.me/pgimg/175
[ Website ] : crontab.guru
γ°γ°γ°γ°γ°γ°
#Cron #Timing
@ProgrammingTip
Cron format is a simple, yet powerful and flexible way to define time and frequency of various actions. π
This is a quick and simple editor for Cron schedule expressions by Cronitor. β‘οΈ
https://t.me/pgimg/175
[ Website ] : crontab.guru
γ°γ°γ°γ°γ°γ°
#Cron #Timing
@ProgrammingTip
Telegram
Programming Tips Resources
How DNS works β
A fun and colorful explanation of how DNS works.β¨
Hey thereβοΈThis comic explains what happens when you type a website address in your browser. π
https://t.me/pgimg/176
[ Website ] : howdns.works
γ°γ°γ°γ°γ°γ°
#DNS #Comic
@ProgrammingTip
A fun and colorful explanation of how DNS works.β¨
Hey thereβοΈThis comic explains what happens when you type a website address in your browser. π
https://t.me/pgimg/176
[ Website ] : howdns.works
γ°γ°γ°γ°γ°γ°
#DNS #Comic
@ProgrammingTip
Telegram
Programming Tips Resources
Framevuerk β¨
Fast, Responsive, Without Dependencies, Both Direction Support and Configurable UI Framework based on Vue.js. π
Features β‘οΈ :
β’ Configurable
β’ No Dependency
β’ Multi Direction
β’ Responsive
β’ SSR Ready
β’ Fast
https://t.me/pgimg/177
[ Website ] : framevuerk.com
[ Github ] : kutt.it/frvuerk
γ°γ°γ°γ°γ°γ°
#Vue #UI #Framework
@ProgrammingTip
Fast, Responsive, Without Dependencies, Both Direction Support and Configurable UI Framework based on Vue.js. π
Features β‘οΈ :
β’ Configurable
β’ No Dependency
β’ Multi Direction
β’ Responsive
β’ SSR Ready
β’ Fast
https://t.me/pgimg/177
[ Website ] : framevuerk.com
[ Github ] : kutt.it/frvuerk
γ°γ°γ°γ°γ°γ°
#Vue #UI #Framework
@ProgrammingTip
Telegram
Programming Tips Resources
Objects Should Be Immutable π€«
In object-oriented programming, an object is immutable if its state canβt be modified after it is created. π€π»
In Java/C#, a good example of an immutable object is String.β
Once created, we canβt modify its state. We can request that it creates new strings, but its own state will never change. β
However, there are not so many immutable classes in JDK. Take, for example, class Date. It is possible to modify its state using setTime(). π
This is an incomplete list of arguments in favor of immutability β‘οΈ:
β’ Immutable objects are simpler to construct, test, and use
β’ Truly immutable objects are always thread-safe
β’ They help to avoid temporal coupling
β’ Their usage is side-effect free (no defensive copies)
β’ Identity mutability problem is avoided
β’ They always have failure atomicity
β’ They are much easier to cache
β’ They prevent NULL references, which are bad
Letβs discuss the most important arguments one by one. π
https://t.me/pgimg/178
[ Article ] : kutt.it/immtb
γ°γ°γ°γ°γ°γ°
#BestPractices #DesignPatterns
@ProgrammingTip
In object-oriented programming, an object is immutable if its state canβt be modified after it is created. π€π»
In Java/C#, a good example of an immutable object is String.β
Once created, we canβt modify its state. We can request that it creates new strings, but its own state will never change. β
However, there are not so many immutable classes in JDK. Take, for example, class Date. It is possible to modify its state using setTime(). π
This is an incomplete list of arguments in favor of immutability β‘οΈ:
β’ Immutable objects are simpler to construct, test, and use
β’ Truly immutable objects are always thread-safe
β’ They help to avoid temporal coupling
β’ Their usage is side-effect free (no defensive copies)
β’ Identity mutability problem is avoided
β’ They always have failure atomicity
β’ They are much easier to cache
β’ They prevent NULL references, which are bad
Letβs discuss the most important arguments one by one. π
https://t.me/pgimg/178
[ Article ] : kutt.it/immtb
γ°γ°γ°γ°γ°γ°
#BestPractices #DesignPatterns
@ProgrammingTip
Telegram
Programming Tips Resources
Pose π₯
Replace any .NET method (including static and non-virtual) with a delegate. π
It is similar to Microsoft Fakes but unlike it Pose is implemented entirely in managed code (Reflection Emit API).β¨
Everything occurs at runtime and in-memory, no unmanaged Profiling APIs and no file system pollution with re-written assemblies.β‘οΈ
Example Usage π₯:
Shim static property getter β±:
[ Github ] : github.com/tonerdo/pose
γ°γ°γ°γ°γ°γ°
#CSharp #DotNet #Fake
@ProgrammingTip
Replace any .NET method (including static and non-virtual) with a delegate. π
It is similar to Microsoft Fakes but unlike it Pose is implemented entirely in managed code (Reflection Emit API).β¨
Everything occurs at runtime and in-memory, no unmanaged Profiling APIs and no file system pollution with re-written assemblies.β‘οΈ
Example Usage π₯:
Shim static property getter β±:
Shim dateTimeShim = Shim.Replace(() => DateTime.Now).With(() => new DateTime(2004, 4, 4));
Usage πΎ:// This block executes immediately
PoseContext.Isolate(() =>
{
// All code that executes within this block
// is isolated and shimmed methods are replaced
// Outputs "4/4/04 12:00:00 AM"
Console.WriteLine(DateTime.Now);
}, dateTimeShim);
https://t.me/pgimg/179[ Github ] : github.com/tonerdo/pose
γ°γ°γ°γ°γ°γ°
#CSharp #DotNet #Fake
@ProgrammingTip
Telegram
Programming Tips Resources
Clean Architecture with ASP.NET Core 2.1 π¦
The explosive growth of web frameworks and the demands of users have changed the approach to building web applications. π
Many challenges exist, and getting started can be a daunting prospect. Let's change that now. β
This talk provides practical guidance and recommendations. π
This video will cover architecture, technologies, tools, and frameworks. We will examine strategies for organizing your projects, folders and files. β‘οΈ
We will design a system that is simple to build and maintain - all the way from development to production. You leave this talk inspired and prepared to take your enterprise application development to the next level. π₯
https://t.me/pgimg/180
[ Video ] : kutt.it/cav
[ Source Code ] : kutt.it/cag
γ°γ°γ°γ°γ°γ°
#AspNet #Core #CleanCode
@ProgrammingTip
The explosive growth of web frameworks and the demands of users have changed the approach to building web applications. π
Many challenges exist, and getting started can be a daunting prospect. Let's change that now. β
This talk provides practical guidance and recommendations. π
This video will cover architecture, technologies, tools, and frameworks. We will examine strategies for organizing your projects, folders and files. β‘οΈ
We will design a system that is simple to build and maintain - all the way from development to production. You leave this talk inspired and prepared to take your enterprise application development to the next level. π₯
https://t.me/pgimg/180
[ Video ] : kutt.it/cav
[ Source Code ] : kutt.it/cag
γ°γ°γ°γ°γ°γ°
#AspNet #Core #CleanCode
@ProgrammingTip
Telegram
Programming Tips Resources
ββNotify Your Angular App Using SignalR π₯
In this small article we'll walk you through how to create a notification service using .NET Core 2.0 Web Api, .NET Core SignalR & Angular. π
Letβs get into business. β¨
[ Article ] : kutt.it/ngnoti
γ°γ°γ°γ°γ°γ°
#AspMvc #Core #Angular #SignalR
@ProgrammingTip
In this small article we'll walk you through how to create a notification service using .NET Core 2.0 Web Api, .NET Core SignalR & Angular. π
Letβs get into business. β¨
[ Article ] : kutt.it/ngnoti
γ°γ°γ°γ°γ°γ°
#AspMvc #Core #Angular #SignalR
@ProgrammingTip
Splitting.js β¨
Splitting creates elements and adds CSS variables to unlock amazing possibilities for animating text, grids, and moreβοΈ
https://t.me/pgimg/181
[ Website ] : splitting.js.org
[ Github ] : kutt.it/splt
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Animation
@ProgrammingTip
Splitting creates elements and adds CSS variables to unlock amazing possibilities for animating text, grids, and moreβοΈ
https://t.me/pgimg/181
[ Website ] : splitting.js.org
[ Github ] : kutt.it/splt
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Animation
@ProgrammingTip
Telegram
Programming Tips Resources
Boost Your Vue.js Workflow With Vue CLI 3 β‘οΈ
We can hardly imagine modern web development without the help of Command-Line Interface (CLI) tools. π»
They tremendously facilitate and speed up the development workflow by reducing the amount of repetitive and tedious tasks. β
Setting up a project manually, with all the linting, building, testing, preprocessing, optimizing, and dependency tracking features, doesn't sound like a fun job, does itβ
That's why all modern client-side development frameworks (such as Angular, React, etc.) offer their own version of CLI tools, and Vue.js is no exception. π
But with its latest third version, Vue CLI is going one step ahead of the others. β¨
It's now not only highly powerful and flexible, but also comes with a full-blown GUI. π
Yeah, you heard right. Vue CLI 3 offers a full graphical user interface out of the box. π
https://t.me/pgimg/182
[ Article ] : kutt.it/vcli
[ Website ] : cli.vuejs.org
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Vue #JavaScript #CLI
@ProgrammingTip
We can hardly imagine modern web development without the help of Command-Line Interface (CLI) tools. π»
They tremendously facilitate and speed up the development workflow by reducing the amount of repetitive and tedious tasks. β
Setting up a project manually, with all the linting, building, testing, preprocessing, optimizing, and dependency tracking features, doesn't sound like a fun job, does itβ
That's why all modern client-side development frameworks (such as Angular, React, etc.) offer their own version of CLI tools, and Vue.js is no exception. π
But with its latest third version, Vue CLI is going one step ahead of the others. β¨
It's now not only highly powerful and flexible, but also comes with a full-blown GUI. π
Yeah, you heard right. Vue CLI 3 offers a full graphical user interface out of the box. π
https://t.me/pgimg/182
[ Article ] : kutt.it/vcli
[ Website ] : cli.vuejs.org
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Vue #JavaScript #CLI
@ProgrammingTip
Telegram
Programming Tips Resources
FAQGURU π
A list of interview questions. βοΈ
This repository is everything you need to prepare for your technical interview. β
A collection of super-popular Interview questions, along with answers, and some code-snippets that will help you to prepare for technical interviews. β¨
Many of these questions a real questions from real interviews. π€π»
https://t.me/pgimg/183
[ Github ] : kutt.it/faqg
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Interview #Job
@ProgrammingTip
A list of interview questions. βοΈ
This repository is everything you need to prepare for your technical interview. β
A collection of super-popular Interview questions, along with answers, and some code-snippets that will help you to prepare for technical interviews. β¨
Many of these questions a real questions from real interviews. π€π»
https://t.me/pgimg/183
[ Github ] : kutt.it/faqg
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Interview #Job
@ProgrammingTip
Telegram
Programming Tips Resources
Domain Driven Design - Clear Your Concepts Before You Start β¨
What we traditionally do when we start a business applicationβ
We read the spec and find the functionalities. We break down tasks. β
We do the estimation. We distribute the works among team members. We design the database schema - sometimes by the team leader or sometimes by the respective developer. We start coding. π»
Soβ Whatβs wrong with this approachβWe have been doing goodβοΈDonβt weβ
The answer is YES and NOβοΈYes we are doing good in delivering our projects. But NOβοΈ
We are not doing good in maintaining and extending our projects. π€¦π»ββοΈ
Think about all of the projects you have worked last few years in the traditional approach. Did you ever face any of the issues below ? π€
Your project has the same functionality implemented in the same way or different in different places. π₯
You have more than one object for the same item. β
You have objects that have properties that are not actually attributes of that object. π π»ββοΈ
You have no or very poor relationship among related items. βοΈ
Looking at your objects it is not possible to understand what actually the whole application is all about. π€·π»ββοΈ
https://t.me/pgimg/184
[ Article ] : kutt.it/ddda
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #Architecture
@ProgrammingTip
What we traditionally do when we start a business applicationβ
We read the spec and find the functionalities. We break down tasks. β
We do the estimation. We distribute the works among team members. We design the database schema - sometimes by the team leader or sometimes by the respective developer. We start coding. π»
Soβ Whatβs wrong with this approachβWe have been doing goodβοΈDonβt weβ
The answer is YES and NOβοΈYes we are doing good in delivering our projects. But NOβοΈ
We are not doing good in maintaining and extending our projects. π€¦π»ββοΈ
Think about all of the projects you have worked last few years in the traditional approach. Did you ever face any of the issues below ? π€
Your project has the same functionality implemented in the same way or different in different places. π₯
You have more than one object for the same item. β
You have objects that have properties that are not actually attributes of that object. π π»ββοΈ
You have no or very poor relationship among related items. βοΈ
Looking at your objects it is not possible to understand what actually the whole application is all about. π€·π»ββοΈ
https://t.me/pgimg/184
[ Article ] : kutt.it/ddda
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #Architecture
@ProgrammingTip
Telegram
Programming Tips Resources
Tilt.js β¨
A tiny requestAnimationFrame powered 60+fps lightweight parallax hover tilt effect for jQuery. π
Alternatives :
β’ Vanilla JS
β’ React
β’ Polymer
https://t.me/pgimg/185
[ Github ] : github.com/gijsroge/tilt.js
[ Demo ] : gijsroge.github.io/tilt.js/
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #jQuery #Parallax #React
@ProgrammingTip
A tiny requestAnimationFrame powered 60+fps lightweight parallax hover tilt effect for jQuery. π
Alternatives :
β’ Vanilla JS
β’ React
β’ Polymer
https://t.me/pgimg/185
[ Github ] : github.com/gijsroge/tilt.js
[ Demo ] : gijsroge.github.io/tilt.js/
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #jQuery #Parallax #React
@ProgrammingTip
Telegram
Programming Tips Resources
THE JAVASCRIPT EVENT LOOP β‘οΈ
The Event Loop is one of the most important aspects to understand about JavaScript. β¨
This post explains it in simple terms. π
https://t.me/pgimg/186
[ Article ] : kutt.it/jel
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #EventLoop
@ProgrammingTip
The Event Loop is one of the most important aspects to understand about JavaScript. β¨
This post explains it in simple terms. π
https://t.me/pgimg/186
[ Article ] : kutt.it/jel
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #EventLoop
@ProgrammingTip
Telegram
Programming Tips Resources
Auto Rest β¨
OpenAPI (f.k.a Swagger) Specification code generator. π
Supports C#, Go, Java, Node.js, TypeScript, Python, Ruby and PHP. π₯
The AutoRest tool generates client libraries for accessing RESTful web services. β‘οΈ
Input to AutoRest is a spec that describes the REST API using the OpenAPI Specification format. β
https://t.me/pgimg/187
[ Introduction ] : kutt.it/ares
[ Github ] : github.com/Azure/autorest
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Rest #API #OpenAPI #Swagger
@ProgrammingTip
OpenAPI (f.k.a Swagger) Specification code generator. π
Supports C#, Go, Java, Node.js, TypeScript, Python, Ruby and PHP. π₯
The AutoRest tool generates client libraries for accessing RESTful web services. β‘οΈ
Input to AutoRest is a spec that describes the REST API using the OpenAPI Specification format. β
https://t.me/pgimg/187
[ Introduction ] : kutt.it/ares
[ Github ] : github.com/Azure/autorest
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Rest #API #OpenAPI #Swagger
@ProgrammingTip
Telegram
Programming Tips Resources