HNHacker News
TopNewBestAskShowJobs

geophile

5,154 karma · joined July 22, 2010

jao at geophile dot com
submissionscomments
geophile··on Museum of Bad Art
I love MOBA. The art is quite spectacularly awful. But what really makes the museum so wonderful are the blurbs on display with each piece of art. They are written in the style of Very Serious art museums (the art is "exploring" some issue, or "asking a question"), but tuned to the particular piece of horrendously bad art you are looking at.

They used to be in the basement of the Dedham theater, when I lived nearby. Then they had the decency to move to the basement of the Somerville Theater when I moved to Somerville. But they have moved again, to Dorchester. Fortunately, not too far. I went to the (re)opening in Dorchester, and actually got to meet the couple who started the museum, and got the story of MOBAs birth firsthand.

geophile··on As Cassettes Come Back, the Dilemma Is Finding a Tape Deck
Get off my lawn.
geophile··on As Cassettes Come Back, the Dilemma Is Finding a Tape Deck
You kids. Stop it with the crappy audio formats. What next, 8-track?

I bought hundreds of records in my younger days, when that was the only choice. I bought good equipment (subject to a student's budget), to get good sound, and not destroy the records with a bad needle. I took good care of my records, and used record cleaning equipment to keep them clean. The sound can be quite good, at least before the record wears out. But hisses are unavoidable. Pops develop, and you get so used to them that they seem to be part of the music. You have to change the record every 20 minutes. Scratches can ruin a record permanently. They are delicate. Records just totally suck, and the only good thing about them was the album cover.

Cassettes are even worse. Bad sound, bad durability, the mechanics are horrendous, with clicking of the mechanism often being audible, no album cover. And no ability to determine where a track starts. Even worse, hunting for the start of a track increases wear on the medium.

I don't understand the hatred of CDs. A truly excellent format. Crystal clear sound, orders of magnitude better resistance to physical decay and damage, longer-playing without intervention. And it is easy to rip them without DRM getting in the way! It bypasses streaming services, so hopefully the artist does a bit better. And in any case, I buy them at my local music store, so I support them (local musicians who run a record store on the side). (And after a purchase, I rip the CD and give it back to the store.)

geophile··on Show HN: I Wrote a Book on Java
This discussion sounds like there is confusion about the Car abstraction.

Make and model vs. makeId and modelId: Pick one. Are Make and Model referenced by Cars or not? There seems a slight risk of the Banana/Monkey/Jungle problem here, so maybe stick with ids, and then rely on functions that lookup makes and models given ids. I think it's workable either way.

As for all the optional stuff (color, year, ...): What exactly is the problem? If Cars don't always have all of these properties then it would be foolish of Car users to just do myCar.colour, for example. Test for presence of an optional property, or use something like Optional<T> (which amounts to a language supported testing for presence). Doesn't any solution work out pretty much the same? When I have had this problem, I have not done a proliferation of types (even in an inheritance hierarchy) -- that seems overly complicated and brittle.

geophile··on Show HN: I Wrote a Book on Java
I am an OOP programmer going back to the late 80s (including the cfront days of C++), and a serious user of Python since 2007.

In Python, I sometimes try data-oriented programming, using lists and dicts to structure data. And I find that it does not work well. Once I get two or more levels of nesting, I find it far too easy to get confused about which level I'm on, which is not helped by Python's lack of strong typing. In these situations, I often introduce objects that wrap the map or dict, and have methods that make sense for that level. In other words, the objects can be viewed as providing clear documentation for the whole nested structure, and how it can be navigated.

geophile··on Elon Musk declares "it is war" on ad industry as X sues over "illegal boycott"
A story can have multiple bad guys. Some are worse than others, in a given context.

For example: Liz Cheney is someone I would never vote for (not that I have had to make this decision), yet I applaud her role in the J6 hearings, and her attitude toward Trump in general.

geophile··on Elon Musk declares "it is war" on ad industry as X sues over "illegal boycott"
Amazing. I could never imagine any person or corporation getting me to root for the ad industry.
geophile··on Ask HN: Is there any software you only made for your own use but nobody else?
- Markup to generate HTML I used in courses that I taught. The markup generated links according to an outline (next/prev page, next/prev section) and a few other navigation related things.

- Python-based pipe-objects-not-strings shell with cluster and database support deeply integrated. Twenty years later, it has turned into Marcel (https://marceltheshell.org), and I’m still the only one using it AFAIK.

- Backup utility for Linux, with characteristics of Time Machine. Been using it for five years, it keeps daily, monthly, yearly full backups, relying on hard links for files that don’t change. Handles both local and remote (to my Raspberry Pi).

geophile··on Why not parse `ls` and what to do instead
The File object encapsulates a path. If you use it, e.g. to read contents, and the file doesn't exist, then it will fail with an appropriate error message.

Files come and go. References to them go stale. Every user and tool deals with this. This isn't a "validation" issue.

geophile··on Things you didn't know about GNU readline (2019)
I was writing a command-line tool in Python, and wanted bash-like line editing capabilities. And then I realized that there was a Python wrapper for readline. Problem solved!
geophile··on Why not parse `ls` and what to do instead
As long as Python does the right thing with globs, there is really no room for marcel to get it wrong. Not sure what additional validation you are thinking of.
geophile··on Why not parse `ls` and what to do instead
I wrote a pipe-objects-instead-of-strings shell: https://marceltheshell.org.

Not piping strings avoids this issue completely. Marcel’s ls produces a stream of File objects, which can be processed without worrying about whitespace, EOL, etc.

In general, this approach avoids parsing the output of any command. You always get a stream of Python values.

geophile··on Chessli – chess improvement app that combines the power of Lichess and Anki
Looks interesting, but "chessli --help" crashes.
geophile··on The Rise and Fall of Silicon Graphics
One thing I do remember about Amiga RAM is that some (all?) of it would survive reboot! That was very handy.
geophile··on The Rise and Fall of Silicon Graphics
This was a loooooong time ago. I have no clue.
geophile··on The Rise and Fall of Silicon Graphics
I was similar, not really interested in graphics, just a nice programming environment. PCs had that stupid segmented address space (which was not ignorable at the programming language level), expensive tools, and crappy OSes. My Amiga 2000 had a flat address space, a nice C development environment, and multitasking actually worked. It really was ahead of its time, in combining a workstation-like environment and an affordable price.
geophile··on M 4.8 – 2024 Whitehouse Station, New Jersey Earthquake
Lots of “was that an earthquake”? discussion in r/somerville (MA)
geophile··on A culture fail ruined Boeing
It is time, once again, to remind people of this fantastically insightful 1960 letter from David Packard, one of the founders of HP.

https://aletteraday.substack.com/p/letter-107-david-packard-...

In this letter, he states, concisely, and simply, the purpose of a company and its employees. The contrast between what he describes, and what happened at HP (many years later), Boeing, GM, Microsoft, Google, and many others, is striking.

The idea of management as a profession -- managers in charge of things that they don't really understand or care about -- has proven to be a disaster, (literally, in many cases).

geophile··on As a Tech Lead I feel more like a manager and I hate it
You ARE a manager, but they’re calling it tech lead. There are (or used to be?) companies where tech lead does not have management duties.

I was torn between the tech/management split. It seemed management was unavoidable. A really good VP Eng. advised me: if you hate management, just don’t do it. You will be bad at it and you will hate your life. That was excellent advice, that served me well.

You are doing management and you don’t want to. Fix that.

geophile··on Orthogonal Persistence
I could have answered that question as much as 20 years ago. It’s been a while …
geophile··on Orthogonal Persistence
Not that I know of.
geophile··on Orthogonal Persistence
That phrase certainly brings back memories, from when I worked at an object-oriented database startup.

The object-orientation was actually pretty unimportant, (except for those products that brought in persistence via inheritance -- so not really orthogonal). No, the point was adding a new storage class to programming languages.

I worked at Object Design, and we had (IMHO) an incredibly elegant approach. In our approach, persistence really was orthogonal to type, for C/C++. If you want a FooBar, you would write "new FooBar(123)". That gives you a FooBar in the heap, disappears at process end (or on deletion), etc. Or you could write "new(db) FooBar(123)", and then on commit (we had transactions of course), the FooBar would be in the database, and accessible by other processes.

A page-faulting mechanism would bring in pages containing locations that your program referenced. That itself was very elegant.

But the really beautiful thing about this architecture was getting it to work in a 32-bit address space. We did some clever things about mapping portions of the address space during the faulting process to make things work transparently. (This problem pretty much disappears with a 64-bit address space.)

Separate from all that, we had a collection library, integrated with an OO query language. E.g., you could have a collections of widgets in your database, write "widgets[: weight < 0.01 and !strcmp(color, 'red') :], and get back a set containing the qualifying widgets. We also supported 1:1, 1:n, and m:n relationships, which would maintain pointers and sets of pointers in both directions.

It was a "database system" because our VCs wanted it to be. But it really wasn't. It really was a new storage class for C/C++, and later, for Smalltalk and Java.

Object Design also had a spectacularly talented group of engineers, many of whom came from MIT AI Lab/Symbolics.

geophile··on Generating graphs from the marcel command line
Marcel is one of the pipe-objects-instead-of-strings shells (https://marceltheshell.org).

Here's a blog post showing how to use marcel to generate graphs directly from the command line.

https://www.marceltheshell.org/post/generating-graphs-from-t...

geophile··on AT&T is still down – here's what we know about the major cellphone outages
Navalny killed, Biden plans sanctions, cell phone outage.

I have no idea is there is a connection, but the way the world is, and has been for several years, that’s where my mind goes.

geophile··on So You Want to Ship a Command-Line Tool for macOS
My daily driver was a MacBook Pro for many years, and I went through two 17", and I think two 15" models. And then: butterfly keyboards, touch bars, and this code signing nonsense, so that I couldn't even run my own little bash scripts. At that point, I left the Apple world, and I have been a very happy customer of System76 running PopOS ever since.

I was almost tempted back with the M1 chip. A spectacular CPU, a cool and quiet laptop, no more butterfly keyboard, no more touchbar. But I can't run Linux on it.

Sorry, Apple, this isn't working. It's not me, it's you.

geophile··on I'm an Old Fart and AI Makes Me Sad
Weird similarities. My daughter graduated in 2020, started at Epic, and met her boyfriend there.

They want an adventure, and they don't like Epic much, so they are leaving shortly. She has definitely ruled out grad school, after doing research summers in college, and observing how miserable the grad students were. And how glacially slow progress is. (She spent all summer analyzing data from a telescope only to find out, oopsie, the telescope was pointed the wrong way, never mind.)

geophile··on I'm an Old Fart and AI Makes Me Sad
Working at EPIC, you get familiar with an extremely important yet obscure part of the software world: HL7, MUMPS. I suspect that my daughter will be able to captialize on that knowledge. She does not want to stay at EPIC. Is yoiur duaghter happy there?
geophile··on I'm an Old Fart and AI Makes Me Sad
My daughter graduated with a degree in physics and astronomy, and then went to work for Epic (the medical record systems company). She has experience in Python from school, ancient stuff from Epic (related to MUMPS), and has been teaching herself C# and other technologies. She is thinking about more computer science education, on her own, with the aim of becoming a software engineer.

I'm not at all sure that's a wise decision, right now, especially with the glut of software engineers, with far more experience, being laid off by FAANG.

She's leaving EPIC, and taking a several months long road trip with her boyfriend, and will find a job when she comes off the road. She's a smart kid, she'll figure it out. I just don't think she will end up in software.

geophile··on I'm an Old Fart and AI Makes Me Sad
I think I'm an even older fart, and a lot of this resonates with me. So a few thoughts.

First, I've gone back to school. I have a PhD in computer science from 1983, in which I explored spatial query processing. (General purpose ideas, but mostly applied to database systems.) My PhD has basically expired, the amount of new stuff to learn is daunting, and for a variety of other reasons, I thought it would be better to go back to school rather than study on my own. So I'm enrolled in a CS MS program to learn about AI and cognitive psychology.

Second: To a first approximation, I view the systemsy parts of computer science: CPUs, compilers, operating systems, data structures and algorithms, as having served their purpose, which was to enable AI in its current form. AI is just a different discipline. I happen to be familiar with some parts of those foundations, but I'm basically starting over with AI.

Finally: I recall what I now realize was a fork in the road. I took an AI course in 1980, I think, and we learned about A*, and simple feature detection in images, and alpha-beta pruning, and so on. Symbolic AI was up and coming, and looked to be the way to go. I remember learning about perceptrons and being intrigued. And then I learned about Minsky's proof that a perceptron can't compute XOR, so this idea of computing with a neurons was basically a dead end. Also, I liked the precision of algorithms: the answer is right or not. It has such and such worst case running time. I disliked the wishy washiness of AI, with uncertain and only probably correct answers. I distrusted the idea of tall stacks of probability calculations yielding anything other than a guess. And so I picked my path (into data structures, algorithms, databases).

Now, of course, I realize how wrong it was to dismiss the path of neural models of computation, and the usefulness of statistical methods. I have no regrets, I've had a very satisfying career. But if I were starting out now, I would study a lot more math, and hell yes, get deep into machine learning.

geophile··on How to copy a file between devices? (2022)
Never heard of it. Just tried it. Easy to install and run, copied one file in each direction (Linux/iOS).

Seems to good to be true. Are we sure this isn't malware?

← PreviousPage 5 of 34Next →