telepresence

joined 1 year ago
[–] [email protected] 1 points 1 month ago

read the book 'never split the difference' it's by a former hostage negotiator. interesting stuff.

[–] [email protected] 1 points 1 month ago

dungeon cards, shattered pixel dungeon, or just read manga

[–] [email protected] 0 points 7 months ago (1 children)

lemmy devs/tchncs admins might be interested in cloudflare turnstile, captcha replacement which doesen't involve solving a puzzle. iirc it runs some proof-of-work and sometimes requries you to check a single checkbox.

 

i made a type-safe GroupBy function.

/**
 * Groups array of objects by a given key
 * @param arr array of objects to group
 * @param key must be present on every object, and it's values must be string|number
 * @author telepresence
 * @license CC-BY-4.0
 */
function groupBy(arr: T[], key: keyof T, defaultAcc: Record = {}) {
    return arr.reduce((acc, val, i) => {
        const compValue = val[key];
        if (typeof compValue !== 'string' && typeof compValue !== 'number') {
            throw new Error(`key ${key.toString()} has values other than string/number. can only group by string/number values`);
        }
        if (!acc[compValue]) acc[compValue] = []
        acc[compValue].push(val);
        return acc;
    }, defaultAcc);
}
  • like lodash's groupBy, but by key and not function
    • group an array of objects which all have a key in common into an object with keys matching all the different possible values of your common key
  • type-safe, no unknown's no any's
  • does not copy arrays ([...array]), uses push
  • supports selecting by keys, where the key values are string / number (although you can easily add symbol support)
  • shared for free under the CC BY 4.0 license - only attribution is requred (link to this post is fine)
  • custom default accumulator support, if you already know the groups beforehand and would rather have an empty array than undefined.

example:

const data = [{
  "name": "jim",
  "color": "blue",
  "age": "22"
}, {
  "name": "Sam",
  "color": "blue",
  "age": "33"
}, {
  "name": "eddie",
  "color": "green",
  "age": "77"
}];

groupBy(data, 'color') 

would result into:

{
  "blue": [
    {
      "name": "jim",
      "color": "blue",
      "age": "22"
    },
    {
      "name": "Sam",
      "color": "blue",
      "age": "33"
    }
  ],
  "green": [
    {
      "name": "eddie",
      "color": "green",
      "age": "77"
    }
  ]
} 

TL;DR i've sucessfully wrote something using generics in typescript for the first time, and i think it's pretty epic.

[–] [email protected] 6 points 1 year ago

Polyphia, Casiopea (Mint Jams album)

[–] [email protected] 1 points 1 year ago

based based based i love this keyboard and your site too

[–] [email protected] 1 points 1 year ago (1 children)

from the error it looks like you're importing an es module inside a common.js environment. but as @[email protected] said, there are several things that could cause this.

[–] [email protected] 8 points 1 year ago (1 children)

these two tools apparently let you rip borrowed audiobooks from this service named libby. although i haven't tested them. https://github.com/ping/odmpy https://github.com/bookbonobo/libby-download-extension

also, have you checked the index? stuff like this is usually there.

[–] [email protected] 7 points 1 year ago (1 children)

good call asking for a proper venue to test this, but how do you mean you can't remove federated stuff? i was under the impression (from lemmy's homepage) that one of the features is 100% complete deletion by replacing post/comment content with 'removed by user'. is this not the case?

[–] [email protected] 12 points 1 year ago (1 children)

Check out some alternatives:
searXNG - open source & self-hosted meta-search engine (aggregates results from many others, like google, bing, qwant, duckduckgo - configurable which ones.) list of public instances just pick one that's close to you physically and has a good uptime.
duckduckgo - uses bing for most search results, but is way more private
brave search - uses their own index, has a privacy-respecting privacy policy and the results are pretty damn good

2
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 

Banger i found randomly when checking the twitter of one of my favorite artists, @xyanaid. They made the album cover.

edit: Spotify link

[–] [email protected] 2 points 1 year ago (1 children)

fyi, lemmy doesen't have sublemmies, but communities. that's why the url is instance/c/community or yourinstance/c/community@instance

[–] [email protected] 6 points 1 year ago (2 children)

spent a few hours yesterday sorting all of my subscriptions and moving them to newpipe. while having everything auto-backed up by google was convenient, newpipe is much better - i go in, watch some videos i saved into a playlist or that have come out from subscribed channels, then go out. it feels way better then being sucked in by the algorithm. i think i'll still use youtube's algorithm on my pc sometimes, as this setup hinders new content discovery. but overall, i'm really pleased so far with the new setup.

view more: next ›