kernelle

joined 2 years ago
[–] kernelle@0d.gs 2 points 18 hours ago

If we look at historic crashes, they had major catalysts causing mass sell orders. Right now markets have had time to adjust because the speed of decline has been very slow.

Markets are also largely speculative, many stocks are traded way above their fundamental value (think Microsoft, tesla, or coca-cola). These will probably be hit the hard, algorithms will default to what a stock should be and drop hard. But these companies might have the strongest chance to bounce back as well.

Companies with the strongest books will be safer, but many more risk taking companies won't be as lucky. This is part of what due diligence of a stock will tell you, but also probably one of the hardest parts of investing.

As long as decline is slow, stability can be found. But when uncertainty rises fast, so does the unstability of the stock market. Catalysts such as the public losing confidence in banks causing a bank run, companies downsizing at unseen scales to cut costs, or global political instability are possible.

TLDR: it needs to get way worse, very quickly for the market to crash

[–] kernelle@0d.gs 10 points 5 days ago

My first year professor in electronics started his first lecture "yeah so forget everything you've learned about electricity because it's wrong" - then gave out an infinite matrix of resistors and made us cry.

[–] kernelle@0d.gs 2 points 1 week ago

Different cultures! Dietary restrictions aren't optional though

[–] kernelle@0d.gs 3 points 1 week ago (2 children)

I might fundamentally disagree with you what a restaurant is. For me it's a place where hard working people get to share their cuisine with you. Most I'll ask at a restaurant is one alteration to one dish.

When I read the OP and your post, a restaurant seems like the place for you to get the perfect meal.

As Beau Miles puts it: "I plan on regretting what I'm eating at least once this week"

[–] kernelle@0d.gs 13 points 1 week ago

That episode was probably one of the best in the series! If someone's wondering: Game Changer by dropout S7E1

PS: I've been here the whole time!

[–] kernelle@0d.gs 15 points 1 week ago (1 children)

I was perfectly okay not knowing about this

[–] kernelle@0d.gs 2 points 1 week ago
[–] kernelle@0d.gs 4 points 1 week ago

Nice to hear! I'm glad you enjoyed it.

 

TLDR: Testing some CDNs to reveal Vercel and GitHub Pages as the fastest/most reliable for static solutions and Cloudflare for a self-hosted origin.

The Problem

In my previous post, I achieved loadtimes in Europe of under 100ms. But getting those speeds worldwide is a geographical hurdle. My preferred hosting location has always been London because of its proximity to the intercontinental submarine fiber optic network providing some of the best connectivity worldwide.

Heatmap of latency

Azimuthal Projection: Measuring the latency of 574k servers around the world from my Lemmy server in London

But it's a single server, in a single location. From the heatmap we can see the significant fall-off in response times past the 2500km line, such that a visitor from Tokyo has to wait around 8 times longer than their European counterparts.

Free Web

The answer is obvious, a Content Delivery Network or CDN distributes a website in a decentralised fashion, always delivering from the closest server to the user, drastically reducing loadtimes.

I could be renting servers on every continent and make my own CDN, with blackjack and .. never mind! Instead, I'll be using existing and free infrastructure. While the internet is forever changing to accommodate stock markets, many companies, organisations, and individuals still offer professional grade services for free. We cannot understate the value of having such accessible and professional tools ready for experimenting, exploring, and learning with no barrier of entry.

These constraints do not provide an answer to how good CDNs are, but rather how much resources they allocate to their free tiers.

Pull vs Push CDN

Pull CDN

A Pull CDN has to request the data from an origin server, whereas a Push CDN pre-emptively distributes code from a repository worldwide.

For our static one-pager a Push CDN is a dream, because they deploy your repository to distribute it worldwide in an instant and keep it there. Pull CDNs also store a cached version but needs our origin server just as frequently. The first visitor in a particular area might be significantly slower if a closer server has not yet cached from the origin. This doesn't mean Push CDNs can't be used for complex websites with extensive back-ends, but it adds complexity, optimization, and cost to the project.

Push CDN

Map: Measuring round trip time to my site when using a push CDN

