For the interested; the saying I believe you are referencing in regards to writing code / debugging is from Brian Kernighan, specifically:
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
How this biomass expands?! I don't think this happens anywhere else on earth. Usually tress downed into the water simply become bare trunks in the water.
The article states that it grows on driftwood so it is buoyant and mentions it is not that rare (not explicitly but it talks about it happening before)
The approach noted in this article is similar to an experience I just had.
I recently had some old hardware manuals I wanted to digitize, which were pages in 3-ring binders. I started thinking about scanning them but did not have an auto-loading, xerox style scanner at home. I looked around for free software that could do this 'google books style' as they did here in this article - take a photo of each page and automatically find the corners, dewarp, white balance, etc. and export to PDF.
I actually didn't find a premade solution that looked like what I wanted. So I wrote my own, with Python an a simple tk GUI.
I tried a lot Open CV messing about to do automatic page corner detection and whatnot, but found everything I tried unreliable. Sure, the corners may autodetect about 95% of the time, but if 5% of the pages fail and get cropped wrong or dewarped weird, I noted the time it took to go back and fix those errors eclipsed the time saved by the entire rest of the automatic process.
The fastest method I found was a human in the loop semi-auto program: it loaded in all the images from SD card, and had the user manually click the 4-corners of the page as shown in the image. Upon the 4th point being clicked, the page would auto-de-perspective and apply the last saved default white balance curve, thresholding, and posterizing (color binning) / grayscaling / scaling to fixed width. For subsequent images in the camera roll this meant settings didn't have to usually be changed on a per-image basis. Then just a spacebar to add the image to the saved temp queue and at the end an export to PDF.
This approach had me digitizing about 600 pages in an hour I estimate. Yes, it was a lot of clicking for the manual part.... but it allowed me to proof every page as it flew by and this caught a few photographic errors that I wouldn't have caught if it was fully automated, and not a single page was left mis-shapen or unreadable.
I noticed that resellers on ebay of used server equipment that I keep an eye on in Germany pulled all their DDR4 from surplus and used server racks and now list it separately for sale, at jacked up prices. Where you used to be able to see a used Gigabyte server listed with "128GB" "256GB" etc listed in the title, they now all say "0GB". They took extra effort, to pull used ram from older servers, and list it separate, just out of the greed of potentially capitalizing on this market.
The problem is... now for anyone looking to pickup a slightly older used/surplus server rack - you have the go and buy the (now marked up) RAM separate.
So... did they list the "0GB" racks with removed ram cheaper you ask?
Nope. Many of them seem to be basically the same price as they were or even higher than they were, except now you're paying for RAM separate.
I bought a surplus Gigabyte server about 2 years ago off ebay for a home project, and I just went and the same seller still has some for sale, even older now than they were when I grabbed one, but they are 2x the price, and they don't come with any RAM, whereas I got one already populated as they were from the factory. Once you add that back in literally looking at 150-200% markup in the last 2 years on what was just surplus computer equipment that is 5+ years old.
Why would I voluntarily choose to sell the hardware I have for less than the going price? The odds of it getting picked up by a scalper and resold are extremely high. If I was sitting on a goldmine of old server hardware, I would absolutely be ripping out the RAM and selling it per stick in this market.
> So... did they list the "0GB" racks with removed ram cheaper you ask?
Could this be an indication that there's a supply shortage/price increase of the remaining components in the rack? Or do you interpret it as people just trying their luck out of sheer greed?
Greed? Resellers aren't charities, good for them if the value of their stock goes up. Besides, people buying server equipment aren't exactly starving, I bet most of them can either simply not buy the server, or cut some other expense.
The prices of these boards have gone up it seems since the knowledge on how to bring them up and effectively utilize them has proliferated.
After the crypto miners dumped them (that was, what, 2 years ago?), I saw one of the entire rack systems on eBay- I think they held 12 of these in one rack on a common backplane - for $800. (or maybe less?)
I checked eBay and they are now around 200 usd and up. All the sellers located in the US and Canada, so a bit more involved for hackers looking into building one from Europe. I still pulled the trigger on one, not sure I will use it much but I'm definitely gonna have a lot of fun building it!
Support for the board is also way better than before. Now you can customize RAM assigned to cpu/gpu, idle power, in some cases unlock cores, distros work out of the box, etc.
And the alternative of getting a gpu, cpu, ram, storage is like 5 times as expensive.
That's not exactly true, they can be "unlocked" but not many people have tested and verified that the unlocked memory is stable and/or useful.
But the cards themselves are extremely limited in function, necessitating either board level work to reconnect the electrically disconnected traces or transplanting the hardware to a new board. It's anything but plug and play.
Man this is a middle-schooler level napkin math question.
Take a Boeing 777, it has a wingspan of about 60 meters, and I'll ballpark an average upper wing chord of about 7 meters, for a total upper flat area of about 420 square meters.
High quality modern but standard single sided solar panels can do about 220 watts per square meter is full sunlight (around 22% efficiency tested at a 1000w/m^2 irradiance).
So that is 92,400 watts at full power.
92kW is less than the peak power of a Nissan Leaf. 92kW is 123 horsepower.
The two GE turbofans of a 777 are generating something like 40-50 MW of shaft power during cruise. MW.... megawatts. 50-60,000 horsepower.
Plastering the wing surface of a commercial plane with solar panels would make up less than a quarter of a percent of the total power it uses to produce thrust at cruise, at best case with them fully-lit.
Fully solar sailplanes do exist (NASA's Helios prototypes are an example) but that isn't anything close to a 'normal' aircraft with any appreciable payload/passengers.
Cheers- I guess I'll add, the turbofans that all modern airliners use are almost always referred to by their 'thrust' and you ofter see a lot of published numbers of takeoff thrust and such - it is harder to find numbers at cruising seed and altitude, and then in reality what you need to know is the actual power needed to generate that thrust.... there is some complexities there but in general the turbines generate what is known as 'shaft horsepower' which is a good stand in number we're looking for to compare.
The real takeaway is that power is power and energy is energy and regardless of how it gets to do the 'pushing' of the air, if you want to use solar energy (power, at any given moment, not integrating over time) those are the numbers you are comparing. It's all just unit conversions, at least when you're attempting such napkin math. Anything more - taking into account the actual systems, losses, efficiencies, etc.. just makes it all worse, not better.
A cool exercise is - given the 777 wingspan I esitmate and the power output from solar of said size... what kind of current aircraft use piston-driven engines with similar horsepower? Assuming we had motor inverter electronics and an electric motor that was 100% efficient, you could imagine trying to build a similar weight aircraft of that size that has such a wingspan.
This is why you wind up with the only solar powered aircraft out there being superlight, high altitude craft with super high aspect wing surfaces- maximizing wing area to weight / lift capability such as:
https://en.wikipedia.org/wiki/AeroVironment_Helios_Prototype
(note the largest of those prototypes and the tiny amount of power output they were making. All that wing area and it would have barely been able to carry a single passenger as payload and cruise a day without battery power)
I just did something neat-
I tried out the install of Windows 3.1, which has a version of Visual Basic installed. I created a small program in Visual Basic, with a window and some buttons to press, and then saved the program as an .exe (remember how easy this used to be! you could make your program and then just... save the executable out of VB! No compiler knowledge needed!)
I then saved this .exe to a disk image, and then saved that disk image back to my modern mac that I'm doing this on via downloading that in the browser.
I then took that .exe and the only dependency - vbrun100.dll - and put it on a floppy (a real one) and then took that floppy over to a vintage computer I have that has Windows 3.1 on it still (an old 25 MHz Intel486 DX industrial computer I have sitting in a closet with no real use for). Popped in the floppy, copied the .exe and .dll.
And ran the program, no problem!
A real GUI windows program, made in VB running in Windows 3.1, inside an entire emulated machine in Javascript in a browser window running on an Apple Silicon macbook in 2026....
Exported and saved to disk and then ran without issue on a piece of hardware made in *1992*!
Now I need to do the reverse... make some software with a copy of VB installed on this old machine of mine and run it on my mac inside the browser.
Yes, just tried this, and my little exe ran on a Windows 10 64 bit machine just fine.
Which means I just built a demo of a tiny 16 bit windows GUI applet, using emulated VB in Win 3.1 in a browser and got it to run on modern Windows in a shorter amount of time than it would have likely taken me to get the same type of demo up and running natively in Windows 10 today.
Nothing was worse however than getting a game used and not getting the manual included, when the manual contained very necessary information to progress through the game, and in an era where 'The Web' still wasn't really a thing....
Journeyman Project... that brought back a deep rooted memory. Its still not clear to me if my Packard Bell came with a full version or a demo, because I remember being stuck about an hour in and could not figure out how to progress. I also was mildly interested in the game, but had better ones to play- Myst, X-Wing, etc.
Actually, yes, this was the experience I was recalling... it was 1995, not 1993, and it was the 'Turbo' version of Journeyman Project, which came in a CD pack bundled with Windows 95 by Packard Bell (a surprisingly large compilation of software to bundle with such a computer at the time. Man, it was a golden age of progress in the PC world back then).
Since it wasn't the retail version of the game, it did not come with the original instructions; instead they buried the door access code and some other numerical codes you needed during the game in a bundled instruction book for the CD box set. [0](the little teal booklet in this photo) No one ever knew to look in there, because it doesn't appear to be branded to have anything to do with the game.
There are entire sects of people on the internet that share this incredibly frustrating memory from their childhood. [1]
That's really interesting- I wish I could go back 30 years and verify that- I am a bit skeptical to be honest, as a young sponge with my first computer I was reading everything available to me- which wasn't much, a book on windows, and the manuals that it came with. But maybe I missed it.
That booklet doesn't appear to be available online anywhere :(.
This is cool, I had some questions because I was trying to understand this more - not the diffusion model training part, because that I've actually seen before- but the actual way you bundled this into a web application and the choices made...
Did you publish the actual trained model anywhere? I see how in the code there is python for how individual samples can be generated, but the model checkpoint pulldown comes from a directory that... I don't see.
I then went through the code of how this runs on the web and- I'm not a web dev guy- so I'm pretty confused at all the bits bolted together to make this into a web app. It seems like there is a WASM bit that is compiled from a typical C++ audio plugin that is doing the stuff like conv reverb and limiting and distortion in the web app - all that is oldschool, non-generative AI, DSP being applied to the samples. Then the samples are just... a few default generated samples, to start- where are they pulled from, physically? And you have a login requirement to spool up the actual generative AI part to generate new samples to run into the DSP (because that needs a GPU on the backend to do, so, a login to help rate limit this)
How big is the actual generative model? Did you ever think about building the generation engine into the WASM bundle, using maybe WebGPU in the WASM to accelerate in a platform agnostic way, so that the entire app would run offline in someone's browser window?
I'm having fun just playing with the kick program without a login, which, again, am I right in saying in that mode there is no gen AI of sampled happening server side, it is just playing starting with some pre-made samples?
It was a lot of work to get a good DSP to work on the web hahah.
Yes, I am writing the DSP in C++ and compiling to WASM. Im using multithreading so the audio work is done in the AudioWorklet while the UI is run in the main thread. I was thinking of writing another article on this because it's pretty interesting and a bit complex.
I sound designed some of the kicks myself and some of them are from sample packs. I just renamed them all to have German names.
If I wanted the model to run completely in the frontend I would need the user to download 300MB of weights and it would probably be tricky making sure it works on everyone's hardware. So I though about this but it didn't seem like the best option. I'm pretty sure it is possible though.
And yes I put rate limiting so no one goes crazy on my credits.
It's prescient.
reply