HN user

gooseyard

627 karma

http://go.c800colon5.com/

Posts7
Comments144
View on HN

I was going to post this as well, its delightful to see that other people enjoy it since it was really mind-blowing when I read it.

It's interesting since I saw another comment near yours that raised the question of robustness of the lab-grown design, which I thought was kind of the most fascinating part of the damninteresting article was the revelation that the evolved programs were inseparable from the single physical FPGA used in the training. Since this RFIC training model employs a simulator, do you suppose that the quirks of the physical hardware on which the simulator runs are sufficiently isolated from the training such that a pair of designs would behave similarly when the simulator was run on distinct hardware? And I guess the even more obvious question is whether a design evolved on a simulator would have any hope of behaving as expected in physical hardware?

My hunch about the latter is no, although it still seems like an interesting study, and I often find myself thinking that really understanding what was going on with the FPGAs might be a prerequisite for really understanding how to master reinforcement learning.

Anyway I'm glad you posted this and if you have any other favorites related to this domain send them my way!

By complete coincidence, yesterday I came across this link to an article Peter Naur wrote in 1985 (https://pages.cs.wisc.edu/~remzi/Naur.pdf) which I haven't been able to stop thinking about.

I've been doing this for coming up on thirty years now, mostly at one large company, and I spent a significant number of hours every week fielding questions from people who are newer at it who are having trouble with one thing or another. Often I can tell immediately from the question that the root of the problem is that their world model (Naur would call it their Theory) is incomplete or distorted in some way that makes it difficult for them to reason about fixing the problem. Often they will complain that documentation is inadequate or missing, or that we don't do it the way everyone else does, or whatever, and there's almost always some truth to that.

The challenge then is to find a way to represent your own theory of whatever the thing is into some kind of symbolic representation, usually some combination of text and diagrams which, shown to a person of reasonable experience and intelligence, would conjure up a mental model in the reader which is similar to your own. In other words you want to install your theory into the mind of another person.

A theory of the type Naur describes can't be transplanted directly, but I think my job as a senior developer is to draw upon my experience, whether it was in the lecture hall or on the job, to figure out a way of reproducing those theories. That's one of the reasons why communication skills are so critical, but its not just that; a person also needs to experience this process of receiving a theory of operation from another person many times over to develop instincts about how to do it effectively. Then we have to refine those intuitions into repeatable processes, whether its writing documents, holding classes, etc.

This has become the most rewarding part of my work, and a large part of why I'm not eager to retire yet as long as I feel I'm performing this function in a meaningful way. I still have a great deal to learn about it, but I think that Naur's conception of what is actually going on here makes it a lot more clear the role that senior engineers can play in the long term function of software companies if its something they enjoy doing.

I haven't actively looked into it, but on a couple of occasions after google began inserting gemini results at the top of the list, I decided to try using some of the generated code samples when then search didn't turn up anything useful. The results were a mixed bag- the libraries that I'd been searching for examples from were not very broadly used and their interfaces volatile enough that in some cases the model was returning results for obsolete versions. Not a huge deal since the canonical docs had some recommendations. In at least a couple of cases though, the results included references to functions that had never been in the library at all, even though they sounded not only plausible but would have been useful if they did in fact exist.

In the end, I am generally using the search engine to find examples because I am too lazy to look at the source for the library I'm using, but if the choice is between an LLM that fabricates stuff some percentage of the time and just reading the fucking code like I've been doing for decades, I'd rather just take my chances with the search engine. If I'm unable to understand the code I'm reading enough to make it work, it's a good signal that maybe I shouldn't be using it at all since ultimately I'm going to be on the hook to straighten things out if stuff goes sideways.

Ultimately that's what this is all about- writing code is a big part of my career but the thing that has kept me employed is being able to figure out what to do when some code that I assembled (through some combination of experimentation, documentation, or duplication) is not behaving the way I had hoped. If I don't understand my own code chances are I'll have zero intuition about why it's not working correctly, and so the idea of introducing a bunch of random shit thrown together by some service which may or may not be able to explain it to me would be a disservice to my employers who trust me on the basis of my history of being careful.

I also just enjoy figuring shit out on my own.

I listened to an interview with the woman who was at the time I believe overseeing the efforts of the Audio Engineering Society to address the problem of the countless recordings made on proprietary digital audio tape machines like the Sony PCM-3348. The total number of those machines that were ever built was small since so few studios could afford them, but they were major studios and thus the masters of many of the most culturally significant albums are on tapes in that format.

She mentioned that even if you could find one of the machines that was working, keeping it running required routine maintenance and that they were down to essentially one guy who was nearing the age of retirement who had the skill and parts to keep one running. So they were in a race against time to figure out which masters to convert.

The problem gets even more thorny for sessions that were recorded using software like ProTools, which has been around in some form or another for almost 40 years, has gone through countless revisions of project file formats, and has a complicated relationship with specialty audio hardware and software plugins.

It seems like there's a general awareness of the problem now and good studios are taking some measures to archive sessions in ways that allow them to be imported in the future, but in the meantime there are two decade's worth of recordings at risk, even if their media hasn't been lost or corrupted. I guess if nothing else its a cool opportunity for people who like to hack on systems of this type though.

i'm also an audio nerd and although I do everything in the box when i'm recording, i agree completely that it's way easier to use outboard stuff for this case. i had an analog channel strip but decided to try one of the very inexpensive behringer uv1 strips with an integrated usb interface and it's been great, the gate and compressor work well, and i have a rolls audio parametric eq in the effects loop to high pass and de-essing.

since it's convenient to use the headphone out on the uv1 for the headset, i do use a limiter plugin in Rogue Amoeba Soundsource to compress the output from the conferencing software we use, it's nice being able to do that per-application since i listen to music through the headset a lot and don't want to have to take the limiter in and out.

analog headsets are so much less annoying and flexible, huge fan

I don't know quite what it is either, but I do know with certainty because it was my own experience that the act of inventing songs doesn't require any kind of experience at all, as some of my earliest memories as a child were riding in a car with a radio playing in the background, having some melody occur to me, and then being unable to get it out of my head. They weren't novel because they wouldn't have come to me had I not been idly listening to a lot of music, but neither were they just a slight variation on what I had been listening to.

I am by no means a prolific or genius songwriter, nobody would know any of my music, and I don't believe that any of it is particularly impressive. However I've always found the fact that it happened spontaneously way to be a source of wonder, and as I've aged as a musician its delightful to see the endless stream of new songs and that it doesn't seem to matter whether you're a prodigy when it comes to writing songs that impact listeners. It seems to be a fundamental aspect of the human experience.

I've struggled to teach this to jazz students, I know when I was a kid I read the same kind of advice in guitar magazines, and while I don't think that the theory-first advocates are malevolent, I think most of them were not serious jazz players and were getting paid to deliver a monthly column.

The analogy I've tried to use in teaching is that learning to play jazz is like being a comedian; when your skills are at their peak you're going to be inventing jokes regularly, but in the decades before you get there, you're going to be delivering other people's jokes putting a little of your own spin on them. The delivery matters a lot, and like good jazz playing it's pretty much impossible to write a book called "How to be Funny" that wouldn't just be an academic analysis rather than an instructional guide.

I struggled with jazz for the reasons I've alluded to above, and it wasn't until I started studying with a teacher who just had me memorize hundreds of standards that I got my playing together. We definitely talked about the technical bits of what was happening in the tunes, but those were really just interesting observations; repeatedly playing them in a group setting after woodshedding them at home between lessons, then taking a lot of solos was really what made it happen.

It really makes me happy to see up-and-coming killer players like Patrick Bartley espousing this same approach. Yeah it means you're going to spend thousands of hours memorizing tunes, but if that's not fun then playing jazz isn't going to be fun either.

I grew up in this area of West Virginia, it's such a crazy thing that a community of really amazing scientists are nestled in the middle of this incredibly rural area. It's really neat to see the old blue trucks if you take the tour, and the Cass Scenic Railroad is just nearby and gives a really beautiful view of the telescope array. The National Youth Science Academy Camp is also surprisingly located nearby, it was wild as a kid knowing that this batch of future scientists were flying in from all over the country and once I learned of it I wished I'd studied a bit harder. Such a beautiful, strange place.

If you consider the idea of music as language, genre as somewhat akin to regional dialects, and performance as akin to a recitation in that dialect to an audience, then the most fundamental prerequisite for composition is having something to say.

My background is in jazz, and often I encounter beginner students who have learned enough about the pedagogical aspects of music to know about a thing called theory and that there is virtue in knowing it, but they also mistakenly believe that an knowledge of theory is sort of the fountain from which ideas flow, which is not the case. For example to learn to compose and improvise in the jazz idiom, the way I learned it, the way essentially all the people I play with learned it, and how I teach my own students to do it is to internalize a great deal of music in your chosen style by players whose style resonates most with you. Memorizing changes, transcribing recorded parts on whatever instrument you enjoy playing, and so on. After doing this for a while you will start to develop a vocabulary of musical phrases which will occur to you spontaneously as a reaction to some kind of prompt, for example in jazz there are common sequences of chords that occur frequently in compositions, and by absorbing thousands of melodic phrases that occur over those changes you will have an innate idea of what you like to hear over them without having to think analytically about the relationships between tones and scales. You can certainly apply knowledge of theory to expand on your ideas in an analytical way, but the intuitive part needs to be developed first.

Many beginners balk at this idea because they like the idea of having purely new ideas, and you can certainly do music however you want, but I think ultimately most composers/performers want audiences to hear their work and there is a tacit relationship between the two; the audiences have an opinion about what sounds good and if your compositions don't sound like the genre of music they enjoy, neither of you are likely to be happy. I like to use the analogy of stand-up comedy; your jokes may crack you up but people don't want to watch somebody else laughing, so you have to meet them partway.

So having said all this, I think step one is to develop some opinions about what you think sounds good. Make a list of your favorite recordings and your favorite performances on those recordings and learn to reproduce them somehow. If you don't play an instrument, figure out how to sequence the changes, or noodle out a melody on the piano (if you don't play any instruments the piano is the smart choice, since it's like knowing how to type if you're a musician). The act of making these reproductions will tune your ear to hear chord qualities that might not be apparent to you until you try to recreate them, and relationships between notes in a melody and the supporting changes that you missed when just listening.

