Charts are from different sources and thus colors are inconsistent, please carefully read the chart's legends.
Like this? Check React Native vs Flutter: https://gist.github.com/tkrotoff/93f5278a4e8df7e5f6928eff98684979
Charts are from different sources and thus colors are inconsistent, please carefully read the chart's legends.
Like this? Check React Native vs Flutter: https://gist.github.com/tkrotoff/93f5278a4e8df7e5f6928eff98684979
import { ReadonlyDeep } from 'type-fest'; | |
/** | |
* Deeply freezes an object by recursively freezing all of its properties. | |
* | |
* - https://gist.github.com/tkrotoff/e997cd6ff8d6cf6e51e6bb6146407fc3 | |
* - https://stackoverflow.com/a/69656011 | |
* | |
* FIXME Should be part of Lodash: https://github.com/Maggi64/moderndash/issues/139 | |
* |
// https://gist.github.com/tkrotoff/b0b1d39da340f5fc6c5e2a79a8b6cec0 | |
// WTF! | |
// parseFloat('-0') => -0 vs parseFloat(-0) => 0 | |
// -0 === 0 => true vs Object.is(-0, 0) => false | |
const minus0Hack = (value: number) => (Object.is(value, -0) ? '-0' : value); | |
export const operators: { | |
[operator: string]: | |
| { |
// https://gist.github.com/tkrotoff/f3f36926edeeb3f4ce4411151bde37b2 | |
// Exported for testing purposes only | |
// https://stackoverflow.com/a/45736131 | |
export function getNumberWithDecimalPlaces(num: number, decimalPlaces: number) { | |
const power = 10 ** decimalPlaces; | |
return Math.floor(num * power) / power; | |
} | |
type GetRandomNumberOptions = { |
# See Remove default Apps from Windows 10 https://thomas.vanhoutte.be/miniblog/delete-windows-10-apps/ | |
# See Debloat Windows 10 https://github.com/W4RH4WK/Debloat-Windows-10 | |
# Command line to list all packages: Get-AppxPackage -AllUsers | Select Name, PackageFullName | |
Get-AppxPackage Microsoft.Windows.ParentalControls | Remove-AppxPackage | |
Get-AppxPackage Windows.ContactSupport | Remove-AppxPackage | |
Get-AppxPackage Microsoft.Xbox* | Remove-AppxPackage | |
Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage # Mail and Calendar | |
#Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage | |
Get-AppxPackage Microsoft.WindowsCamera | Remove-AppxPackage |
The right question is: is there added value in reinventing the wheel? (button, form controls, badge, card, spinner, modal...). The existing wheels will probably ride better than yours.
I would go with vanilla Bootstrap (just the Sass part, not the JS part).
Bootstrap CSS utilities are very nice: same principles as Tailwind CSS.
/* eslint-disable unicorn/no-null */ | |
/* | |
* Resetting window.location between tests is unfortunately a hard topic with JSDOM. | |
* | |
* https://gist.github.com/tkrotoff/52f4a29e919445d6e97f9a9e44ada449 | |
* | |
* FIXME JSDOM leaves the history in place after every test, so the history will be dirty. | |
* Also its implementations for window.location and window.history are lacking. | |
* - https://github.com/jsdom/jsdom/blob/22.1.0/lib/jsdom/living/window/Location-impl.js |
Charts are from different sources and thus colors are inconsistent, please carefully read the chart's legends.
Like this? Check React vs others https://gist.github.com/tkrotoff/b1caa4c3a185629299ec234d2314e190
https://insights.stackoverflow.com/trends?tags=flutter%2Creact-native
#!/usr/bin/env sh | |
# Warns about Git staged binary files | |
# https://gist.github.com/tkrotoff/dc49a8e501b6fdea5a4b66301f7682fc | |
# Capture the output of "git diff" in a temporary file | |
tmpfile=$(mktemp) | |
# https://stackoverflow.com/q/28109520 | |
git diff -z --staged --name-only --diff-filter=ACMR > "$tmpfile" |
/** | |
* Writes an error message to the console if the assertion is false. | |
* | |
* If the assertion is true, nothing happens. | |
* | |
* If your code only runs in Node.js, prefer `import { strict as assert } from 'node:assert'` | |
* because it throws. | |
* | |
* https://gist.github.com/tkrotoff/1a216f376cb4fba5bc7d8b5109c3a32e | |
* https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/#assertion-functions |