Map [1]
Operation | Time Complexity |
---|---|
Access | O(log n) |
Search | O(log n) |
Insertion | O(n) for <= 32 elements, O(log n) for > 32 elements [2] |
Deletion | O(n) for <= 32 elements, O(log n) for > 32 elements |
#!/bin/bash | |
# Attempt to set up the Nvidia GeForce GT 710 on a Pi CM4. | |
# | |
# I have tried both armv7l and aarch64 versions of the proprietary driver, in | |
# addition to the nouveau open source driver (which needs to be compiled into | |
# a custom Raspberry Pi kernel). | |
# | |
# tl;dr - None of the drivers worked :P |
const MAX_WIDTH = process.env.PHOTO_MAX_WIDTH || 800; | |
const QUALITY = process.env.PHOTO_QUALITY || 0.9; | |
const readPhoto = async (photo) => { | |
const canvas = document.createElement('canvas'); | |
const img = document.createElement('img'); | |
// create img element from File object | |
img.src = await new Promise((resolve) => { | |
const reader = new FileReader(); |
I was drawn to programming, science, technology and science fiction | |
ever since I was a little kid. I can't say it's because I wanted to | |
make the world a better place. Not really. I was simply drawn to it | |
because I was drawn to it. Writing programs was fun. Figuring out how | |
nature works was fascinating. Science fiction felt like a grand | |
adventure. | |
Then I started a software company and poured every ounce of energy | |
into it. It failed. That hurt, but that part is ok. I made a lot of | |
mistakes and learned from them. This experience made me much, much |
This document outlines how to model a common organization-based permission system in Hasura. Let's assume that you have some table structure like the following:
Table Name | Columns | Foreign Keys |
---|---|---|
User | id, name, email | |
Organization User | id, user_id, organization_id | user_id -> user.id, organization_id -> organization.id |
Organization | id, name |
/** | |
* Example script to change amplify cli-generated cloudformation stack to support a graphql interface. See https://github.com/aws-amplify/amplify-cli/issues/202. | |
* Run this before every amplify push command (e.g. create your own bash script that does something like: amplify api gql-compile && node ./scripts/modifyAmplifyCF.js && ./amplify/backend/api/<your_app_name>/build/cloudformtion-template.json && amplify push --no-gql-override) | |
* Everytime you run amplify api gql-compile, the cloudformation files will be overwritten and this script would need to be run again. | |
* | |
* As an example for this script, it assumes you have a custom User table built (through custom stacks - User.json for the AppSync resolvers and UserTable.json for the dynamodb table) and a Doctor and Patient model that implement this interface, e.g. | |
* | |
* interface User { | |
* id: ID! | |
*. email: AWSEmail! |
I've recently ran into a pitfall of [React.memo()
][memo] that seems generally overlooked; skimming over the top results in Google just finds it mentioned in passing in a [React issue][regit], but not in the [FAQ] or API [overview][react-api], and not in the articles that set out to explain React.memo()
(at least the ones I looked at). The issue is specifically that nesting children defeats memoization, unless the children are just plain text. To give a simplified code example:
const Memoized = React.memo(({ children }) => (<div>{children}</div>));
// Won't ever re-render
<Memoized>bar</Memoized>
// Will re-render every time; the memoization does nothing
The first post has been published: https://www.swyx.io/writing/cloud-distros
The second post has been adapted for Temporal: https://www.swyx.io/why-temporal/
these are bullet points of a blogpost on a topic i know very little about but i feel like there is something there that is happening as we speak
function getLocalISOString(date) { | |
const offset = date.getTimezoneOffset() | |
const offsetAbs = Math.abs(offset) | |
const isoString = new Date(date.getTime() - offset * 60 * 1000).toISOString() | |
return `${isoString.slice(0, -1)}${offset > 0 ? '-' : '+'}${String(Math.floor(offsetAbs / 60)).padStart(2, '0')}:${String(offsetAbs % 60).padStart(2, '0')}` | |
} |
import React, { useState, useEffect, createContext, useContext, ReactNode } from 'react' | |
import Amplify, { Auth, Hub } from 'aws-amplify' | |
import { CognitoUser } from '@aws-amplify/auth' | |
import { CognitoUserSession } from 'amazon-cognito-identity-js' | |
import { HubCallback } from '@aws-amplify/core/lib/Hub' | |
import IUser from '../../types/IUser' | |
interface IAuthContext { | |
user: IUser | null | |
login(username: string, password: string): Promise<CognitoUser> |