Sign in

Mr Anxiety

@mranxiety.bsky.social
116 followers 102 following 377 posts

I'm scared to post as me on the internet, realised it was making me shy IRL. So I'm trying this to overcome that. Maintains a series of loosely connected Spreadsheets for a living while studying programming.

PostsRepliesMedia
Mr Anxiety @mranxiety.bsky.social · 05/10/2025
Live feed of me logging into BlueSky for the first time in a while.
media.tenor.com
a man in a suit is carrying a stack of pizza boxes into a doorway .
Alt: a man in a suit is carrying a stack of pizza boxes into a doorway, the room is on fire. It's the GIF version of the Community Fire Pizza Meme.
011
Mr Anxiety @mranxiety.bsky.social · 05/10/2025
It's been a minute since I logged onto BlueSky, but I'm glad some things never change. Like being greeted by an old friend: @jcsalterego.bsky.social Also whoo! Post saving! Thank you 📌 for your service.
A screenshot of the pop up notification in the BlueSky app announcing the ability to save posts.

The example post in the announcement is from Jerry because of course it is.
140
Mr Anxiety @mranxiety.bsky.social · 11/07/2025
"I write process documents" - lame - unoriginal - sound like a boring person "I inscribe warding rituals of bureaucracy" - mysterious - powerful - sound like a mystic
010
Mr Anxiety @mranxiety.bsky.social · 05/07/2025
I was a bit harsh last time when I talked about CSS. It's still not my favourite, but since I learned about flexbox and BEM I'm not suffering with it as much.
000
Mr Anxiety @mranxiety.bsky.social · 28/06/2025
But now I need to determine when to make a commit. How much, or little, do you do before making one? I get that companies and teams will have a range of different preferences and policies on this. But what's generally best practice?
000
Mr Anxiety @mranxiety.bsky.social · 28/06/2025
Finished the Git section of Knowely. Commits and PRs make a lot more sense. I used to make huge commits with long messages. I didn't understand the point of a PR, at least on a solo project. But now I understand what I was doing was one level off. I was treating commits like a PR.
100
Mr Anxiety @mranxiety.bsky.social · 25/06/2025
Properly learning git now. Until now, everything I've done with version control was using the GitHub desktop app and the website. Tinkering with getting Git Bash in just the right colour feels like the CLI version of spending heaps of time in the character creator of an RPG.
000
Mr Anxiety @mranxiety.bsky.social · 25/06/2025
Why is this a controversial take? The general discourse, and my own experience, around using LLMs to code is this is the best way to use it. That being said, most of that aforementioned discourse I read is from you and your contemporaries so maybe I'm just in a bubble... a piss bubble?
010
Reposted by Mr Anxiety
Todd Jackson @tdjacks.bsky.social · 22/06/2025
A relaxing evening shooting some nice puffy clouds over the ocean.
0352
Mr Anxiety @mranxiety.bsky.social · 22/06/2025
I remember watching a flash animation using a parody of this song called "Bomb Saddam" at an internet cafe when I was a kid. I get history repeats itself but couldn't we have left it another century?
000
Reposted by Mr Anxiety
Safely Endangered @safelyendangered.bsky.social · 20/06/2025
436438
Mr Anxiety @mranxiety.bsky.social · 20/06/2025
I don't care about fiddling with a margin by 1 or 2 pixels so it looks nice on an iPhone or a Desktop, or what colour a link is when I hover my mouse over it.
000
Mr Anxiety @mranxiety.bsky.social · 20/06/2025
I finished all the Javascript stuff on Knowely that I'm up to and now I'm working my way through CSS and it's a drag. It's not hard, it's providing more of a challenge than other CSS tutorials, but it's just not fun to write and the output is not satisfying.
100
Mr Anxiety @mranxiety.bsky.social · 06/06/2025
I thought one of the unit tests was wrong, and with my interpretation of the requirement, I was right. Gemini backed me up and validated my code based on what I told it the requirement was. But taking another look at the requirement, I realised I was wrong and the unit test was right.
000
Mr Anxiety @mranxiety.bsky.social · 06/06/2025
This one involved a lot of collaboration with AI as well. It was good for sound boarding and sanity checking. But I also learned that garbage in is garbage out.
100
Mr Anxiety @mranxiety.bsky.social · 06/06/2025
I learned a ton writing this: - Error handling. - The importance of unit tests. - Using regex in a new way I'd never tried before.
function getComplementaryColor(hexColor) {
  if (hexColor.length < 6) { //Parsing numbers to the correct length
    hexColor = hexColor.padStart(6, '0');
  }

  if (hexColor.length !== 6) {
    throw new Error('incorrect string length');
  }

  if (!/^[0-9a-fA-F]{6}$/.test(hexColor)) { //Checking for non hex numbers individually.
    throw new Error('non-hex chars');
  }
  
  const r = (255 - parseInt(hexColor.slice(0, 2), 16)).toString(16).padStart(2, '0');
  const g = (255 - parseInt(hexColor.slice(2, 4), 16)).toString(16).padStart(2, '0');
  const b = (255 - parseInt(hexColor.slice(4, 6), 16)).toString(16).padStart(2, '0');

  return `#${r + g + b}`.toUpperCase();
}

