let is just an expression and akin to a function!
let greeting = hello
let greeting = "hi"; /* shadowed */
let scoped = {
{ pkgs, config, lib, ... }: | |
let | |
packet-block-storage = | |
pkgs.stdenv.mkDerivation { | |
name = "packet-block-storage"; | |
src = pkgs.fetchFromGitHub { | |
owner = "packethost"; | |
repo = "packet-block-storage"; | |
rev = "4be27cbca7a924b4de7af059d5ac30c2aa5c9e6f"; |
let is just an expression and akin to a function!
let greeting = hello
let greeting = "hi"; /* shadowed */
let scoped = {
Not a pretty sight | |
When the web dies screaming loud | |
The site is not found. | |
Morning and sorrow | |
404 not with us now | |
Lost to paradise. | |
We're going to take a look at an alternative way to define a Zipper Comonad | |
over a data type. Typically one would define a Zipper Comonad by defining a new | |
datatype which represents the Zipper; then implementing `duplicate` and | |
`extract` for it. `extract` is typically straightforward to write, but I've had | |
some serious trouble writing `duplicate` for some more complex data-types like | |
trees. | |
We're looking at a different way of building a zipper, The advantages of this | |
method are that we can build it up out of smaller instances piece by piece. | |
Each piece is a easier to write, and we also gain several utility functions |
<?xml version="1.0" encoding="UTF-8"?> | |
<keymap> | |
<FullscreenVideo> | |
<keyboard> | |
<l mod="ctrl">AudioNextLanguage</l> | |
</keyboard> | |
</FullscreenVideo> | |
<VideoMenu> | |
<keyboard> | |
<l mod="ctrl">AudioNextLanguage</l> |
alias accio=wget | |
alias avadaKedavra='rm -f' | |
alias imperio=sudo | |
alias priorIncantato='echo `history |tail -n2 |head -n1` | sed "s/[0-9]* //"' | |
alias stupefy='sleep 5' | |
alias wingardiumLeviosa=mv | |
alias sonorus='set -v' | |
alias quietus='set +v' |
#!/bin/bash | |
# | |
# rotate_desktop.sh | |
# | |
# Rotates modern Linux desktop screen and input devices to match. Handy for | |
# convertible notebooks. Call this script from panel launchers, keyboard | |
# shortcuts, or touch gesture bindings (xSwipe, touchegg, etc.). | |
# | |
# Using transformation matrix bits taken from: | |
# https://wiki.ubuntu.com/X/InputCoordinateTransformation |
// Short module explanation // Something to gather my thoughts | |
// // I think this looks cool. | |
// | |
module.exports = the_exported_function // Modules are a function. Always. | |
// | |
module.exports.extra = extra // Additional API entry points if | |
module.exports.other = other // desired. | |
// | |
var util = require('util') // Other packages from npm or core | |
var assert = require('assert') // No comma-first due to lots of |
com -d "Delete duplicate tabs" tabcloseduplicates,tabclosed -js let seen={},vtabs=tabs.visibleTabs,i=vtabs.length;while(i--){let loc=vtabs[i].linkedBrowser.contentDocument.location.href||"";if(Object.prototype.hasOwnProperty.call(seen, loc)){config.tabbrowser.removeTab(vtabs[i]);}else{seen[loc]=true;}} |
var user = { | |
validateCredentials: function (username, password) { | |
return ( | |
(!(username += '') || username === '') ? { error: "No Username Given.", field: 'name' } | |
: (!(username += '') || password === '') ? { error: "No Password Given.", field: 'pass' } | |
: (username.length < 3) ? { error: "Username is less than 3 Characters.", field: 'name' } | |
: (password.length < 4) ? { error: "Password is less than 4 Characters.", field: 'pass' } | |
: (!/^([a-z0-9_-]+)$/i.test(username)) ? { error: "Username contains invalid characters.", field: 'name' } | |
: false | |
); |