Edge vs Regional vs Origin

CDNs cache in different ways, at different times, using different methods. But all describe Edge Nodes - literally the edge of the network for the fastest delivery, and Regional Nodes when Edge Nodes or "Points of Presences" need to be updated.

Origin Nodes are usually only used with Pull CDNs so the network knows what content to serve when no cache is available, so an Edge Node asks the Regional Node what the Origin has to serve. Unfortunately, that means a CDN without a minimum amount of resources will be slower than not using one at all.

Where cache is stored with Push CDNs also depends on the provider but often use a repository that automatically updates the entire network with a new version. Meaning they can cache much more aggressively and efficiently across the network, resulting in faster loadtimes.

Testing

I know, I know, you're here for numbers, so let me start with some: 3 rounds of testing 6 continents 98 times each for a combined total of 588 requests spread over 34 days. Every test cycle consists of one https request per continent, using the GlobalPing network and a simple script I've written to interface with their CLI-tool.

Different times between requests will provide us with insights on how much resources are allocated for us regular users. We're looking for the CDN that's not only the fastest but also the most consistent in its loadtimes.

Included is a demonstration of a badly configured CDN, actually just chaining two CDNs. Without the two platforms talking to each other, the network gets confused and it more than doubles the loadtimes.

Finally, I've included ioRiver - the only platform I've found with Geo-Routing on a free trial. This would allow me to serve Europe with my own server and the rest of the world with an actual CDN. The first 2 testing rounds, I configured ioRiver to only serve with Vercel for a baseline test on how much, if any, delay they add. In the 3rd round, ioRiver routed Europe to my server, and the rest of the world to Vercel.

Results

We should be expecting my self-hosted solution to the deliver the same speeds every round, this is our baseline. Any CDN with a slower average than my single Self-Hosted solution is not worth considering.

  • Round 1: 3 days of requesting once every hour (72 tests)
  • Round 2: 7 days of requesting once every 12 hours (14 tests)
  • Round 3: 24 days of requesting once every 48 hours (12 tests)

Round 1 - data

Graph Round 1

Frequent requests to a CDN ensures the website is cached not only in faster memory spaces but also to a more diverse spread of edge servers.

  • Pull CDNs show their strong advantage by not needing an extra request to my server
  • ioRiver (Multi-CDN) is setup to only serve Vercel, we can see it adds a considerable delay
  • Vercel, GitHub Pages, and Cloudflare (Pull) show themselves to be early leaders

Round 2 - data

Graph Round 2

Most reflective of a regular day on the site (all charts are ordered by this round)

  • Some CDNs already reflect slightly slower times due to not being cached as frequently
  • GitHub stands out to me in this round of testing being a little more stable than the previous round

Round 3 - data

Graph Round 3

†I didn't take Static.app's 30 day trial into account when testing, which is why it's absent from this final round.

  • Surprisingly enough for Cloudflare we notice their Pull version pulling ahead of their Push CDN
  • Adding my Self-Hosted solution to ioRiver's Multi-CDN via Geo-Routing to Europe shows it can genuinely add stability and decrease loadtimes

Notes

It's pretty clear by now Vercel is throwing more money at the problem, so it shouldn't come as a surprise they've set a limit on the monthly requests: a respectable 1 million or 100GB total per month. For evaluation, I've changed my website to start hosting from Vercel.

GitHub's limits are described as a soft bandwidth limit of 100GB/month, more like a gentleman's agreement.

Same as last time, I'll be leaving up the different deployments for another month probably.

Code / Scripts on GitHub

These scripts are provided as is. I've made them partly configurable with CLI, but there are also hard-coded changes required if you're planning on using them yourself.

CDN Test

ping.py

Interface with GlobalPing's CLI tool, it completes a https request for every subdomain or different deployment from every continent equally with many rate limiting functions. In hindsight, interfacing with their API might've been a better use of time...

parseGlobalPing.py