/*
Write the function getComplementaryColor that:
1. Takes a string of hexColor, representing a color in hexadecimal format:
	- It can consist of numbers: 0 to 9, and letters: A to F.
	- It CANNOT contain the hash # symbol.
2. Returns the complementary color of the given hex color as a string:
	- It must contain uppercase characters only.
	- It must be preceded by the hash # symbol.

If hexColor is less than 6 characters long, pad it with zeros at the start to make up for the missing characters. Just like so:
'bc9' => '000bc9'
'' => '000000'

In case hexColor exceeds the 6 character limit or contains non-hexadecimal characters or isn't a string, the function should throw an error. For example:
getComplementaryColor('01fD08') === '#FE02F7'
getComplementaryColor('') === '#FFFFFF' // '' becomes '000000'
getComplementaryColor('a23') === '#FFF5DC' // 'a23' becomes '000a23'
getComplementaryColor('40fdEd2') // throws an error (incorrect string length)
getComplementaryColor('76ecLL') // throws an error (non-hex chars)
getComplementaryColor(293942) // throws an error (non-string type)

💡 A complementary color is a color that, when added to the original color, results in white (#FFFFFF).
*/
110
Reposted by Mr Anxiety
Engineer Brains @hhackenbecker.bsky.social · 05/06/2025
"Structural integrity is failing, Captain!" This somewhat-faulty model of the Enterprise D is a mere 8.8 µm long & made from plasticised hydrocarbon, so I'll make allowances. #StarTrek
This 8.8 µm-long model of Star Trek TNG's USS Enterprise NCC-1701-D was fabricated to one-billionth scale (shown here at 5,000x magnification) from phenanthrene gas by Takayuki Hoshino & Shinji Matsui of Himeji Institute of Technology, using a Seiko Instruments SMI9200 focused ion beam chemical-vapour deposition machine.
310615
Mr Anxiety @mranxiety.bsky.social · 05/06/2025
Despite reading over the code line by line two or three times to make sure it'll work and that I haven't missed something in my logic, I still have a moment of doubt before running it through testing. I'm not bothered if it throws an error, that's how you learn, it's more a self confidence thing.
function countNextSmaller(numbers) {
  let smallers = [];
  let count = 0;

  for (let i = 0; i < numbers.length; i++) {
    if (i != numbers.length - 1) { //Check the last number in the array seperately, because i < undefined = false
      for (let num of numbers.slice(i + 1)) {
        if (num < numbers[i]) {
          count++;
        }
      }
      smallers.push(count);
      count = 0; //Reset counter for next index
    } else { //After the end of the array, there is nothing, so nothing is smaller
      smallers.push(0);
    }
  }

  return smallers;
}

