Moved to https://api.fmhy.net
<!-- | |
When an input element gets focused, iOS Safari tries to put it in the center by scrolling (and zooming.) | |
Zooming can be easily disabled using a meta tag, but the scrolling hasn't been quite easy. | |
The main quirk (I think) is that iOS Safari changes viewport when scrolling; i.e., toolbars shrink. | |
Since the viewport _should_ change, it thinks the input _will_ move, so it _should_ scroll, always. | |
Even times when it doesn't need to scroll—the input is fixed, all we need is the keyboard— | |
the window always scrolls _up and down_ resulting in some janky animation. | |
However, iOS Safari doesn't scroll when the input **has opacity of 0 or is completely clipped.** |
Live Table: https://diafygi.github.io/webcrypto-examples/
I couldn't find anywhere that had clear examples of WebCryptoAPI, so I wrote examples and made a live table with them. Pull requests welcome!
- generateKey | importKey |
import UIKit | |
@UIApplicationMain | |
class AppDelegate: UIResponder, UIApplicationDelegate { | |
var window: UIWindow? | |
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { | |
let window = UIWindow(frame: UIScreen.main.bounds) |
# /etc/nsmb.conf - macOS 11.3 - 2021-04-29 | |
#------------------------------------------------------------------------------ | |
# SMB configuration for macOS 11.3 <-> Synology | |
#------------------------------------------------------------------------------ | |
# Additional information: | |
# ----------------------- | |
# https://support.apple.com/de-de/HT211927 | |
# https://support.apple.com/en-us/HT208209 | |
# https://apple.stackexchange.com/questions/309016/smb-share-deadlocks-since-high-sierra | |
# https://photographylife.com/afp-vs-nfs-vs-smb-performance |
import produce from 'immer'; | |
import {createStore} from 'redux'; | |
const handleActions = (actionsMap, defaultState) => ( | |
state = defaultState, | |
{type, payload} | |
) => | |
produce(state, draft => { | |
const action = actionsMap[type]; | |
action && action(draft, payload); |
package main | |
import ( | |
"crypto/aes" | |
"crypto/cipher" | |
"crypto/rand" | |
"crypto/sha256" | |
"encoding/hex" | |
"fmt" | |
"strings" |
- Proposal: SE-XXXX
- Authors: Chris Lattner, Joe Groff
Modern Cocoa development involves a lot of asynchronous programming using closures and completion handlers, but these APIs are hard to use. This gets particularly problematic when many asynchronous operations are used, error handling is required, or control flow between asynchronous calls gets complicated. This proposal describes a language extension to make this a lot more natural and less error prone.
This paper introduces a first class Coroutine model to Swift. Functions can opt into to being async, allowing the programmer to compose complex logic involving asynchronous operations, leaving the compiler in charge of producing the necessary closures and state machines to implement that logic.
// Spec http://www.ecma-international.org/ecma-262/6.0/#sec-json.stringify | |
const replacer = (key, value) => | |
value instanceof Object && !(value instanceof Array) ? | |
Object.keys(value) | |
.sort() | |
.reduce((sorted, key) => { | |
sorted[key] = value[key]; | |
return sorted | |
}, {}) : | |
value; |