During that process, take time to just play. Undirected noodling on an instrument is the way you develop an intuition about where the notes you like live in relation to each other, and bumping around the space of notes on an instrument is a great way to learn.

At some point during those play sessions, you'll have an idea that'll get stuck in your head. Capture those ideas, save them, and then when you have a few you like, its time to start working on the composition process, either by notating/sequencing them with software instruments, or making a recording of mixed live/sequenced performance. I generally use Garage Band for making demos that I give to people I perform tunes with, some of my friends love Ableton Live, and the friends I know who do arranging for a living typically use something like Sibelius to produce scores.

I think that after you've made a few compositions of your own, if you decide you want to continue, its not a bad idea to take an introductory course on harmony to help develop your ear so that you can identify sounds that you like, but I think its best to do that after you have started to develop an intuitive sense of what sounds good, since that's the skill thats going to determine whether you make something that is interesting and not built from a formula.

Good Luck!

At risk of sounding argumentative, another way of looking at this I think is that the community of people in the US who have known only a facts-first approach to reality are now discovering the size of the community of people whose worldview is effectively tribal. I was raised in a very rural community and many of my most vivid memories are of members of my extended family recounting stories which I now know are urban legends, joking knowingly with one another about how so called experts in far-off cities were confused, and cautionary tales about the horrible things that members of other races would do to you. You can imagine how confusing it was then to go off to college and then to see the world and meet people and discover how much of the mythology I'd absorbed was no more than that.

