Instead of checks like:
if (value === null) {
throw new Error("missing value")
}
doSomethingThatNeedsValue(value)
pragma solidity ^0.7.0; | |
library bytesSwap { | |
function bytes32ToString(bytes32 _bytes32) public pure returns (string memory) { | |
uint8 i = 0; | |
while(i < 32 && _bytes32[i] != 0) { | |
i++; | |
} | |
bytes memory bytesArray = new bytes(i); |
These use separate document structures instead of HTML, some are more modular libraries than full editors
Short version: I strongly do not recommend using any of these providers. You are, of course, free to use whatever you like. My TL;DR advice: Roll your own and use Algo or Streisand. For messaging & voice, use Signal. For increased anonymity, use Tor for desktop (though recognize that doing so may actually put you at greater risk), and Onion Browser for mobile.
This mini-rant came on the heels of an interesting twitter discussion: https://twitter.com/kennwhite/status/591074055018582016
/** | |
* Fancy ID generator that creates 20-character string identifiers with the following properties: | |
* | |
* 1. They're based on timestamp so that they sort *after* any existing ids. | |
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs. | |
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly). | |
* 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the | |
* latter ones will sort after the former ones. We do this by using the previous random bits | |
* but "incrementing" them by 1 (only in the case of a timestamp collision). | |
*/ |
// Run this script when using InDesign for web/mobile/tablet comps | |
// Calculates zoom based on 72ppi, so 100% shows pixel-perfect sizing | |
app.generalPreferences.customMonitorPpi = 72; | |
app.generalPreferences.useCustomMonitorResolution = true; |
<?php | |
class kirbytextExtended extends kirbytext { | |
function __construct($text, $markdown=true) { | |
parent::__construct($text, $markdown); | |
// define custom tags | |
$this->addTags('figure'); |
<?php | |
class kirbytextExtended extends kirbytext { | |
function __construct($text, $markdown=true) { | |
parent::__construct($text, $markdown); | |
$this->addTags('thumb'); | |
$this->addAttributes('crop', 'quality'); | |
/** | |
* Vertical centering with Flexbox + margin fallback | |
* Lea Verou & David Storey | |
*/ | |
html, body { height: 100%; } | |
body { | |
width: 100%; /* needed for FF */ | |
margin: 0; |
MacOSX has a truly global path setting that precedes any other setting like ~/.bash_profile
.
The file /private/etc/paths
is a list of pathnames. The order from top to bottom defines the resulting order in the $PATH
variable.
After loading /private/etc/paths
there is a directory /private/etc/paths.d/
with files in the same style. Those are appended to the $PATH variable.
The default content of /private/etc/paths
looks like this:
/usr/bin
/bin