Parses all files generated by GlobalPing during ping.py, calculate averages, and returns this data in pretty print or CSV (I'm partial to a good spreadsheet...). Easy to tweak with CLI arguments.

CDN Testing Round

Ping every 12h from every continent (hardcoded domains & time)
$ python3 ping.py -f official_12h -l 100 
Parse, calculate, and pretty print all pings
$ python3 parseGlobalPings.py -f official_12h

Heatmap

masscan - discovery

masscan 0.0.0.0/4 -p80 --output-format=json --output-filename=Replies.json --rate 10000

Scans a portion of the internet for servers with an open port 80, traditionally used for serving a website or redirect.

hpingIps.sh - measurement

Due to masscan not recording RTT's, I used hping for the measurements. Nmap is a good choice as well but hping is slightly faster. I've found MassMap after my scan, which wraps Masscan and Nmap nicely together. I'll update this when I've compared its speed compared to my implementation.

This is a quick and dirty script to use hping and send one packet to port 80 of any host discovered by masscan.

query.py - parse and locate

Primary and original function is to query the GeoLite2 database with an IP-address to give a rough estimate of their physical location to plot a heatmap. Now it can also estimate the distance between my server and another using Haversine.

plot.py

Creates heatmap with the output of query.py (longitude, latitude, and RTT) using Matplotlib

query.py and plot.py are forked from Ping The World! by Erik Bernhardsson, but is over 10 years old. The new scripts fixed many issues and are much improved.

Graph plot

Masscan (Command mentioned above)
# Replies.json

Masscan -> IPList
$ python3 query.py --masscan > IPList.txt

IPList -> RTT
# sh hpingIps.sh

RTT -> Combinedlog
$ python3 query.py > log_combined.txt

CombinedLog -> Plot
$ python3 plot.py

./Martijn.sh > Blog / How I made a blog using Lemmy / Measuring the latency of 574k servers around the world from my lemmy server

[–] kernelle@0d.gs 6 points 1 week ago

They each fuck with my window arrangement on virtual desktops when rebooting in their own special way. I've switched to Wayland but x11 did feel more polished.

[–] kernelle@0d.gs 1 points 2 weeks ago

Thanks for sharing!

[–] kernelle@0d.gs 17 points 3 weeks ago (1 children)

I like your funny words, magic man

 

Recently launched and has the ability to display any picture and photograph it with the Earth as a backdrop. 'I Spent $5,000,000 So You Can Go To Space For FREE' as he puts it. Clickbait debate aside, he provides something insane for free to anyone.

This detail was mentioned on ny2yo.com, linked on their website space.crunchlabs.com

Full description

Take selfies with Earth in the background.

SAT GUS will enable users from around the world to upload their photos via spaceselfie.com and specify their city. Using Redwire’s flight-proven camera technology, SAT GUS will capture HDR pictures of user-submitted selfies that will be displayed on a Google Pixel phone onboard SAT GUS, with Earth as the backdrop. The photos will then be transmitted to Earth.

The SAT GUS mission is part of a unique science, technology, engineering, art, and mathematics (STEAM) activation that raises awareness of the impact space has on our daily lives and will support underserved engineering students around the world.

Thanks to everyone who helped with this incredible build:

  • Our Build team at Tyvak International for helping us bring SAT GUS to life!
  • SCHOTT for providing radiation resistant glass.
  • REDWIRE for providing the Space hardened camera.
  • Muon Space for thermal vacuum testing.
  • The Vibrational Testing Laboratory of Centrotecnica Srl.

The SAT GUS satellite, designed and built by Tyvak International of Milan Italy, aims to allow people to snap selfies in space, with Earth as the backdrop.

The “Space Selfie project”, launched by CrunchLabs, an initiative founded by Mark Rober, a former NASA engineer and YouTube content creator, aims to send participants’ selfies to space, display them on a satellite-mounted phone, and capture a photo with Earth in the background before sending it back to the participant.

 

Located in London, I measured the RTT or round trip time to 574,691 random webservers and plotted the times on the globe.

Discovery was done with masscan, measurements using hping and plotting with an old Python script I've revived and enhanced.

~~This is part of the next writeup on my blog, with which I will be posting any of the code I've used.~~

Full write-up and code

Blog / How I made a blog using Lemmy

 

Almost 10 years ago at 17, Joeri found himself in a horrifying blind spot accident. After being dragged 600m by a truck he lost an arm, an eye and most part of his other hand. Pulling through as a symbol of strength and perserverance, he's managed to have a positive influence over road safety in Belgium. Having hiphop influences and a good support group, he decided to release a single to 'Begin' his musical career.

Today marks the release of his music video, a project of passion with amazing production quality. As a friend, I've decided to share his story and debut with an international audience. Don't worry, as it's rapped in a West-Flemish dialect, even the overwhelming majority of my country doesn't understand a word. Either way, I've translated the lyrics if you're curious.

Joeri Verbeeck - Begin [Translated lyrics]


(Actually they don't know how I... [feel])

I don't know how to Begin

Just words in sentences

But the shit I've been through

You couldn't even make it up

(You couldn't make it up)

I lost a lot by the road, but I'm here to Win

(Let's Go!)

Why are you looking? Am I in a film?

(In a film?)

I'm going to work, while you all just chill?

(Just chill?)

I do more than you, with only one arm!

I'm richer in perserverance, I'm definitely not poor

But still they're staring

Am I wearing your clothes? I only have one eye!

They tell me I gotta chill, I gotta keep calm

Take your time, but they didn't tell me time flies!

(that time flies)

You can't play with me like a nintendo!

No longer stuck in that blind spot

Next page, like a new book

Nothing happens if I do nothing

Thats why when I yell, I yell good

I jump from left to right like kangaroo

Klets in the pets, in the bottle [=fles], in de drets [putting anything before -ets is a yell, meaningless on its own]

And I flex on the mass and I'm not depressed

And I stress for the test in the first lesson

I thought it was my last day

But the world is still not rid of me, yeah!

I was 17, I hadn't seen anything

Almost my last ride, it wasn't that clean

Why did I have the see the street from that close?

(Why did I have the see the street from that close)

Nobody knows how I feel

It's like love isn't meant for me

Every day overwhelmed by it all

I'm a warm person, but let's it cool

(Actually they don't know how I... [feel])

 
Lemmydocs 7:4 – Thou shall create a blog

Features

  • Linked to a user using Lemmy’s API, no authentication
  • Host content on any instance
  • Category filters: Set one or more community as the categories
  • Easy to adapt to your profile
  • One page constraint
  • Anchor navigation and permalinks
  • Responsive
  • Dark / Light mode
  • No cookies or tracking
  • Interactive “about me”
  • No backend: serving a single lightweight page that can be hosted anywhere, including GitHub
  • HTML, CSS and ES6 JavaScript. That's it.

TODO

  • Possible compatibility issues with older iOS devices. Let me know if you encounter an issue! I'll be cleaning up the code in the meantime.
  • The only class not written by me is the markdown-html translation layer for which I'm using snarkdown. It does so using regex queries. As to not completely re-invent the wheel I've forked it for this purpose, but I'd like to write one myself.

GitHub | ./Martijn.sh > Blog

14
submitted 3 months ago* (last edited 3 months ago) by kernelle@0d.gs to c/music@lemmy.world
 

Nardwuar track list

  • Ngozi Family - 40,000 volts
  • Young Buck - Get Buck
  • Uncle Luke - I Wana Rock
  • Astrud Gilberto - The Shadow of Your Smile
  • Gary Davis - Gotta Get Your Love
  • One Way - Wild Night
  • Kevin McCord - When The Night Comes
 

LinkDumps are a classic piece of internet history, born out of growing lists of bookmarks and the need to share them in either an organised or chaotic fashion. I'm sure you've got lots of interesting places on the internet stored away and ready to be shared.

I've already shared a few LinkDumps, including one today. This is my way of spreading the word!

Community: !LinkDumps@0d.gs

Lemmyverse: https://lemmyverse.link/c/linkdumps@0d.gs

 

Lost in the woods, party boy Nathan encounters a troll under a bridge and embarks on a quest for a magical elixir that will forever change his life.

Written & Produced by Jacob Wysocki Directed & Edited by Tony Infante Co-produced by Gabriel Diaz & Tyler Phillips

view more: next ›