The bulk of the people I've described had very little interaction with the world outside the area where they lived, and the only way they were likely to interact with someone from the facts-first community was via a letter to the editor of some magazine (which might not be published), or if an outsider came to visit, in which case politeness might avoid a confrontation.

Social media introduced these two groups to each other, each group thinks the other is comprised of fools and neither is shy about saying so, and here we are. In my own family, I have yet to see a case in which a member of the tribal knowledge community was moved by an argument from a member of the facts-first community; their belief structure seems to ossify at around pubescence and compromising on it in any way would risk a loss of status in that community.

I take some comfort in believing that we have not been plopped into a post-truth reality, but rather that providing the internet to rural tribal communities was rather like switching on a light and discovering what things had been hiding before our eyes in the dark. I think its also a generational issue because the difference between my old relatives and their offspring my childrens' age is nearly as stark as the difference between the facts-first and tribal-knowledge communities on the whole. While it sucks that this post-truth era will be with us for a while I'm hopeful that the same internet access that led to this schism will also allow at least some of the kids who grew up like I did to be skeptical about tribal knowledge from a younger age. However you might also argue that now the segment of the entire population who are susceptible to misinformation will be poisoned in the same way I was.

Anyhow thanks for your comment; reading it made me stop to think about something that had been bothering me a great deal lately and it was helpful writing this response.

The closing on the sale of my house in Quincy was that day. I was moving far away immediately after the closing, had my car packed with most of my worldly goods and all I had left to do was to drive up to Reading to sign the papers. Not long before I needed to leave, I happened to check boston.com and saw that 93 was closed, and figured I was doomed as it had been tough selling the house.