/* 
Create the function countNextSmaller that:
- Takes an array of numbers as input.
- Returns a new array where each element represents how many numbers to the right of the current number are smaller than it.

For instance, given the array [1, 2, 0]:
- For 1, there's one element to the right (0) that is smaller, so we get 1.
- For 2, there's also one smaller element to the right (0), resulting in 1.
- For 0, there are no elements to the right, so we get 0.
- Therefore, the result for this array is [1, 1, 0].
*/
010
Mr Anxiety @mranxiety.bsky.social · 03/06/2025
FIRST TRY! This is the first function I've written that passes its unit tests on the first run. Usually I do a little debugging, I've misunderstood how a method works or I'm off by one somewhere. But with this, I had a good enough understanding of strings and arrays to make it work.
function getProductId(url) {
  return url.slice(url.lastIndexOf('p')).split('-')[1];
}

/* Create the function getProductId that extracts the product ID from a given product page URL in your online shop. 

Here's how the URLs are structured:
- The domain exampleshop.com comes first.
- Next is the product name, where words are separated by dashes (-).
- A letter p follows, marking the start of the product ID.
- The product ID itself comes next (its length can vary).
- Lastly, there's an 8-digit date (format: ddmmyyyy) indicating when the product was added, followed by .html.
The function should return the product ID as a string.

A few examples:
- exampleshop.com/fancy-coffee-cup-p-90764-12052019.html >> productID is 90764

- exampleshop.com/dry-water-just-add-water-to-get-water-p-147-24122017.html >> productID is 147

- exampleshop.com/public-toilet-proximity-radar-p-942312798-01012020.html >> productID is 942312798

Keep in mind:
- The product name might also include the letter p and digits.
- Make sure your function returns the product ID as a string.
- All provided URLs will follow the format described above. */
000
Mr Anxiety @mranxiety.bsky.social · 26/05/2025
Up next, I think I'll tackle their coding foundations course. I'm getting practice with code in other places. I think in order to progress beyond where I am, I need to put some work into the broader Computer Science side of my learning.
000
Mr Anxiety @mranxiety.bsky.social · 26/05/2025
I did it more because I had to and less because I wanted to. There's some really cool things you can do with CSS, it's just less fun to write than JavaScript.
A course completion certificate from SoloLearn stating that Mr Anxiety has successfully completed the Introduction to CSS course.
100
Reposted by Mr Anxiety
nornoe @nornoe.bsky.social · 25/05/2025
it is now possible for you to login while modifying my avatar! it will allow you to "sign" it with your handle, and be forever remembered as a true artist in my avatar gallery 🧑‍🎨 try it here: avatar.nornoe.net
my avatar maker

a "logged in" section has been addedan avatar in the avatar gallery

the handle of the creator is now displayed in the info of the avatar
5213
Mr Anxiety @mranxiety.bsky.social · 20/05/2025
🟥 🟧🟧 🟩🟩🟨 🟧🟥🟥🟨 🟩🟩🟩🟩🟩 🟩🟩🟩🟩🟩🟩 Percentile: 91.38 datcreativity.com I'm not sure how to interpret the graph. So I don't know if I totally nailed it with polymorphism or completely messed it up.
A screenshot of my results from: https://www.datcreativity.com

I don't know how to interpret the graph so I don't know how to describe it other than its slightly more detailed than the emoji graph in the post.
020
Reposted by Mr Anxiety
hailey @hailey.at · 20/05/2025
a construction game trailer just gave me goosebumps. didn’t see that coming.
812116
Mr Anxiety @mranxiety.bsky.social · 18/05/2025
Yeah, I read classical literature.
Book cover of Star Trek: Log One by Alan Dean Foster.

