DSpinellis
DSpinellis on Hacker News
Same here. I used to hit back LLMs with refactoring ideas and prompts to use better APIs or reduce duplication / increase abstraction. Ever more they're doing such things without being asked.
We stopped learning how to calculate the square root with pencil and paper (I learned that; never used it).
There has been a dramatic shift in the role of agriculture in the US economy. As a share of it, in 1820 72% of workers were in agriculture, in
2017 this had shrunk to 1.6%. Tractors played a big role in this transition.
Posted by
DSpinellis on Thursday October 08, 2026 @12:08PM
from the spinellis.gr dept.
Posted by
DSpinellis on Wednesday July 15, 2026 @12:38PM
from the spinellis.gr dept.
Posted by
DSpinellis on Wednesday July 08, 2026 @06:35AM
from the spinellis.gr dept.
Given that AI-generated code is not 100% perfect, we need to take into account the time and cost of reviewing when we discuss the productivity boost AI developers receive from code.
Posted by
DSpinellis on Saturday May 23, 2026 @03:03PM
from the spinellis.gr dept.
Posted by
DSpinellis on Monday March 02, 2026 @12:47PM
from the spinellis.gr dept.
Posted by
DSpinellis on Tuesday December 23, 2025 @01:22PM
from the spinellis.gr dept.
I convinced a software company to use a version control system (RCS on shared disk) back in 1993. To make it work we had to setup a network — Ethernet over (thin) coaxial cable at the time. This was so new to us that we didn't know we needed to use terminators on the two cable ends.
I don't think the concept of a rebase existed before Bitbucker and Git.
30 years ago (1995) open source offerings: mostly CVS for large projects and RCS for smaller ones. On the proprietary side, the aged SCCS was available and used, while Perforce and Microsoft Visual Source Safe were being launched.
That's the point: non-dependant tasks can run concurrently in Airflow. In sh/BAsh/dgsh dependant tasks can also run concurrently, as in tar cf - . | xz.
A nicer syntax and a lower probability of deadlocks.
And, more importantly, assign a name to a process, so that it can appear multiple times in the graph.
Admiring your multi-tasking!
I'm curious: what do you mean by "dgsh will use iteration under the hood too"? Dgsh does several things under the hood, but I wouldn't characterize any of them as iteration.
Manually playing around with fds is definitely unmaintainable. My hope is that a clean syntax can help create maintainable complex pipelines.
Thank you for the suggestion. This would mean that you'd also then create some mapping from each name (like git_log) to its implementation, right?
Nice benchmark! This is a (not at all efficient) awk one-liner.
awk -F\; '
$2 > max[$1] { max[$1] = $2 }
!($1 in min) || $2 < min[$1] { min[$1] = $2 }
{ sum[$1] += $2; count[$1]++}
END { for (n in sum)
printf("%s=%.1f/%.1f/%.1f, ", n, min[n], sum[n] / count[n], max[n])}'
Can't see how dgsh could be applied to it.
I've found creating pipelines with Python to be messy and intuitive. Other than creating a DSL to express them I can't see how DAGs can be expressed naturally with Python's syntax.
Even creating tools in Python that can be connected together in a Unix shell pipeline isn't trivial. By default if a downstream program stops processing Python's output you get an unsightly broken pipe exception, so you need to execute signal.signal(signal.SIGPIPE, signal.SIG_DFL) to avoid this.
I went through two iterations before adopting the current syntax. Truth is neither me nor Doug McIlroy, the inventor of Unix pipes, who kindly and generously provided feedback during dgsh's development, had something better to propose.
What syntax would you propose?
Author of dgsh here. This is definitely not what I had in mind.
Apache Airflow solves a very different problem. Its DAGs are static dependencies between sequentially executed processing steps, whereas the DAGs of dgsh express live direct data flows.
Posted by
DSpinellis on Sunday September 28, 2025 @12:13PM
from the spinellis.gr dept.
Posted by
DSpinellis on Wednesday June 04, 2025 @08:03AM
from the researchintegrityjournal.biomedcentral.com dept.
Fifty years ago Marc Rochkind wrote SCCS, the first version control system, which later inspired RCS, CVS, and Git. In the March issue of the IEEE Transactions on Software Engineering he provides a retrospective of SCCS: its innovations, its problems, and how subsequent systems improved on it.