As it happened both parties arrived way late, and the deal went down. I'm still a little salty about it after all this time.

i wouldn't sweat it. if orch-or works out it won't matter who was on board early. sometimes i think that a group of people guess that some theory is correct before some clever academics figure out how to prove it in a manner that satisfies the community of science, but without that rigor we'd be buried in bullshit.

I've been playing jazz most of my life and one of the most frustrating parts of it has been this idea that there should be some immediately obvious virtue in jazz as a musical style. If you're a musician who enjoys improvisation, chances are good that you'll be drawn to jazz, especially to recorded works from the era of albums like Kind of Blue. But you aren't some kind of philistine if it doesn't hook you.

For example, I have studied a lot of classical repertoire in order to get my technique together to improve my jazz playing, and while I appreciate those compositions, I don't really listen to them for pleasure. My opinion about their value as works of art is not based on whether I enjoy them or not. I don't enjoy many types of food but I recognize that they have enormous value to people who do enjoy them. We like what we like, and we shouldn't judge styles on the basis of whether we like them or not.

If you listen to a record like Kind of Blue and it doesn't do anything for you, don't sweat it. You wouldn't be a better person for liking it, and no true lover of jazz would judge you on the basis of whether you like that record or not. If you're genuinely curious, listen to other jazz records from the era, maybe you'll like those. If you don't, no big whoop. There's a lot of music to love. Listen to what you like.

well im a dope, I never noticed the edit option. So if I edit the hunk and toggle the subset of changes I don't want, I'll get prompted to accept the diff of the diff? brb I need to go try this.

I didn't know about git add -p when I started using magit and thought it was an amazing magit-specific feature and went around cluelessly telling everybody about it. Later when I was experimenting with a different editor I realized my folly, and have come to find that I prefer git add -p, since I often want to provide multiple paths or a glob etc when its time to add to the index.

Something I found that I like about the approach is that sometimes while working on a change, some unrelated code will catch my eye that I want to fix but not as part of my next commit. Being free to make the edit, knowing that I'll see it again later when staging changes, is nice because I would often otherwise forget to go back and revisit the thing I saw. The git add -p sessions then wind up being an opportunity to decide what changes go into each commit, etc. I do burn myself occasionally by having an unrelated edit that is in a hunk that can't be split- I suspect there are tweaks to diff I could make to help with that but have yet to overcome my apathy wrt research.

I got a 64k CoCo2 when I was 10 or so. The Apple II was the only other computer I had ever used, and so my worldview was that BASIC was how you interacted with a computer. My Radio Shack carried Rainbow magazine and had lots of back issues available, and they were just absolutely delicious to me as a kid with all the program listings and ads for new hardware.