The cover is a drawing of the Federation Starship Enterprise. Specifically the Enterprise with the registry number: NCC-1701. No bloody A, B, C, or D.
020
Mr Anxiety @mranxiety.bsky.social · 17/05/2025
Solved it! Walking away from it was 100% the best thing. I went out for a few hours and when I came back, I had it sorted in 15 minutes.
A screenshot of JavaScript, the code reads:

function calculateGuests(guestsInput) {
  const arr = guestsInput.match(/\d+/g);

  return (!arr || +arr[0] === 0) ? 'not a number' : +arr[0];
}

/*
This morning we've received a letter from the Grand Mate Hotel.

Long story short, the programmers have not changed the type of field "number of guests" in the booking form and they still receive the strings like 'Room for 4 guests, please', 'Exactly 2 people', 'Meh, I'll be alone'. Managers suffer because they are forced to process such requests manually.

Let's improve the function calculateGuests to make it look for numbers in the middle of the string guestsInput. If it is still impossible to determine the number of guests, or this number is equal to 0 - return not a number.

Requirements:

- Get only integers from string, but if there is a float number, the fraction should be omitted.
- If there are two separate integers in a string, get only the first one.

calculateGuests ('I think 5 guests') === 5
calculateGuests ('Big company of 15 dudes') === 15
calculateGuests ('5') === 5
calculateGuests ('alone') === 'not a number'
calculateGuests ('0') === 'not a number'
calculateGuests('Hello, 9.75 people') === 9
calculateGuests('There will be 7 or 9 guys') === 7
calculateGuests('hello cat walks on my keyboard ksadjfhskaj12.34kasdfhsjk') === 12
*/
000
Reposted by Mr Anxiety
Todd Jackson @tdjacks.bsky.social · 17/05/2025
A nice Saturday sunrise!
1876
Mr Anxiety @mranxiety.bsky.social · 17/05/2025
At an engagement party for a close friend and all I can think about is solving for edge cases in a function I'm writing.
100
Reposted by Mr Anxiety
alice @alice.mosphere.at · 16/05/2025
created a short script to post your now-status from the command line
#!/bin/bash
set -euo pipefail
[ -z "${1:-}" ] && { echo "Usage: $0 <status text>" >&2; exit 1; }

USER="now.alice.mosphere.at"
PASS="redacted"
CLIENT="https://deer.social"

TOKEN=$(curl -sSX POST https://bsky.social/xrpc/com.atproto.server.createSession \
  --json "{\"identifier\":\"$USER\",\"password\":\"$PASS\"}" | jq -r .accessJwt)

RESPONSE=$(curl -sSX POST https://bsky.social/xrpc/com.atproto.repo.createRecord \
  -H "Authorization: Bearer $TOKEN" \
  --json "$(jq -n --arg t "$1" --arg ts "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
    --arg user "$USER" '{
      collection: "app.bsky.feed.post",
      repo: $user,
      record: {
        text: $t,
        createdAt: $ts
      }
    }')")

