Let’s play a game of “Fortunately, Unfortunately“. Respond the previous post (the first comment below this post) by replying this post (not the previous post!)
I’ll start with: “I found this website.“
Not because I should, but because I can.
Just because you can, doesn’t mean you should.
Do you want to use a reasonable library with its last commit being 6 years ago, or a bloated one with 8 hours?
/**
* Tokens for use in parsers.
*/
public class Token {
/*
Me: Mom, can we have ADTs?
Mom: We already have ADTs in Java
ADTs in Java:
*/
public record Number(BigInteger num) {}
public record Word(String name, BigInteger prefix) {}
public record SequenceBuilder(BigInteger[] initial, Token[] operation) {}
public record MacroStart(String name) {}
public record MacroEnd() {}
}
someone on esolangs.org (apparently also called Gilbert) wants to make an esolang with me
uhhhhhhhhhh
chess learning progress:
need to learn opening (currently it’s all over the place)
middlegame and endgame should be improved (puzzle run went mostly OK)
had to remember pawns are sometimes useful
I want to participate on a contest to increase my student activity points. I had two choices:
chess (registration currently open), in place, beginner is an overstatement
typing (registration pending), walk ~30 min, could be improved
what should I choose
On the 2nd mid-semester project exam thing six months ago, we’ve been asked to make a video memoir of our school life
I peeked one group having that Blend S intro and has a lot of Undertale references (the editor is a UT fan), so I figured I’d give them this video (https://youtu.be/-eTp1DGIXcs)
Sadly I never did because it wasn’t on my YouTube history back then (even though I can recall having watched it) and it’s not until recently that it resurfaced on my recommendation
{ // in case something uses jQuery for some reason
let $ = function (name) {
let result = document.createElement(name);
result.set = function (attr, value) {
result.setAttribute(attr, value);
return result;
};
result.setAttr = function(attr, value) {
result[attr] = value;
return result;
}
result.add = function (...elements) {
for (let elm of elements) {
result.append(elm);
}
return result;
};
result.text = function (text) {
result.innerText = text;
return result;
};
return result;
}
// add description lists
let dl = $("dl").add(
$("dt").add(
$("label")
.set("for", "recallChatSetting")
.text("Recalling chat options:"),
),
$("dd").add(
$("button").setAttr("onclick", function deleteAll () {
if (!confirm("Delete all of the chat history?")) return; // negative, do not delete everything
localStorage.setItem(PREFIX + "messages", "{}");
window.location.reload();
}).text("Clear all history"),
$("button").setAttr("onclick", function () {
let amount = prompt("How many topmost messages should I keep?", "100");
if (amount === null) return; // whoops, accidentally pressed it
amount = Number(amount);
let messageIDs = Object.keys(messages).sort((a, b) => a - b).slice(-amount);
let newMessages = {};
for (let msgID in messageIDs) {
newMessages[msgID] = messages[msgID];
};
localStorage.setItem(PREFIX + "messages", JSON.stringify(newMessages));
window.location.reload();
}).text("Clear some history"),
)
);
document.getElementById("settingsList").append(dl);
}
this is on my userscript right now
I wish this was easier
My current USB 3.0 cable can’t achieve 3.0 speed but has a decent connection
The other USB 3.0 cable can achieve 3.0 speed but has a very bad connection
I could buy one online but for some reason the online shop I’m on insisted me to use their app on my phone instead of the website (as if they have a phobia of desktops apparently)
Ended up using another online shop