I know of a even more impressive website that will transfer playlists from Spotify (or 20 other platforms, including text files) to 20 other platforms or a text file. I will share the link, but don't hug it to death y'all. :)
Being the only true 2-dimensional language, Befunge only needs the square root of the lines of code to build an equivalent program to puny 1-dimensional programs like Brainfuck or C++.
Stop trying to hire 10X engineers. Befunge applications are built by true X² engineers.
I went from 0.3Mbps on T-Mobile to 50+ Mbps with this; on providers that limit hotspot speed by examining TTL, this can be an effective way to get around it.
(They assume if they see TTL as one lower than expected, data is passing through a hotspot/phone instead of directly from the phone.)
Tangentially related, but Lucas Pope's new game, Mars After Midnight, just released for $6 on Playdate. Played it for a bit during my lunch break and it's really cool and creative.
I had read a few of his devlog posts[1] from a while back and it's really cool to get an insight into his process. A while back I had also gotten into reading his updates on the process as he built his last game, Return of the Obra Dinn[2]. Only got 10 pages or so into the thread but again, his talent and attention to detail are incredible.
I mean, fair. But traffic on my site tends to be extremely spikey like this (whenever the Spurious Correlations page gets posted somewhere), so I am not sure I would ever get an accurate baseline. I don't mind paying a little extra for something that works.
Also the reason I don't track pageviews is psychological: because the metric cannot impact me in any way, I avoid it so that I don't just sit around watching numbers go up.
I am glad you liked the inline notes! I explored a lot of ways to do that before I settled on them. s/o to Matt Stevans for the CSS: https://www.stevans.org/inline-footnotes/
I don't think the bridge needs another plaque. But the good news is that now if someone else is curious and searches the project number, they will find the answer!
I wish I could upvote this twice. This is the best basic introduction to concepts in functional analysis that I've seen. Another great overview that goes deeper into the math is [1].
Another fantastic application that the website doesn't mention is the composition / Koopman operator. In control theory (e.g. autonomous drones, cars, robot arms, etc.), most real-world systems are described by nonlinear dynamics which are very difficult to work with (e.g. safety/stability guarantees, optimizing over forward horizons using NMPC, state estimation, etc.) The Koopman operator however gives a globally relevant linear approximation of non-linear systems. In other words, you can treat a nonlinear system as a linear system with fairly high accuracy. This greatly simplifies control and estimation from a computational perspective. You can also learn these linearizations from data. Steve Brunton has some good materials on Koopman theory [2][3], and there are some great applications to control of systems such as soft robots [4].
If you're on iOS, I highly recommend Yattee[1], a free Youtube app with no ads, background playback and sponsor block built-in.
The way they get around App Store restrictions is by claiming that they aren't a Youtube app. They're technically a video-watching app which is supposed to be used with your own personal server. The server API they require, however, is supported by Invidious[2], an open-source, privacy-preserving Youtube front end. If you configure an Invidious instance in settings[3] (you don't have to host your own, there are plenty of them out there), you effectively get access to the entirety of Youtube.
It's not a replacement for the official app by any means, it doesn't have a recommendation feed, it doesn't let you log in with a Google account, so it doesn't sync watch history with your other devices, it doesn't let you cast to Youtube-enabled devices, post comments, scroll through shorts etc, but if you have a playlist or a specific, longer video in mind, it's quite good. It also supports Invidious accounts, which let you manage channel subscriptions.
Basically:
a slice is a triple of {ptr to allocation, number of elements used, size of allocation}
the slices will share the same underlying allocation. By specifying the third parameter in the slice function, you set the capacity equal to the number of elements in your slice. This forces the next append to reallocate and copy the contents into a new region.
Without bounding the capacity when creating a new slice, the append operation could possibly continue using the same allocation, shared with the original slice. It could possibly resize and copy as well. It depends on how full the slice is, and is an implementation detail subject to change between versions.
So happy to see the support from the Hacker News community.
I should mention Ditto is a massively ambitious company, we are doing fantastic with traction across major industries.
Our entire core code base is written in Rust and I know HN goes crazy for Rust. If you’re really interested in working on very hard problems like CRDTs, partial replication, query based replication, peer to peer adhoc sync, mesh network or distributed security: please definitely take a look at our openings.
www.ditto.live/jobs
You’ll work on problems that are incredibly difficult, unique and rewarding that you won’t find anywhere else!
Yes, Arduino, Raspberry Pi, and ESP8266 are the best "cheap MCUs" for personal use, quick shipping, good documentation, for a one-off USB keyboard.
For the RPi Pico specifically, the TinyUSB driver is the way to go. This also supports USB host (plugging a keyboard into the Pico), but that didn't support the mouse scrollwheel when I tried.
If you're interested in larger-scale manufacturing, and are willing to invest more time and effort in once-off R&D to reduce the per-unit cost, then there's a lot more options of other MCUs (e.g. PIC, Cypress, STM32).
Mitch Davis gave a great talk at the Embedded Online Conference this year (which my wonderful manager assigned us time to watch during working hours!), where he bridges the gap between hobbyist Arduino development and professional Embedded engineering. (It's closer than you might think)
Miro Samek also has a great series of lectures (which I learned about in the same Embedded Online Conference), which then levels up from an Arduino-style "superloop" to an RTOS, Active Object design pattern, and beyond.
Welcome to embedded development, I hope you enjoy creating new gadgets, and don't forget to share your adventures with the community so we can encourage you along!
Philip Wadler has a seminal paper [0] on implementing pretty printers by modeling them using an algebra. There's implementations of the algorithm in most programming languages nowadays, and some state of the art advances that help with performance [1]
It's a very elegant algorithm, and is very pleasant to work. Elixir's formatter uses a variant of it [2], and it appears in the standard library [3]. I've personally made use of it to write a code formatter for GraphQL queries, and it was a very small amount of code for some powerful results.
Definitely take a look if you ever need to do something like this.
Guitars are even worse, due to fretting. The act of fretting a note stretches the string, which raises its pitch, and the amount varies by string and by fret. So guitars are never truly in tune. Not only are harmonics not sufficient, but neither are electronic tuners! A guitar that is "in tune" according to an electronic tuner is always sharp in practice.
And it gets worse from there! The tuning of a guitar string varies as it decays. This is true of piano strings too, but not to the same degree. A freshly struck string is vibrating more widely than a gentle or decaying note, so it's stretching itself sharp. You can see this on a fast digital tuner - the note will go sharp at first, and then settle to a slightly lower pitch. So when you tune to an electronic tuner, are you tuning the initial pitch, or the decayed pitch? This variation might be 20 cents or more.
Because of this, how to tune a guitar well is very much a matter of taste, context, and experience. I use harmonics and electronic tuners to get myself in the ballpark, then start fine-tuning based on the guitar itself (each one has its own quirks), and the material I'm planning to play. On acoustic guitar, I tend to focus on getting the B string in tune with the D and A strings first, by the quality of octaves for open C and D chords (which also gets the A and D in tune with each other). Then I focus on getting the low E in tune with an octave E on the D string. Then get the high E in tune in unison with E on the B string. Finally, get the G string in tune with G on the low E, an octave down. This means my G string is usually a bit flat relative to the D and B strings, but that's okay - it's in tune for G chords, and being a little flat is good for E major and D chords. I might adjust a little if I'm playing in C/Am.
James Taylor has an excellent YouTube video about tuning guitars consistently with electronic tuners. It's very much to his taste and the specific guitars he uses, but his principles are sound. And if you try it on an acoustic with good intonation, you'll immediately hear that "James Taylor" sound.
39. (alternate formulation) The three keys to keeping
a new human space program affordable and on schedule:
1) No new launch vehicles.
2) No new launch vehicles.
3) Whatever you do, don't develop any new launch vehicles.
I'll admit it does say human space program but it doesn't specify where the humans are.
https://app.tunemymusic.com/transfer