How GitHub does take home technical interviews
We believe our technical interviews should be as similar as possible to the way we work at GitHub. ⌘ Read more
Why your life is so boring ⌘ Read more
High Level Languages & the IBM 360 Series - Computerphile ⌘ Read more
[47°09′08″S, 126°43′53″W] Reading: 1.80000 PPM
[47°09′33″S, 126°43′17″W] Reading: 1.95 Sv
ProcessOne: ejabberd 21.12
This new ejabberd 21.12 release comes after five months of work, contains more than one hundred changes, many of them are major improvements or features, and several bug fixes.
When upgrading from previous versions, please notice: there’s a change in mod_register_web behaviour, and PosgreSQL database, please take a look if they affect your installation.
A more detailed explanation of those … ⌘ Read more
Scomo Destroyed by his own Senator ⌘ Read more
Rejected Question Categories
⌘ Read more
Neil deGrasse Tyson Explains Worldlines ⌘ Read more
GitHub Copilot now available for Visual Studio 2022
GitHub Copilot is now available from Visual Studio 2022 for everyone in the technical preview. ⌘ Read more
[47°09′51″S, 126°43′20″W] Reading: 0.04000 PPM
When you submit a GDPR request to American Express (Germany), you get an “Encrypted Mail” (for which you have to log in again somewhere and set a password), which then contains two PDFs, one of which is full of screenshots of mainframe terminals. ⌘ Read more
[47°09′17″S, 126°43′48″W] Raw reading: 0x62429251, offset +/-4
JMP: Newsletter: Cheogram Android Release, Matrix Alpha
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one app; Free … ⌘ Read more
Robbing Us Blind ⌘ Read more
How to secure your end-to-end supply chain on GitHub
Securing your projects is no easy task, but end-to-end supply chain security is more top of mind than ever. We’ve seen bad actors expand their focus to taking over user accounts, commonly used dependencies, and also build systems. Defending against these attacks is hard, because there’s no one thing you can do to protect your […] ⌘ Read more
Yesterday I ordered a blanket for an incredible amount of money, more precisely a weighted blanket. Now I hope that it will be delivered quickly and that it really has the positive effects that are being advertised. Although I can usually fall asleep quickly in the evening with a sleeping mask and earplugs, I never manage to sleep through the night, I am never woken up by the alarm clock because I wake up earlier. In the morning I feel tired almost every day, sometimes even the whole day, which then also limits my c … ⌘ Read more
Spacecraft Debris Odds Ratio
⌘ Read more
Tabs versus Spaces? Spaces! ⌘ Read more
About listening to music
Sometimes I like to listen to music, I listen to a song, which gives me a good feeling, then another and another. I feel really good, sometimes I could even dance, although I don’t really like dancing. ⌘ Read more
“The Dissident”
I just watched the movie “The Dissident” (currently available at 3sat in DE/AT/CH). ⌘ Read more
Unlock all the GitHub secrets within Next.Tech’s newest experience: Break the Code 2!
GitHub Education is fired up for the return of Next.Tech’s developer community competition: Break the Code 2. We’ve hacked in some new enigmas, cheat codes, and easter eggs for digital sleuths to uncover! ⌘ Read more
[47°09′21″S, 126°43′56″W] Raw reading: 0x623DF511, offset +/-3
Teamwork & Git - Computerphile ⌘ Read more
[47°09′12″S, 126°43′11″W] Reading: 1.43 Sv
Graphic Designers
⌘ Read more
The Project Has Done it Again ⌘ Read more
Back to GitHub
Not too long ago I reported how I build the Docker images for GoBlog using Drone and Docker-in-Docker. ⌘ Read more
Science Pioneers with Neil deGrasse Tyson & Danni Washington ⌘ Read more
Profanity: Profanity and OpenPGP for XMPP (OX)
We have been to implement OX in profanity. OX is
XEP-0374: OpenPGP for XMPP Instant Messaging which
may replace XEP-0027: Current Jabber OpenPGP Usage.
It is part of Profanity since version 0.10 but got some fixes since then.
Feel free to try and test the implementation. Let us know, if you have some
issues and support the development via testing and reporting bugs.
Ho … ⌘ Read more
Ignite Realtime Blog: GoJara plugin for Openfire version 2.2.3 release
The Ignite Realtime community is happy to announce the immediate availability of a maintenance release of the GoJara plugin for Openfire. GoJara provides an implementation of XEP-0321 “Remote Roster Management” and helps out with monitoring Spectrum 2.
Your Openfire instance should automatically display the availability of the update. Al … ⌘ Read more
Six years ago, I was with my family on a cruise on the North Sea. During this trip we also visited Amsterdam. Today, however, I would no longer go on cruises because of the enormous environmental impact. ⌘ Read more
An update on recent service disruptions
Over the past few weeks, we have experienced multiple incidents due to the health of our database. We wanted to share what we know about these incidents while our team continues to address them. ⌘ Read more
Six years ago, I was with my family on a cruise on the North Sea. During this trip we also visited Amsterdam. Today, however, I would no longer go on cruises because of the enormous environmental impact. ⌘ Read more
GitHub Actions: secure self-hosted runners by limiting them to specific workflows
You can now enforce consistent usage of self-hosted runner groups across your organization and enterprise. ⌘ Read more
Understanding Color Management
I worked on a project where I dived deep into understanding how modern
color management works, including things like color spaces, ICC profiles
and more. As I learnt here and there, I decided to write this post, both
for my future self, and others who may struggle with some of the
concepts as well.
Color management deals with translating between representations of
colors across a variety of devices. Throughout this post, we’ll use
natural language as … ⌘ Read more
Understanding Color Management
I worked on a project where I dived deep into understanding how modern
color management works, including things like color spaces, ICC profiles
and more. As I learnt here and there, I decided to write this post, both
for my future self, and others who may struggle with some of the
concepts as well.
This post only aims to help you understand the basic concepts without
having to delve into dense literature and hard to grok technical
documents.
Color … ⌘ Read more
Time for Some Answers ⌘ Read more
Honest Government Ad | We need to talk about the floods | with Sue Higginson ⌘ Read more
Salary Negotiation
⌘ Read more
Improving your GitHub feed
Today, we are rolling out a new beta version of GitHub’s home feed, making it easier to discover projects, developers and more across GitHub. ⌘ Read more
The People Devastated by Floods ⌘ Read more
Neil deGrasse Tyson Explains Zero ⌘ Read more
Introducing the GHES repository cache
If you’re a GHES customer with heavy read traffic on your monorepo, check out the repository cache, especially if you have CI workloads distributed around the world. ⌘ Read more
Erlang Solutions: 5 Key Tech Priorities for Fintech Leaders in 2022
Issues caused by sub-optimal tech choices are commonplace in the industry, leading to companies failing under unexpected stress or being unable to adapt in time when their business requirements change.
While no two projects are the same, we’ve observed some common themes for using scalable futureproof technologies to build diverse fintech systems. Taking advantage of these learnings sets financial service provi … ⌘ Read more
The Destruction of the Floods ⌘ Read more
Don’t try this one at home… ⌘ Read more
Start working on GitHub Issues faster
You can now create a branch to work on an issue directly from the issue page so that it’s easier to get started right away. ⌘ Read more
[47°09′22″S, 126°43′16″W] Raw reading: 0x6238D941, offset +/-5
Validate all the things: improve your security with input validation!
If there’s one habit that can make software more secure, it’s probably input validation. Here’s how to apply OWASP Proactive Control C5 (Validate All Inputs) to your code. ⌘ Read more
What you’re getting wrong about productivity ⌘ Read more
Maxime Buquet: Am I allowed to say no?
People often take photographs for granted. It does seem obvious in our society
that people like to appear with their friend on Facebook, TikTok, and what have
you.
Early on I started telling people I didn’t want to have my picture taken. It
has never really been clear why, not even to myself to be honest. It might have
been out of shyness – a trait that is still ever so present – or because I
didn’t like the way I look in them, or perhaps some other reason. But I kept
telling th … ⌘ Read more
Kevin Rudd Saw This Coming href=”https://txt.sour.is/search?q=%23Shorts”>#Shorts** ⌘ Read more
Galaxies
⌘ Read more
[47°09′00″S, 126°43′57″W] Raw reading: 0x6236DF01, offset +/-4
Are we talking about space or… the French cuisine? ⌘ Read more
Text-to-speech is becoming more popular
I am a slow reader. I read a lot on websites, but not quickly and I often get distracted while reading. What I like therefore is a pre-reading option. ⌘ Read more
Equations in Motion – Bowling with Dr. Dave Alciatore & Neil deGrasse Tyson ⌘ Read more
Apple M1 Ultra & NUMA - Computerphile ⌘ Read more
[47°09′58″S, 126°43′03″W] Raw reading: 0x62343C01, offset +/-2
Annotate PDFs on Linux
This post is about a GUI tool called pdfrankestein that
fills a gap on mostly Linux machines where a powerful and easy to use
PDF annotator does not exist.
Adobe Acrobat® on Windows and Mac allow you to add text, drawings and
signatures to PDF documents. This is useful when filling forms or
marking notes to send back to someone. Such a tool with similar
capabilities and easy of use does not exist on Linux. The reason that’s
often cited is that PDF is a c … ⌘ Read more
Advanced Techniques
⌘ Read more
Release Radar · February 2022 Edition
Our community has shipped lots of open source project updates in the last month. Here’s a few of our staff picks. ⌘ Read more
Floods: friendlyjordies on the scene ⌘ Read more
At work I may soon be able to program in Java 17 instead of Java 8. But still with Eclipse. 😅 ⌘ Read more
I didn’t get around to blogging about the fact that Miniflux recently got a new version. With it, if an entry doesn’t have a title, it finally shows a snippet of the content instead of just the URL as the title. A great new feature if you follow a lot of micro blogs. Regarding micro-blogs, I’m also in the process of reading Manton Reece’s book draft. ⌘ Read more
Going to Space with William Shatner & Neil deGrasse Tyson ⌘ Read more
[47°09′01″S, 126°43′26″W] Raw reading: 0x62336911, offset +/-2
Image rebase and improved remote cache support in new BuildKit
We’ve just shipped new versions of the BuildKit builder engine, Dockerfile 1.4 frontend, and Docker We’ve just shipped new versions of the BuildKit builder engine, Dockerfile 1.4 frontend, and Docker Buildx CLI. Each of these comes with many new features. In this blog post, I’ll show one of them, a new copy mode in Dockerfiles, […]
The post [Image rebase and improved remote cache support in new BuildKit](https://w … ⌘ Read more
[47°09′52″S, 126°43′25″W] Reading: 1.43 Sv
Honest Government Ad | The Floods 🌊 ⌘ Read more
[47°09′48″S, 126°43′30″W] Reading: 1.71 Sv
You’ll look at the tides differently after this video… ⌘ Read more
Sam Whited: Joanna
”`
Sipping my tea, I think back and remember Joanna:
Quietness isn’t the same for me now.
You came to America, wondering what you’d find:
Atlanta in a forest of broken dreams,
A people in turmoil, and no one seems to know why.
Communities falter before they’ve begun.
A lawnmower hums and I wake from my reverie.
I’d forgotten, about your America.
Driving to the North, far away from the city.
You looked for meaning in every farm passing by.
I bought you peanuts and gave you a tour of the mountains.
We d … ⌘ Read more”`
@ullarah@txt.quisquiliae.com Didn’t we talk about at some point a way to set the maximum height of te panels with some UX way to read the rest? 🤔 Is that still on the cards or a bad ideas? 🤔
Consequences for Police after friendlyjordies Arrest? ⌘ Read more
#!/bin/sh
# Validate environment
if ! command -v msgbus > /dev/null; then
printf "missing msgbus command. Use: go install git.mills.io/prologic/msgbus/cmd/msgbus@latest"
exit 1
fi
if ! command -v salty > /dev/null; then
printf "missing salty command. Use: go install go.mills.io/salty/cmd/salty@latest"
exit 1
fi
if ! command -v salty-keygen > /dev/null; then
printf "missing salty-keygen command. Use: go install go.mills.io/salty/cmd/salty-keygen@latest"
exit 1
fi
if [ -z "$SALTY_IDENTITY" ]; then
export SALTY_IDENTITY="$HOME/.config/salty/$USER.key"
fi
get_user () {
user=$(grep user: "$SALTY_IDENTITY" | awk '{print $3}')
if [ -z "$user" ]; then
user="$USER"
fi
echo "$user"
}
stream () {
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
jq -r '.payload' | base64 -d | salty -i "$SALTY_IDENTITY" -d
}
lookup () {
if [ $# -lt 1 ]; then
printf "Usage: %s nick@domain\n" "$(basename "$0")"
exit 1
fi
user="$1"
nick="$(echo "$user" | awk -F@ '{ print $1 }')"
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
curl -qsSL "https://$domain/.well-known/salty/${nick}.json"
}
readmsgs () {
topic="$1"
if [ -z "$topic" ]; then
topic=$(get_user)
fi
export SALTY_IDENTITY="$HOME/.config/salty/$topic.key"
if [ ! -f "$SALTY_IDENTITY" ]; then
echo "identity file missing for user $topic" >&2
exit 1
fi
msgbus sub "$topic" "$0"
}
sendmsg () {
if [ $# -lt 2 ]; then
printf "Usage: %s nick@domain.tld <message>\n" "$(basename "$0")"
exit 0
fi
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
user="$1"
message="$2"
salty_json="$(mktemp /tmp/salty.XXXXXX)"
lookup "$user" > "$salty_json"
endpoint="$(jq -r '.endpoint' < "$salty_json")"
topic="$(jq -r '.topic' < "$salty_json")"
key="$(jq -r '.key' < "$salty_json")"
rm "$salty_json"
message="[$(date +%FT%TZ)] <$(get_user)> $message"
echo "$message" \
| salty -i "$SALTY_IDENTITY" -r "$key" \
| msgbus -u "$endpoint" pub "$topic"
}
make_user () {
mkdir -p "$HOME/.config/salty"
if [ $# -lt 1 ]; then
user=$USER
else
user=$1
fi
identity_file="$HOME/.config/salty/$user.key"
if [ -f "$identity_file" ]; then
printf "user key exists!"
exit 1
fi
# Check for msgbus env.. probably can make it fallback to looking for a config file?
if [ -z "$MSGBUS_URI" ]; then
printf "missing MSGBUS_URI in environment"
exit 1
fi
salty-keygen -o "$identity_file"
echo "# user: $user" >> "$identity_file"
pubkey=$(grep key: "$identity_file" | awk '{print $4}')
cat <<- EOF
Create this file in your webserver well-known folder. https://hostname.tld/.well-known/salty/$user.json
{
"endpoint": "$MSGBUS_URI",
"topic": "$user",
"key": "$pubkey"
}
EOF
}
# check if streaming
if [ ! -t 1 ]; then
stream
exit 0
fi
# Show Help
if [ $# -lt 1 ]; then
printf "Commands: send read lookup"
exit 0
fi
CMD=$1
shift
case $CMD in
send)
sendmsg "$@"
;;
read)
readmsgs "$@"
;;
lookup)
lookup "$@"
;;
make-user)
make_user "$@"
;;
esac
#!/bin/sh
# Validate environment
if ! command -v msgbus > /dev/null; then
printf "missing msgbus command. Use: go install git.mills.io/prologic/msgbus/cmd/msgbus@latest"
exit 1
fi
if ! command -v salty > /dev/null; then
printf "missing salty command. Use: go install go.mills.io/salty/cmd/salty@latest"
exit 1
fi
if ! command -v salty-keygen > /dev/null; then
printf "missing salty-keygen command. Use: go install go.mills.io/salty/cmd/salty-keygen@latest"
exit 1
fi
if [ -z "$SALTY_IDENTITY" ]; then
export SALTY_IDENTITY="$HOME/.config/salty/$USER.key"
fi
get_user () {
user=$(grep user: "$SALTY_IDENTITY" | awk '{print $3}')
if [ -z "$user" ]; then
user="$USER"
fi
echo "$user"
}
stream () {
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
jq -r '.payload' | base64 -d | salty -i "$SALTY_IDENTITY" -d
}
lookup () {
if [ $# -lt 1 ]; then
printf "Usage: %s nick@domain\n" "$(basename "$0")"
exit 1
fi
user="$1"
nick="$(echo "$user" | awk -F@ '{ print $1 }')"
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
curl -qsSL "https://$domain/.well-known/salty/${nick}.json"
}
readmsgs () {
topic="$1"
if [ -z "$topic" ]; then
topic=$(get_user)
fi
export SALTY_IDENTITY="$HOME/.config/salty/$topic.key"
if [ ! -f "$SALTY_IDENTITY" ]; then
echo "identity file missing for user $topic" >&2
exit 1
fi
msgbus sub "$topic" "$0"
}
sendmsg () {
if [ $# -lt 2 ]; then
printf "Usage: %s nick@domain.tld <message>\n" "$(basename "$0")"
exit 0
fi
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
user="$1"
message="$2"
salty_json="$(mktemp /tmp/salty.XXXXXX)"
lookup "$user" > "$salty_json"
endpoint="$(jq -r '.endpoint' < "$salty_json")"
topic="$(jq -r '.topic' < "$salty_json")"
key="$(jq -r '.key' < "$salty_json")"
rm "$salty_json"
message="[$(date +%FT%TZ)] <$(get_user)> $message"
echo "$message" \
| salty -i "$SALTY_IDENTITY" -r "$key" \
| msgbus -u "$endpoint" pub "$topic"
}
make_user () {
mkdir -p "$HOME/.config/salty"
if [ $# -lt 1 ]; then
user=$USER
else
user=$1
fi
identity_file="$HOME/.config/salty/$user.key"
if [ -f "$identity_file" ]; then
printf "user key exists!"
exit 1
fi
# Check for msgbus env.. probably can make it fallback to looking for a config file?
if [ -z "$MSGBUS_URI" ]; then
printf "missing MSGBUS_URI in environment"
exit 1
fi
salty-keygen -o "$identity_file"
echo "# user: $user" >> "$identity_file"
pubkey=$(grep key: "$identity_file" | awk '{print $4}')
cat <<- EOF
Create this file in your webserver well-known folder. https://hostname.tld/.well-known/salty/$user.json
{
"endpoint": "$MSGBUS_URI",
"topic": "$user",
"key": "$pubkey"
}
EOF
}
# check if streaming
if [ ! -t 1 ]; then
stream
exit 0
fi
# Show Help
if [ $# -lt 1 ]; then
printf "Commands: send read lookup"
exit 0
fi
CMD=$1
shift
case $CMD in
send)
sendmsg "$@"
;;
read)
readmsgs "$@"
;;
lookup)
lookup "$@"
;;
make-user)
make_user "$@"
;;
esac
Speed boost achievement unlocked on Docker Desktop 4.6 for Mac
Introducing virtiofs The 4.6 release of Docker Desktop for Mac contains a number of changes that drastically improve file sharing performance for macOS users. Firstly, developers now have the option of using a new experimental file sharing implementation called virtiofs (the current default is gRPC-FUSE). Secondly, improvements have been made to the way that files […]
The post [Speed boost achievement unlocked on … ⌘ Read more
Vulnerability Alert: Avoiding “Dirty Pipe” CVE-2022-0847 on Docker Engine and Docker Desktop
You might have heard about a new Linux vulnerability that was released last week, CVE-2022-0847, aka “Dirty Pipe”. This vulnerability overwrites supposedly read-only files in the Linux kernel host, which could enable attackers to modify files inside the host images from the container instance. If you use Docker Engine natively, we recommend you should update … ⌘ Read more
Save time with partial re-runs in GitHub Actions
It is now possible to re-run only failed jobs or a single job in GitHub Actions workflows. ⌘ Read more
I would HIGHLY recommend reading up on the keybase architecture. They designed device key system for real time chat that is e2e secure. https://book.keybase.io/security
A property of ec keys is deriving new keys that can be determined to be “on curve.” bitcoin has some BIPs that derive single use keys for every transaction connected to a wallet. And be derived as either public or private chains. https://qvault.io/security/bip-32-watch-only-wallets/
I would HIGHLY recommend reading up on the keybase architecture. They designed device key system for real time chat that is e2e secure. https://book.keybase.io/security
A property of ec keys is deriving new keys that can be determined to be “on curve.” bitcoin has some BIPs that derive single use keys for every transaction connected to a wallet. And be derived as either public or private chains. https://qvault.io/security/bip-32-watch-only-wallets/
Critical Race Theory course being taught at Peel high school
Consensus Time
⌘ Read more