HackerTrans
TopNewTrendsCommentsPastAskShowJobs

DSpinellis

441 karmajoined vor 16 Jahren
See my home page at http://www.spinellis.gr

Submissions

Why agentic AI needs better experts

spinellis.gr
3 points·by DSpinellis·vor 7 Tagen·0 comments

Why reviewing AI-generated code is devilishly hard

spinellis.gr
3 points·by DSpinellis·vor 2 Monaten·2 comments

Vibe coding toward the incident horizon

spinellis.gr
3 points·by DSpinellis·vor 4 Monaten·1 comments

An initial analysis of the discovered Unix V4 tape

spinellis.gr
98 points·by DSpinellis·vor 7 Monaten·4 comments

Choosing Email over Messaging

spinellis.gr
1 points·by DSpinellis·vor 10 Monaten·1 comments

False authorship: An AI-generated article was published under my name

researchintegrityjournal.biomedcentral.com
2 points·by DSpinellis·letztes Jahr·0 comments

A 50 year retrospective on the first source code control system

computer.org
4 points·by DSpinellis·letztes Jahr·1 comments

Large language models reduce public knowledge sharing on online Q&A platforms

academic.oup.com
5 points·by DSpinellis·vor 2 Jahren·0 comments

Nine tips for engineering data processing workflows

ieeexplore.ieee.org
1 points·by DSpinellis·vor 2 Jahren·0 comments

Raspberry confirms London IPO plan

in.marketscreener.com
2 points·by DSpinellis·vor 2 Jahren·1 comments

Pair programming with generative AI: The good, the bad, and avoiding the ugly

csdl-downloads.ieeecomputer.org
1 points·by DSpinellis·vor 2 Jahren·1 comments

How the C preprocessor solves the Halting Problem

dl.acm.org
8 points·by DSpinellis·vor 2 Jahren·1 comments

[untitled]

1 points·by DSpinellis·vor 2 Jahren·0 comments

Automating an Open Online Course's Production

ieeexplore.ieee.org
1 points·by DSpinellis·vor 2 Jahren·0 comments

[untitled]

1 points·by DSpinellis·vor 3 Jahren·0 comments

[untitled]

1 points·by DSpinellis·vor 3 Jahren·0 comments

[untitled]

1 points·by DSpinellis·vor 3 Jahren·0 comments

comments

DSpinellis
·vor 2 Monaten·discuss
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.
DSpinellis
·vor 8 Monaten·discuss
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.
DSpinellis
·vor 8 Monaten·discuss
Indeed! The repo includes some v4 elements: https://github.com/dspinellis/unix-history-repo/tree/Researc...

The provided kernel predates the actual edition by a few months. It is based on https://www.tuhs.org/Archive/Distributions/Research/Dennis_v..., which matches V4 more than V3.
DSpinellis
·vor 8 Monaten·discuss
I don't think the concept of a rebase existed before Bitbucker and Git.
DSpinellis
·vor 8 Monaten·discuss
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.
DSpinellis
·vor 8 Monaten·discuss
I published an updated extension of this post's linked article in Empirical Software Engineering. You can read it without a paywall at https://rdcu.be/b7FzE. You may also be interested to see the actual GitHub repository at https://github.com/dspinellis/unix-history-repo.
DSpinellis
·vor 10 Monaten·discuss
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.
DSpinellis
·vor 10 Monaten·discuss
A nicer syntax and a lower probability of deadlocks.
DSpinellis
·vor 10 Monaten·discuss
And, more importantly, assign a name to a process, so that it can appear multiple times in the graph.
DSpinellis
·vor 10 Monaten·discuss
Admiring your multi-tasking!
DSpinellis
·vor 10 Monaten·discuss
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.
DSpinellis
·vor 10 Monaten·discuss
Manually playing around with fds is definitely unmaintainable. My hope is that a clean syntax can help create maintainable complex pipelines.
DSpinellis
·vor 10 Monaten·discuss
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?
DSpinellis
·vor 10 Monaten·discuss
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.
DSpinellis
·vor 10 Monaten·discuss
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.
DSpinellis
·vor 10 Monaten·discuss
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?
DSpinellis
·vor 10 Monaten·discuss
Author of dgsh here. This is definitely not what I had in mind.
DSpinellis
·vor 10 Monaten·discuss
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.
DSpinellis
·letztes Jahr·discuss
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.
DSpinellis
·vor 2 Jahren·discuss
I advocate the following rules for when to write and when not to write a shell script.

# Write a shell script:

* Heavy lifting done by powerful tool (sort, grep, curl, git, sed, find, …)

* Script will glue diverse tools

* Workflow resembles a pipeline

* Steps can be interactively developed as shell commands

* Portability

* Avoid dependency hell

* One-off job

# Avoid shell scripting:

* Difficult to see the preceding patterns

* Hot loops

* Complex arithmetic / data structures / parameters / error handling

* Mostly binary data

* Large code body (> 500 LoC)

* Need a user interface

A need for associative arrays (implemented in Bash as via hashmaps) moves the task to the second category (avoid shell scripting).