Skip to content

Instantly share code, notes, and snippets.

View nxpatterns's full-sized avatar
🍀
I will always be polite to you, even if you're not; you can at most be blocked.

Enterprise Software Architecture nxpatterns

🍀
I will always be polite to you, even if you're not; you can at most be blocked.
View GitHub Profile
@nxpatterns
nxpatterns / preventDDOS.ts
Created January 26, 2022 07:52 — forked from LironHazan/preventDDOS.ts
Doron Sever's snippet for rxjs post
private myStream = new Subject();
private myStream$ = this.myStream.asObservable();
ngOnInit() {
// Will only fire after 100 ms.
this.myStream$
.pipe(auditTime(100))
.subscribe(e => console.log('will only fire after 100 miliseconds');
@nxpatterns
nxpatterns / registerTransitionEnd.ts
Created January 26, 2022 07:50 — forked from LironHazan/registerTransitionEnd.ts
Amir Baraks's registerTransitionEnd used in an Angular directive for rxjs blog post
registerTransitionEnd<T extends {propertyName}>(el: FromEventTarget<T>, propName: string) {
// Returns an Observable from DOM event
fromEvent(el, 'transitionend')
.pipe(
filter(({ propertyName }: T) => propertyName === propName) // Will only emit value for the wanted css prop name e.g. height
)
.subscribe((_) => {
this.transitionEnd.emit();
});
}
@nxpatterns
nxpatterns / close-that-stream-if-no-need.ts
Created January 26, 2022 07:49 — forked from LironHazan/close-that-stream-if-no-need.ts
Irena's stop fetching recipe - for rxjs blog post
private unsubscribeDataFetch: Subject<void> = new Subject<void>();
// polling data till we get what we need and stop
fetchData() {
this.dataService
.pipe(takeUntil(this.unsubscribeDataFetch))
.subscribe((data) => actOnData(data));
}
actOnData(data) {

some tools for diagrams in software documentation

Diagrams For Documentation

Obvious Choices

ASCII

@nxpatterns
nxpatterns / main.go
Created May 21, 2021 20:38 — forked from filewalkwithme/main.go
Listening multiple ports on golang http servers (using http.Handler)
package main
import (
"net/http"
)
func main() {
go func() {
http.ListenAndServe(":8001", &fooHandler{})
}()
@nxpatterns
nxpatterns / .zshrc
Created January 13, 2021 15:37
Enhance your terminal with zsh and Prezto
#
# Executes commands at the start of an interactive session.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Source Prezto.
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
@nxpatterns
nxpatterns / whitelist.md
Created November 26, 2020 21:13 — forked from kivikakk/whitelist.md
HTML sanitizer whitelist for user content on GitHub.com
  • Any allowed id and name attributes have "user-content-" prefixed to their value.
  • A maximum of 2 nested sub or sup tags are allowed.
  • A maximum of 10 nested ul or ol tags are allowed.
Allowed Element Allowed Attributes
All allowed elements abbr, accept, accept-charset, accesskey, action, align, alt, axis, border, cellpadding, cellspacing, char, charoff, charset, checked, clear, color, cols, colspan, compact, coords, datetime, dir, disabled, enctype, for, frame, headers, height, hreflang, hspace, id, ismap, itemprop, label, lang, maxlength, media, method, multiple, name, nohref, noshade, nowrap, open, prompt, readonly, rev, rows, rowspan, rules, scope, selected, shape, size, span, start, summary, tabindex, title, type, usemap, valign, value, vspace, width
a As above plus href (must be github-mac, github-windows, http,
@nxpatterns
nxpatterns / CouchDB_Python.md
Created November 12, 2020 19:25 — forked from marians/CouchDB_Python.md
The missing Python couchdb tutorial

This is an unofficial manual for the couchdb Python module I wish I had had.

Installation

pip install couchdb

Importing the module

@nxpatterns
nxpatterns / introrx.md
Created November 7, 2020 16:42 — forked from staltz/introrx.md
The introduction to Reactive Programming you've been missing
@nxpatterns
nxpatterns / csv.pegjs
Created July 26, 2020 15:23 — forked from trevordixon/csv.pegjs
Javascript CSV Parser generated by PEG.js
{
var separator = ',';
}
start
= comma
comma
= & { return separator = ','; } sv:sv { return sv; }