From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 835403CB40; Fri, 17 Nov 2023 09:08:45 -0500 (EST) Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-28094a3b760so1617510a91.3; Fri, 17 Nov 2023 06:08:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700230124; x=1700834924; darn=lists.bufferbloat.net; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=K/fyCrVb+JKfSAKHHVQFg0vi32Bh8LufHpWRcuC5/vU=; b=j8ylBjjp1N3a7TkwX2Ums96sbF03zQaLPJDyJXqkpCPTR3+e+/Cp/RDoym38ACLE5S V2rC5vBYZEkRGwRtQjGDpm/oC5TKTrNSc6FOWAkfxy1UObrZ3MAq6E/Zr35RC/ienGdD ERWoZcTU4eBFCG34AnT6QdlunD/dzsEGMdHmf7l9dJG9z2+fM9kmt/BzwF3nwfPKeGBc 49lw7A8qZw0gqoqizEAznaYvTEYegdQ2Yibl5J1yMdu8KFjIMjWug//ObArXlGxTyupS 94fl85mXRSzHXSg7MDlMxCOwZjlXPxDeImwxJ31/zdJs1ofTfBvR7Uz1kptlmNK2CWAt 147g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700230124; x=1700834924; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=K/fyCrVb+JKfSAKHHVQFg0vi32Bh8LufHpWRcuC5/vU=; b=v84lXLLooS5BBDXuNKw9LoGyLt2UYNc53SxCGfKycXt9Fr/kMhCPNQ3f5GBhOyWHqd mmTC4AciaAExVJW//cmkAWbJRP7oJndUaQeW0l9nq/kMBmM7XG9/IBtI2UsV2LGfqAQT aJnsEZDGfygqjeDhnzwUdTsoi90vnIXRuqNb20rJJQMLOxRDf+F4vj7X+MiIjdAaIY5A 0tkOZXdrmmX5+gHT2EfqTp+VrDob4jx2LXaNGbHEQOrVRrw/6dqJsKsz58svI0U/EfH9 eLDHFd8lVHWjFGdPxGEbjLsetU7j4cTHJ9/HCjgVk4B8T4KwjPb9JOYcZxk8IxfG851s UeNg== X-Gm-Message-State: AOJu0Yw1x4vQdiH/v2luwrcNh6T+W6ok6ZVOdqUHPUHGwqPbleDg4qCT /BUL3rTq82qkwm+GnpsAqLjiZygkkvfmmjqufH1d4eoVrZU= X-Google-Smtp-Source: AGHT+IFCOTq1hsSkGlQ89D3281IkyG/x8sC0j9JM6OEGVoerXXM0JMRAUxDxJs5CgwJPzKkP1gqN3/wUegXZ7TbQEQ4= X-Received: by 2002:a17:90b:1c8c:b0:281:5860:12f3 with SMTP id oo12-20020a17090b1c8c00b00281586012f3mr16567872pjb.3.1700230123817; Fri, 17 Nov 2023 06:08:43 -0800 (PST) MIME-Version: 1.0 From: Dave Taht Date: Fri, 17 Nov 2023 09:08:29 -0500 Message-ID: To: =?UTF-8?Q?Network_Neutrality_is_back=21_Let=C2=B4s_make_the_technical_asp?= =?UTF-8?Q?ects_heard_this_time=21?= , bloat Cc: Simon Kelley , Nick Feamster , Benjamin Boyter , Alexis Schrubbe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: [NNagain] correctly calculating code complexity and cost X-BeenThere: nnagain@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: =?utf-8?q?Network_Neutrality_is_back!_Let=C2=B4s_make_the_technical_aspects_heard_this_time!?= List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Nov 2023 14:08:45 -0000 The first tool I whip out when someone proposes replacing something (like dnsmasq, or a custom codebase) is to apply something derived from the cocomo model to add up what it took in terms of programmer hours to write the existing thing in the first place. There was a fun recent competition to see who could write the fastest tool for this a while back, but can only find this reference to it and the excellent ssc tool right now. I think there is a decent rust tool for this also. https://engineering.kablamo.com.au/posts/2021/quick-comparison-between-go-f= ile-walk-implementations/ I have not paid any attention to this area of software estimation costs in going on 20 years! (usually successfully making the point that reuse and extension of something pre-existing is cheapest) QA is not handled in cocomo, porting costs neither, the model totally fails on maintenance costs as well! I have hoped that key maintainers of complex codebases (bob on iperf2 perhaps? ) would compare their actual experiences against those models with scc and improve them. People have a tendency to not measure the why of a failure like bind10, either. lastly, code quality can be inversely proportional to size, and yet take longer to achieve elegance and speed. This story from apple's early days expresses it well https://www.folklore.org/StoryView.py?story=3DNegative_2000_Lines_Of_Code.t= xt fq_codel for wifi was a net -200 lines of code. the FCC BEAD database code is closed source (sigh) but I would love to know what upenn (?)'s similar attempt looks like through models like this? For every new software language generation much is claimed that it will be 5-6 times more productive, which if that were true, would mean that all the code in the world could now be managed with a single monkey attached to chatgpt. The Rust messaging is a perverse relief here, as it is multi-core speed gains driving it and it is the hardest language I have ever tried to use, and I went back to C and SQL. I know this guy tho, that managed to pound out 25k amazing lines of rust in a year, with a little chatgpt to handle the boilerplate better. --=20 :( My old R&D campus is up for sale: https://tinyurl.com/yurtlab Dave T=C3=A4ht CSO, LibreQos