if ! echo "$RESPONSE" | jq -e '.error' >/dev/null; then
    if [[ "$RESPONSE" =~ \"uri\"[[:space:]]*:[[:space:]]*\"at://([^/]+)/app.bsky.feed.post/([^\"]+)\" ]]; then
        DID="${BASH_REMATCH[1]}"
        RKEY="${BASH_REMATCH[2]}"
        echo "${CLIENT}/profile/$DID/post/$RKEY"
        exit 0
    fi
fi

echo "ERROR: $(echo "$RESPONSE" | jq -c . 2>/dev/null || echo 'Unknown error')" >&2
exit 1
2456
Mr Anxiety @mranxiety.bsky.social · 16/05/2025
Welcome friend, we have sugar free soda and low fat cheese. If it makes you feel better, it hit me when I was 18.
010
Reposted by Mr Anxiety
Norin 🦈 🔜 Designercon @mahoukarp.com · 16/05/2025
Im just a shark 🦈
Comic of a shark eating

I eat when i am....

bored...
tired...
angry....

Seal: So basically always?
Shark: Stop judging me.
81707386
Mr Anxiety @mranxiety.bsky.social · 15/05/2025
I swear I've read a @swordscomic.bsky.social about this.
000
Mr Anxiety @mranxiety.bsky.social · 14/05/2025
The AI part really was a collaboration, I suggested some code, AI suggested some code, and together we were able to refine it. You definitely have to check it's work, a suggested refactor included the new code alongside the part that was now totally redundant because of that same refactor.
A screenshot of a chat log from Gemini. The text reads:

So, /\s+/ will split the string at any occurrence of one or more whitespace characters. This is more robust than simply splitting by a single space (' ') because it handles cases with multiple spaces, tabs, newlines, and other whitespace characters between the numbers.

Here's how it would look in your maxAndMin function:
JavaScript
function maxAndMin(numbersString) {
  const numbers = numbersString.split(/\s+/).filter(str => str !== '').map(Number);
  return `${Math.max(...numbers)} ${Math.min(...numbers)}`;
}
000
Mr Anxiety @mranxiety.bsky.social · 14/05/2025
This code is something I'm particularly proud of because: 1. I wrote most of it myself. 2. What I didn't know, I was able to read and understand the documentation to find. 3. I was able to read, and apply learning from reading snippets of code from others. 4. I collaborated on it with AI.
Screenshot of JavaScript code. The Code Reads:

/*
Write the function maxAndMin that:

1. Takes a string of numbers, where:
- Each number is separated by at least one space (there can be many spaces in a row).
- There might be spaces at the beginning and the end of the string.

2. Returns the largest and the smallest number.

Here are a few examples:
maxAndMin('1 2 3 4 5') // '5 1'
maxAndMin('1 9 3 4 -5') // '9 -5'
maxAndMin('2') // '2 2'
maxAndMin('1      2') // '2 1'
maxAndMin('   31 2 80 255 11   ') // '255 2'
*/

function maxAndMin(numbersString) {
  let numbers = numbersString.trim().split(/\s+/).map(Number);
  return `${Math.max(...numbers)} ${Math.min(...numbers)}`;
}

// /\s+/ is a regular expression for any occurrence of one or more whitespace characters (spaces, tabs, newlines, etc)
100
Mr Anxiety @mranxiety.bsky.social · 13/05/2025
TIL the flags for regular expressions can be combined.
A screenshot of JavaScript. The code reads:
/*
Write a removeVowels function that:

1. Takes the doc string.
2. Returns it with all vowels removed.

💡 Vowels are the letters a, e, i, o, u, y in lowercase and uppercase.

Example:
removeVowels('document'); // 'dcmnt'
removeVowels('I like my boss'); // ' lk m bss'
removeVowels('350 euro'); // '350 r'
*/

function removeVowels(doc) {
  return doc.replaceAll(/[aeiouy]/gi,'');
}
010
Reposted by Mr Anxiety
Norin 🦈 🔜 Designercon @mahoukarp.com · 13/05/2025
trying to sleep early
comic of a mako shark 

"lets sleep earlier today" (Shark is holding a blanket getting ready for bed)

.... (shark is in bed)

*phone screen flickers* (shark is looking at phone)

//ends up browsing internet in bed instead...// (shark does not sleep)
102224535
Mr Anxiety @mranxiety.bsky.social · 12/05/2025
Today, I discovered the power of regular expressions in JavaScript. Just stumbled across it while reading documentation trying to solve this challenge. It's also the most abstract thing I've written since the one day I spent with PHP over a decade ago.
A screenshot of JavaScript Code, the code reads:

/*
Write a function countLetters that:
1. Accepts a string input.
2. Returns the number of letters in the string.

💡 Don't count all characters — just the letters.

Example
For the string 'I'm a little teapot', the letter count should be 15.
*/

function countLetters(input) {
  return input.replaceAll(/[^a-zA-Z]/g, '').length;
}
110
Mr Anxiety @mranxiety.bsky.social · 11/05/2025
I should go back and finish the CSS fundamentals course but writing J's is just more fun. But it's a vegetables vs dessert situation I reckon. I can't advance in doing stuff with the DOM if I don't know styling. Also my learning projects could stand to look better.
000
Mr Anxiety @mranxiety.bsky.social · 11/05/2025
The only JS related courses left on SoloLearn I haven't done are for Angular. Might tackle that next.
SoloLearn JavaScript course certificate.

The text reads: Course certificate. This is to certify that Mr Anxiety has successfully completed the course by demonstrating theoretical and practical understanding of JavaScript.
100
Reposted by Mr Anxiety
Todd Jackson @tdjacks.bsky.social · 10/05/2025
Good morning ☀️
531225
Reposted by Mr Anxiety
karen @klsmd12.bsky.social · 09/05/2025
find your peace ✌🏻
111417
Mr Anxiety @mranxiety.bsky.social · 10/05/2025
I was working on this challenge on Knowely and I was pulling my hair out as to why my code wasn't working. The answer was I was first multiplying by 0. Because I'm so used to adding numbers instead of multiplying them using a loop. Also, yes, after solving this I now know reduce() exists.
A screenshot of my code that I wrote to pass the challenge. Above it in a multi-line comment is the description of the challenge copied form the website.

/*
Write the function getPersistence that:

1. Takes a positive integer num
2. Returns the num's multiplicative persistence

💡 Multiplicative persistence refers to the number of times you need to multiply the digits of a given number together until you reach a single digit.

For example:
getPersistence(39) === 3 // because 3 * 9 = 27, 2 * 7 = 14, 1 * 4 = 4 and 4 has only one digit          
getPersistence(999) === 4 // because 9 * 9 * 9 = 729, 7 * 2 * 9 = 126, 1 * 2 * 6 = 12, and finally 1 * 2 = 2
getPersistence(4) === 0 // because 4 is already a one-digit number
*/

function getPersistence(num) {
  let arr = Array.from(num.toString()).map(Number);
  if(arr.length !== 1){
    let persistence = arr;
    let counter = 0;
    while(persistence.length !== 1){
      let sum = 1; // <-- THIS FUCKER RIGHT HERE!
      for(let i = 0; i < persistence.length; i++){
      sum *= persistence[i];
      }
      persistence = Array.from(sum.toString()).map(Number);
      counter++;
    }
    return counter;
  }
  else{
    return 0;
  }
}
020
Reposted by Mr Anxiety
stellz @piss.beauty · 09/05/2025
vaporwave is still good actually
internetclub.bandcamp.com
WEBINAR, by INTERNET CLUB
17 track album
6736
Reposted by Mr Anxiety
Johan Peitz - Icy Tower is coming soon! @johanpeitz.com · 07/05/2025
I wrote up some of the new major features of the just announced #picoCAD 2 for my newsletter. Take a look if you want the juicy details! buttondown.com/apskeppet/ar... #gamedev #3d #lowpoly
1010819
Reposted by Mr Anxiety
Todd Jackson @tdjacks.bsky.social · 04/05/2025
Sunset last night by the river
51776
Mr Anxiety @mranxiety.bsky.social · 04/05/2025
I love the nostalgia hit I get every time I listen to this.
open.spotify.com
Lola's Theme - Radio Edit
The Shapeshifters · Lola's Theme · Song · 2004
000
Mr Anxiety @mranxiety.bsky.social · 02/05/2025
Have you reached the point of making an apple shortcut to do it?
000
Reposted by Mr Anxiety
Todd Jackson @tdjacks.bsky.social · 30/04/2025
“For whatever we lose (like a you or a me), it’s always our self we find in the sea.” - E E Cummings
1825
Reposted by Mr Anxiety
🦌≈ @aviva.gay · 28/04/2025
i need more time so bad 😭
0243