What totally confused me at the time though were program listings in assembly (I couldn't figure out how you were meant to type those in) and especially the discussions of OS-9. I didn't know what it was, and even in some cases where I found a Radio Shack with the Tandy OS-9 distro, it was like 100$ and didn't have any games as near as I could tell, so I couldn't figure out why you would pay so much for it. Also I lived in a rural location where even the nearest 6809-oriented BBS would have meant expensive toll calls, so I missed the opportunity to learn that way.

Anyway skip forward, I started to college in 1993, immediately found Usenet, then Linux, and spent the next 30 years or so steeped in that world. Every so often I would go back and do a little reading on the 6809 world, but because I had never really understood most of what was going on, I didn't have a great deal of nostalgia.

Finally though, a few weeks ago I came across a link (maybe here?) to a release of the VCC emulator, and although I had played with a couple of 6809 emulators before, I hadn't really gone down the rathole of finding the MultiPak roms, or hard disk controller paks, etc. I found a couple of hard drive images, one from the NitrOS9 Ease of Use project, and another random NitrOS9 image packed with old software. What was particularly fascinating to me was the NitrOS9 source itself- since my introduction to Unix was in the 486-MMU-having-era, to see what people were able to do with a 6809 and an assembler was just a joy to read and understand.

I feel like probably everything that has ever needed doing on a 6809 has probably been done, and I've done enough 8 bit assembly stuff in school that I don't have a powerful urge to go back and make something myself, but boy what a feeling of having come full circle when I cd'd into the NitrOS9 source directory and found a makefile of all things! I feel so fortunate to have been able to live through a time of such explosive growth and change, and hope to get the chance to do a little OS-9 hacking when I retire some day :)

UniFi Express 3 years ago

I am not much of a networking guy but decided to try the Unifi stuff several years back after some frustration with one of the consumer mesh wifi things. I found the Unifi stuff incredibly confusing when reading about it prior to buying some. Some friends at work who are more networking savvy were very keen on Unifi were very helpful though, and it turns out not to be as strange as I thought, although coming from the garden variety consumer wifi router boxes, it seemed bizarre at the time. I'll try to give an explanation along the lines of what they gave me.

In a wifi router like your TP-Link, the control plane software is running on the box with the the switching hardware and wifi ap, so you've got a little single board computer running web server for the UI, and all the random dhcp/dns/etc and other doodads that can run on them.

In the Unifi world, you've got all the same functions, routing/switching/wifi etc, but instead of sharing one box, the functions are spread across a number of different devices.

As with a combination router/wifi/switch, the important part to a user like you or me is that control plane software- you plug the thing in, point your browser to 192.168.1.1 or whatever, and set things up. The Unifi world has this too, but that software component doesn't need to run in any specific place in your network. So for example, you could buy two Unifi Access Points which do nothing but talk to wifi clients, then you would need some kind of device capable of going your routing, and you might need a switch as well.

Ubiquiti sells a variety of little routers and switches that can perform those network functions, but which don't have any compute or storage resources that would be necessary to run the control plane software. However, they also sell little gizmos like the Cloud Key which can run the control plane software- it's just a tiny server with some flash storage and an ethernet port. I'll refer to that thing as The Controller.

When you change some settings on your TP-Link, the web UI app is twiddling with the the routing/switching/wifi/etc hardware or software on the device. In the Unifi world there's a web ui as well, running on the controller, but when you change a setting in the web ui, the controller decides which devices need to have their configuration updated, and sends out new configuration to them over the network.

Here's where I think things get confusing. The Controller software package can run on a wide variety of devices which are so different that the whole thing will seem nonsensical if you're used to regular wireless routers. You can buy a CloudKey and connect it to your network. You can download a copy of the Controller that will run on a Linux box on your network. Or you could do the same thing but have the Controller running on a machine that isn't on your network at all, like an EC2 vm. Or, Ubiquiti also sell some devices which combine two or more functions into a single device, like some of the "UDM" family of devices have compute and storage resources in addition to the switching/routing/wifi hardware, and have The Controller software installed in advance.

To give you an example of how flexible the controller placement is, I have a little Synology NAS that is able to run Docker, and on it I have an image that contains the Unifi Controller, so when I go the web ui for my network, I'm talking to a containerized web server on the NAS, which is managing the configuration of my devices, which are a router (I just replaced my USG 3P with a UXG-Lite yesterday), a couple of their little inexpensive switches, and a pair of Wireless Access Points.

What I like about this model is that I'm able to update pieces of it as I need to, and usually the individual pieces are fairly inexpensive. But what I dislike about it, as some other respondents on this thread have complained, choosing which devices you need is confusing as hell. They sell at least one machine which has a wifi AP, switch, router, and controller all in one box. Why not get that? The reason, I believe, is that many of the people who use this Unifi stuff are managing a bunch of networks at a bunch of different sites, like maybe at a bunch of retail locations or restaurants, where its way more convenient to have the controller running offsite, but then they decide to install some stuff at home and need a Controller which needs fewer resources so a Cloud Key or just running the stuff on your desktop would be ok.

This flexibility means that there's no single right set of hardware, no single best product, etc. Especially if you don't need multiple APs, I think a single-box wifi router will provide equal or superior performance with much less trouble, but once you need multiple APs, the Unifi stuff can be compelling if you're comfortable with the architecture, but I think it's difficult to decide which hardware bits to choose and what the best place to run the controller will be.

anyway apologies for the length- I found all this very confusing initially as well although I've grown fond of the Unifi stuff and thought it might be worth writing the whole thing out in case its useful to somebody considering this stuff.

UniFi Express 3 years ago

I had one arrive yesterday and hooked it up today, was worried I'd foul things up somehow since I'd never replaced the Gateway before (my USG was 6 or 7 years old I think) but I just removed the old one, plugged in the new one, adopted it, and off we went. My cable modem seemed to need a reboot but that was it.

I had never enabled the traffic inspection stuff on the USG, so it was neat to finally get a look at that stuff after having it inactive for years. I'd been thinking about getting one of the UDM things but since the USG was working well I figured I'd wait until something like this came along. So far, so good!