By Senko-san, SlejmUr, King and Chomp.
This is a rough documentation of EFT's server endpoints, data and how it's processed. This includes historical data and background information relevant to make EFT's "offline raid" actually function offline.
| import asyncio | |
| import argparse | |
| import random | |
| from typing import Any | |
| async def worker(name: str, queue: asyncio.Queue[str], stop_event: asyncio.Event): | |
| while not stop_event.is_set() or not queue.empty(): | |
| try: | |
| # Try to get an item from the queue without indefinitely blocking | |
| try: |
| In the middle of a Zoom call my audio in/out devices changed to “Microsoft Teams Audio Devices”, despite no longer having Microsoft Teams installed. | |
| It turns out Teams leaves its audio driver on your system running, and it occasionally decides to make itself the default. | |
| I had to delete: /Library/Audio/Plug-Ins/HAL/MSTeamsAudioDevice.driver in the end to fix it: | |
| sudo rm -rf /Library/Audio/Plug-Ins/HAL/MSTeamsAudioDevice.driver | |
| https://forums.macrumors.com/threads/how-to-uninstall-core-audio-driver-msteamsaudiodevice-driver.2344450/ |
| CREATE DATABASE jpworgen; | |
| CREATE TABLE IF NOT EXISTS jpworgen.ActiveItems | |
| ( | |
| UpdateTime DateTime('UTC') CODEC (DoubleDelta), | |
| ScanTime DateTime('UTC'), | |
| RealmId UInt16, | |
| Namespace LowCardinality(String), | |
| Faction Enum8('Alliance' = 0, 'Horde' = 1), | |
| AuctionId UInt32, |
| -- This example will configure an anchor to display the first private aura that | |
| -- gets applied to the player. | |
| -- | |
| -- Multiple calls for the same aura index can be made. This will in effect | |
| -- create multiple distinct displays for the same aura index. | |
| local AuraFrame1 = CreateFrame("Frame", UIParent); | |
| AuraFrame1:SetPoint("CENTER"); | |
| AuraFrame1:SetSize(48, 48); |
This isn't a guide about locking down homebrew so that it can't touch the rest of your system security-wise.
This guide doesn't fix the inherent security issues of a package management system that will literally yell at you if you try to do something about "huh, maybe it's not great my executables are writeable by my account without requiring authorization first".
But it absolutely is a guide about shoving it into its own little corner so that you can take it or leave it as you see fit, instead of just letting the project do what it likes like completely taking over permissions and ownership of a directory that might be in use by other software on your Mac and stomping all over their contents.
By following this guide you will:
sudo to forcefully change permissions of some directory to be owned by your account| class myweb::sites::wiki_example_com { | |
| wiki_base = '/var/www/sites/wiki.example.com' | |
| include ::profile::gitconfig | |
| profile::gitconfig::safe_directory {"${wiki_base}/code/mediawiki-1.35-LTS":} | |
| vcsrepo { "${wiki_base}/code/mediawiki-1.35-LTS/": | |
| ensure => latest, | |
| provider => git, | |
| source => 'git@gitlab.example.com:wiki/mediawiki-1.35-LTS.git', |
In these two files if you change getToken{slow,fast}'s passed value (just add a random letter anywhere) you'll see that the fast version is getting type checked about 3x to 5x faster than the slow one.
I'm not sure why using key remapping and using keyof {} is about 3x to 5x faster when doing type checking.
My guess is that in the slow version is using index access with the {}[keyof Theme] which is generally slower?
A metatable in Lua defines various extraneous behaviors for a table when indexed, modified, interacted with, etc. They are Lua's core metaprogramming feature; most well known for being useful to emulate classes much like an OOP language.
Any table (and userdata) may be assigned a metatable. You can define a metatable for a table as such:
-- Our sample table
local tab = {}
-- Our metatable
local metatable = {
-- This table is then what holds the metamethods or metafields| module.exports = async function (context, req) { | |
| context.log('JavaScript HTTP trigger function processed a request.'); | |
| const name = (req.query.name || (req.body && req.body.name)); | |
| const responseMessage = name | |
| ? "Hello, " + name + ". This HTTP triggered function executed successfully." | |
| : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."; | |
| context.res = { | |
| // status: 200, /* Defaults to 200 */ |