I wonder if there could be something like a Wikipedia for programming. A bit like what the book Design Patterns did in 1994, collecting everyone's useful solutions, but on a much larger scale. Everyone shares the best strategies and algorithms for everything, and updates them when new ones come about, and we finally stop reinventing the wheel for every new project.
To some extent that was Stack Overflow, and it's also GitHub, and now it's also LLMs, but not quite.
May I suggest "PASTE": Patterns, Algorithms, Solutions, Techniques, and Examples. "Just copy PASTE", they'll say.
Ward Cunningham once, of all places in an Github issue [0], explained how the original C2 Wiki was seeded.
> Perhaps I should explain why wiki worked.
> I wrote a program in a weekend and then spent two hours a day for the next five years curating the content it held. For another five years a collection of people did the same work with love for what was there. But that was the end. A third cohort of curators did not appear. Content suffered.
A heroic amount effort of a single person, and later the collective effort of a small group, worked in the mid-90es. I'm skeptical that it will be repeatable 30 years later. Despite this, it would be the type of place, that I'd like to visit on the web. :(
Yup, that was always very much the plan, from the earliest days. Shame it soured a bit, but since the content is all freely reusable, maybe something can be built atop the ashes?
This is _not_ at all the same thing. Grok just ripped off Wikipedia as its base and then applied a biased spin to it. Check out the entry on Grok owner Elon Musk; it praises his accomplishments and completely omits or downplays most of his better-known controversies.
Yes exactly! It would need some publicity of some kind to get started but it's the best solution, certainly? And all of the tools and infrastructure already exist.
I always love the moment in blog posts like this, where the writer with their esoteric knowledge of the project will say something like "I almost considered reflaboring the exahenge, but of course it would be a ridiculous prospect for a project of this type". And then always, inevitably, there is the followup edit; "I reflabored the exahenge."
Too rarely in life are things made better than practical consideration would dictate, just because of dedication to the craft.
History is made by people who reflabor the exahenge.
I build microscopes instead of telescopes (as a hobby). I can't tell you how many times I've taken a mostly working system and stripped it down to make some important change that affects most of the design to get only a tiny incremental improvement. Sometimes that improvement makes all the difference (for example, being smart when 3d printing a piece that carries something heavy so it doesn't deflect) and sometimes it's just an itch I need to scratch. Eventually, I learned to make two: a microscope that gets built and used, and then a microscope that is a prototype. Then I'm not tempted to take the daily driver and pull the engine.
Uh, OK. So a few decades ago a scientist I respect built his own scientific tool from parts (https://www.nature.com/articles/35073680) and I was really blown away by that idea, especially because most scientific tools are very expensive and have lots of proprietary components. I asked around at the time (~2001) and there wasn't a lot of knowledge on how to control stepper motors, assemble rigid frames, etc.
Although my day job is running compute infra, I have a background in biophysics and I figured I could probably do something similar to Joe Derisi, but lacked the knowledge, time, and money to do this either in the lab, or at home. So the project was mostly on the backburner. I got lucky and joined a team at Google a decade ago that did Maker stuff. At some point we set up a CNC machine to automate some wood cutting projects and I realized that the machine could be adapted to be a microscope that can scan large areas (much larger than the field of view of the objective). I took a Shapeoko and replaced the cutting tool with a microscope head (using cheap objectives, cheap lens tube, and cheap camera) and demonstrated it and got some good images and lots of technical feedback.
As I now had more time, money, and knowledge (thanks, Google!) I thought about what I could do to make scientific grade microscopes using 3d printer parts, 3d printing and inexpensive components. There are a lot of challenges, and so I've spent the past decade slowly designing and building my scope, and using it to do "interesting" things.
At the current point, what I have is: an aluminum frame structure using inexpensive extrusion, some 3d printed junction pieces, some JLCPCB-machined aluminum parts for the 2D XY stage, inexpensive off-the-shelf lenses and industrial vision camera, along with a few more adapter pieces, and an LED illuminator. It's about $1000 material, plus far more time in terms of assembly and learning process.
What I can do: the scope easily handles scanning large fields of view (50mm x 50mm) at 10X magnification and assembles the scans into coherent fullsize images (often 100,000x100,000 pixels). It can also integrate a computer vision model trained to identify animacules (specifically tardigrades) and center the sample, allowing for tracking as the tardigrade moves about in a large petri dish. This is of interest to tardigrade scientists who want to build models of tardigrade behavior and turn them into model organisms.
Right now I'm working on a sub-sub-sub-project which is to replace the LED illuminator with a new design that is capable of extremely bright pulses for extremely short durations, which allows me to acquire scans much faster. I am revelling in low-level electronic design and learning the tricks of trade, much of which is "5 minutes of soldering can save $10,000".
I had hoped to make this project into my fulltime job, but the reality is that there is not much demand for stuff like this, and if it does become your job, you typically focus on getting your leadership to give you money to buy an already existing scope designed by experts and using that to make important discoveries (I work in pharma, which does not care about tardigrades).
Eventually- I hope- I will retire and move on to the more challenging nanoscale projects- it turns out that while you can build microscopes that are accurate to microns with off-the-shelf hardware is fairly straightforward, getting to nanoscale involves understanding a lot of what was learned between the 1950s and now about ultra-high-precision, which is much more subtle and expensive.
Here's a sample video of tardigrade tracking- you can see the scope moving the stage to keep the "snout" centered. https://www.youtube.com/watch?v=LYaMFDjC1DQ
And another, this is an empty tardigrade shell filled with eggs that are about to hatch, https://www.youtube.com/watch?v=snUQTOCHito with the first baby exiting the old shell at around 10 minutes.
Yes, I took an existing vision model that could run at realtime on my laptop, and fine-tuned it with a few hundred manually labelled images of tardigrades.
I don't like the openflexure design at all. I mean... obviously it works for a lot of people, but I just don't want a flexure based stage. I like real 2-axis stages based on rolling bearings, basically cloning the X and Y parts of this: https://www.asiimaging.com/products/stages/xy-inverted-stage...
UC2 is another cool project: https://openuc2.com/ but I found their approach constraining.
Frankly I think you could just buy an inexpensive 3D printer that had an open firmware, and replace the extruder with an objective, a tube, and a camera, and you'd have something up and running cheaper for less time.
Well yes, but are you wiggling the giblet or are you flensing the grobbulus? Because the latter requires specialised equipment and a flensing trampoline, whereas the former requires a 1mm Allen key and possibly a hard whack on a nearby surface while nobody’s looking.
Your comment brings me back to my first mirror making adventure, I was absolutely overwhelmed by the jargon and acronyms used by the mirror making community... a few years later I internalized it and use it as if it was common knowledge. I should put little explanations or details in my posts.
If you are a really big fan of something, you'll get familiar with the lingo, but that doesn't mean you can play StarCraft well or weld or shred your guitar.
That's actually part of why FizzBuzz was so notorious: there were (apparently) plenty of people who could talk the talk about programming and software engineering, but couldn't do FizzBuzz.
There was enough there for me to get the basic idea, which is fine I think. Can't really expect every niche post to have all the details necessary for a general audience and it's fun to get a glimpse into these worlds anyway.
I just love the fluent use of terms, and the whole ontology of the subject itself just seems so appealing to me. For a moment, I felt like others feel when listening to me and my colleagues discuss kernel build issues or other software challenges - befuddled, bemused, enchanted.
I guess, if/when I retire to that remote mountain hideaway, I might just get into this hobby. The idea of grinding my own mirrors to look at dew on the spiderwebs of the neighborhood is just so appealing.
The worst part is, there are now two control panels (the other is called "Settings"). Some settings are in both, while others are only in one or the other.
No, they absolutely know. They've been very very slowly migrating stuff over to the new Settings panel bit by bit. If you look at what's in Control Panel now, it's maybe half as much as what used to be in there ten years ago.
That said, it's insanely ridiculous that it's taken 10 years to get it even halfway done.
Chlorofluorocarbons, microplastics, UX dark patterns, mass surveillance, planned obsolescence, fossil fuels, TikTok, ultra-processed food, antibiotic overuse in livestock, nuclear weapons.
It's a defensible claim I think. Things that people want are not always good for humanity as a whole, therefore things can be useful and also not good for humanity as a whole.
There was some confusion. I originally read Wiseowise's comment as a failure to think of anything that could be "useful but bad for humanity". But given the followup response above I assume they're actually saying that LLMs are similar to tools like the Internet or Wikipedia and therefore should simply not be in the bad for humanity category.
Whether that's true or not, it is a different claim which doesn't fit the way I responded. It does fit the way Libidinalecon responded.
That thread is a fun (though frustrating for them!) conversation to read through.
After about a hundred back-and-forths getting the guy with the actual hardware to try different commands, I was thinking to myself man, maybe he should just give him remote access to work on the target PC, this is torture for both of them. And then I see him comment:
> Honestly I'm thinking of this and maybe something insane like organizing ssh access or something to quit torturing Nadim with building and rebooting all the time
And Nadim replies:
> Haha, sorry, but there's no way I'm giving you SSH access!
> I’m fine with continuing with tests!
Which is fair enough! But was funny to see right when I was thinking the same thing. Great perseverance from both of them.
Was slightly disappointing they they moved off GitHub to Discord eventually so after all that, we miss the moment of them actually getting it working!
If you ever did this as a larger Kickstarter type project, I wonder if it'd be possible to get stepped faders so you could physically click-click-click-click through each semitone.
This is a cool idea, but you can switch between major, minor, chromatic and pentatonic scales so the interval between notes changes depending on how many there are so having fixed clicks wouldn't work in that case.
To some extent that was Stack Overflow, and it's also GitHub, and now it's also LLMs, but not quite.
May I suggest "PASTE": Patterns, Algorithms, Solutions, Techniques, and Examples. "Just copy PASTE", they'll say.
reply