med-mastodon.com is one of the many independent Mastodon servers you can use to participate in the fediverse.
Medical community on Mastodon

Administered by:

Server stats:

408
active users

#stackoverflow

1 post1 participant0 posts today
Replied in thread

@selzero I mean, if you’re actively gatekeeping, can you blame them?

I spent DECADES not getting shit done because of all of the edgelords on #stackoverflow, literally *punishing me* for asking a question.

AI is almost always wrong… but at least I don’t have to deal with insecure #edgelords making it impossible to ask to a question without removing it as a “dupe”.

I’m well aware of the repercussions to AI. Software engineering will suffer badly. #Enshittification will run rampant.

Today Im mostly looking at how to make the #ViewerJS #iframe at least partially responsive (have a better height re screensize maybe). So Im staring at SO a lot for hack ideas. This is their AI answer warning. Very interesting considering 'AI' takes everything we make but we don't want anything it gives back, at least not in the main tech forums. Uni's should take note of this, but probably dont even know.

For some reason, this morning is the day I've (finally) decided to take some time to actually learn #git in a more systematic way than my current approach of googling as I go along and inevitably forgetting how I solved the last problem... 🙈

I enjoyed reading and answering the quiz questions of the W3 schools tutorial (w3schools.com/git/) and I'm grateful to the #Stackoverflow peeps who have asked the same silly questions that I've been asking myself and to the kind people who patiently answered them. Now I know that "origin" doesn't have a particular meaning, it's just an alias for a URL and that there is a system to the use of one or two dashes in git commands (okay, I could have admittedly worked that one out by myself but trial-and-error served me just fine for the past few years... 🙃).

www.w3schools.comW3Schools.comW3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

#Development #Findings
The decline of Stack Overflow · Which fields were affected the most by the rise of AI? ilo.im/1635mr

_____
#Programming #Coding #Debugging #StackOverflow #AI #AiAssistant #ChatGPT #WebDev #Frontend #Backend

Tomaž Weiss · The Decline of Stack OverflowFor many years, Stack Overflow has been the go-to platform for developers seeking solutions to coding problems. However, with the rise of AI-driven coding assistants, the platform’s relevance has taken a hit. In this post, we’ll explore the data behind Stack Overflow’s decline, comparing trends in question volume and shifts in popular tags after the introduction of ChatGPT and other LLMs.Other articles have explored this trend as well, such as thisanalysis by DevClassand this post by Pragmatic Engineer. However, these discussions primarily focus on overall activity decline rather than specific changes in question tags. In this post, we will take a closer look at which topics have been most affected by the shift to AI-driven assistance.Additionally, it is interesting to examine which topics have been the least affected by AI, highlighting areas where human assistance remains valuable.The data for this analysis was obtained from the StackExchange Data Explorerwhich allows SQL queries against their databases.A Sharp Decline in Question VolumeThe time series chart below illustrates a significant drop in question volume, particularly after November 2022, when ChatGPT was publicly released. Prior to this, Stack Overflow had already been experiencing a slow decline, but after ChatGPT’s introduction, the rate of decline became much more pronounced as developers increasingly turned to AI for quick, context-aware answers.Which Topics Are Affected the Most?To better understand the impact, we analyzed how the number of questions for the most popular tags in November 2022 changed by November 2024. While some topics have declined more than others, which is to be expected, there is an interestingpattern in these declines.What stands out is that questions related to fundamental programming concepts (such as lists, dictionaries, loops, strings, and functions) and data analysis (including pandas, dataframes, arrays, SQL, and NumPy) have experienced the most significant declines.It is possible that AI-generated answers for the most impacted topics are of particularly high quality, making human assistance less necessary. Alternatively, developers working with these technologies may be more inclined to incorporate AI into their workflow, reducing their reliance on traditional Q&A platforms.Conversely, topics related to operating systems (Windows, Android, and iOS) and certain development frameworks, IDEs and cloud platforms (including Next.js, .NET, SwiftUI, React Native, Angular, Android Studio, Visual Studio Code, and Azure) have experienced comparatively smaller decreases in activity.This could be due to the fact that questions in these areas frequently involve frontend and UI-related challenges or require visual explanations with screenshots, elements where AI-generated responses still struggle to provide adequate support.A more comprehensive interpretation of these results is left to readers with a deeper understanding of the listed technologies.Found this content interesting or useful? Fuel future articles with a coffee!The CodeTime seriesQuery:-- number of questions over timeselect DATETRUNC(day, p.CreationDate) as day, count(*) as n_questionsfrom Posts pwhere PostTypeId = 1 -- questiongroup by DATETRUNC(day, p.CreationDate)order by 1;Plot:# renv::init()library(tidyverse)library(janitor)library(ggplot2)library(slider)# data import -------------------------------------------------------------data <- read_csv('data/counts_by_day.csv') |> clean_names()# data preparation --------------------------------------------------------data <- data |> mutate(day = as.Date(day)) |> arrange(day) |> mutate(rolling_avg = slider::slide_period_dbl( .x = n_questions, .i = day, .period = "day", .f = mean, .before = 27, .complete = FALSE ))# plot --------------------------------------------------------------------# arrow locationarrow_x <- as.Date("2022-11-30")arrow_y <- data$rolling_avg[data$day == arrow_x] # corresponding y valuefig <- data |> ggplot(aes(x = day, y = rolling_avg)) + geom_line(size = 1, color = 'steelblue') + scale_x_date(date_breaks = "1 year", date_labels = "%Y", minor_breaks = NULL, expand = expansion(add = c(30, 30))) + scale_y_continuous(breaks = seq(0, 7000, by = 1000), expand = expansion(add = c(5, 80))) + labs(title = "Number of Stack Overflow Questions over Time", subtitle = 'Showing 28 day rolling average.', x = "Date", y = "Number of Questions") + annotate("text", x = max(data$day), y = 6600, label = "tomazweiss.github.io \nData Source: StackExchange Data Explorer", hjust = 1, vjust = 0, size = 4) + theme_light() + annotate("segment", x = arrow_x + 100, y = arrow_y + 1000, xend = arrow_x + 0, yend = arrow_y + 150, arrow = arrow(type = "closed", length = unit(0.15, "inches")), color = "black") + annotate("text", x = arrow_x + 350, y = arrow_y + 1100, label = "ChatGPT launches", hjust = 1, size = 4, color = "black")figggsave('plots/so_timeseries.png', plot = fig, width = 400, height = 200, units = 'mm', dpi = 'retina')Percentage Decrease by TagQuery:-- monthly number of questions by tag for most popular tagswith target_tags as (select TagName as tag_name, count(*) as cnt from Posts p inner join PostTags pt on p.Id = pt.PostId inner join Tags t on pt.TagId = t.Id where PostTypeId = 1 -- question and DATETRUNC(mm, p.CreationDate) between '2022-01-01' and '2022-12-01' group by TagName having count(*) >= 7000 )select tt.tag_name, DATETRUNC(mm, p.CreationDate) as month, count(*) as n_questionsfrom Posts p inner join PostTags pt on p.Id = pt.PostId inner join Tags t on pt.TagId = t.Id inner join target_tags tt on t.TagName = tt.tag_namewhere PostTypeId = 1 -- question and DATETRUNC(mm, p.CreationDate) between '2022-11-01' and '2025-02-01'group by tt.tag_name, DATETRUNC(mm, p.CreationDate)order by 1, 2;Plot:library(tidyverse)library(janitor)# data import -------------------------------------------------------------data <- read_csv('data/QueryResults_month.csv') |> clean_names()# data preparation --------------------------------------------------------data <- data |> mutate(month = ymd(month))starting_values <- data |> filter(month == as.Date("2022-11-01")) ending_values <- data |> filter(month == as.Date("2024-11-01")) data_plot <- starting_values |> left_join(ending_values, by = 'tag_name') |> mutate(n_questions_end = replace_na(n_questions_end, 0)) |> mutate(ratio = n_questions_end / n_questions_start) |> mutate(decline_pct = -100*(1 - ratio)) |> arrange(decline_pct)data_plot <- data_plot |> mutate(tag_name = paste0(tag_name, ' (', n_questions_start, ')')) data_plot$tag_name <- factor(data_plot$tag_name, levels = data_plot$tag_name)# plot --------------------------------------------------------------------fig <- data_plot |> ggplot(aes(x = decline_pct, y = tag_name)) + geom_col(fill = "steelblue") + theme_light() + scale_x_continuous( labels = function(x) paste0(x, "%"), # Add % symbol to labels breaks = seq(-100, 0, by = 10), expand = expansion(add = c(0.5, 0.5)), sec.axis = sec_axis(~ ., breaks = seq(-100, 0, by = 10), labels = function(x) paste0(x, "%") ) ) + labs( title = "Percentage Drop in Number of Stack Overflow Questions by their Tag", subtitle = paste0("Comparing November 2022 to November 2024.\n", "Showing 75 most popular tags of 2022. Numbers in brackets next to tag names represent number of questions in November 2022."), x = "Percentage Decrease", y = "Tag Name" ) + annotate("label", x = 0, y = 0, label = "tomazweiss.github.io \nData Source: StackExchange Data Explorer", hjust = 1.03, vjust = -0.3, size = 3.5, fill = "white", label.size = 0)figggsave('plots/so_decline.png', plot = fig, width = 300, height = 300, units = 'mm', dpi = 'retina')GitHubhttps://github.com/tomazweiss/stackoverflow_decline
В блоге, а потом и в книге Joel Spolsky была расписана история появления #VBA в том самом Microsoft #Excel.

Этот персонаж так же потом сделал #stackoverflow и вообще известный графоман от #softwaredevelopment, сродни Лебедеву от дизайна — https://neolurk.org/wiki/Джоэл_Спольски
———

В допотопные времена в Excel был очень неудобный язык программирования, которому не дали названия. Мы называли его «макросы Excel». Он был весьма ограничен – без переменных (значения приходилось хранить в ячейках таблицы), локальных переменных и вызовов подпрограмм – короче, сопровождать такой язык было практически невозможно. В нем имелись некоторые более сложные функции вроде Goto, но метки были скрыты от глаз.

Единственное, что его оправдывало, это явное превосходство над макросами Lotus, представлявшими собой лишь длинную строку последовательности нажатий клавиш, вводимую в ячейку таблицы.

17 июня 1991 года я приступил к работе в Microsoft в составе команды Excel. Моя должность называлась Program Manager. Предполагалось, что я как&то решу проблемы языка. Подразумевалось, что это решение будет связано с языком программирования Basic.

Basic? Фу!

Некоторое время я вел переговоры с разными группами разработчиков. Только что появился Visual Basic 1.0, выглядевший довольно круто. Также имелся неудачный проект под кодовым названием MacroMan и еще один проект – создание объектно-ориентированного языка Basic – под кодовым названием Silver. Команде Silver было сказано, что первый клиент для их продукта уже есть – это Excel. Менеджер по маркетингу проекта Silver Боб Уаймен (Bob Wyman) – да, тот самый – мог продать свою технологию только мне.

Проект MacroMan, как я сказал, был неудачным, и с некоторым трудом его все же удалось закрыть. Команда Excel убедила команду Basic в том, что ей нужен особый вариант Visual Basic для Excel. Моими стараниями в Basic включили четыре вещи, которые мне очень нравились. Был добавлен структурный тип данных Variant, позволяющий хранить данные любого типа, потому что иначе сохранить в переменной содержимое ячейки рабочего листа можно было только с помощью оператора переключения. Также было добавлено позднее связывание, ныне известное как IDispatch, или COM&автоматизация, потому что исходный проект Silver требовал глубокого понимания системы типов, чего трудно было ожидать от тех, кто станет писать макросы. И еще я получил две свои любимые синтаксические конструкции – For Each, украденную из csh, и With, украденную из Pascal.

Потом я засел за написание спецификации Excel Basic – огромного документа, разросшегося до сотен страниц, – думаю, в конце их стало не меньше пятисот. («Каскадное проектирование» – усмехнетесь вы. Да-да, приятель, оно самое.)

В те времена существовало понятие «рецензирования БиллГ». Практически любой крупной и важной функции требовалась оценка Билла Гейтса. Мне сказали послать в его офис на рецензию экземпляр спецификации (фактически, это целый том лазерных распечаток).

Я тут же напечатал и отослал ее. В тот день у меня оставалось немного свободного времени, и я стал размышлять над тем, достаточно ли в Basic функций для работы с датами и временем, чтобы делать с ними все то, что позволяет Excel.

В большинстве программных сред даты хранятся в виде действительных чисел. При этом целая часть – это количество дней, истекших с некой оговоренной даты в прошлом, называемой началом эпохи (epoch). В Excel сегодняшняя дата 16 июня 2006 года хранится как число 38884, за точку отсчета принято 1 января 1900 года.

Я стал экспериментировать с различными функциями даты и времени Basic и Excel и обнаружил в документации Visual Basic нечто странное: в Basic началом эпохи считалось 31 декабря 1899 года, а не 1 января 1900 года, но по каким-то причинам сегодняшняя дата и в Excel, и в Basic представлялась одинаково.

Что?!
Я стал искать разработчика Excel, достаточно старого, чтобы помнить такие вещи. Похоже, ответ знал Эд Фрайз (Ed Fries).

– Ха, – сказал он мне, – проверь 28 февраля 1900 года.
– 59, – отвечал я.
– Теперь 1 марта 1900 года.
– 61!
– А где 60? – спросил Эд.
– 29 февраля 1900 года, год был високосным! Он делится на 4!
– Мысль интересная, но неверная, – сказал Эд, оставив меня в недоумении.

Пришлось провести некоторые исследования. Оказалось, что годы, которые делятся на 100, бывают високосными, только если при этом еще делятся на 400.
1900-й год не был високосным.
– В Excel ошибка! – воскликнул я.
– Не совсем так, – возразил Эд. – Нам пришлось пойти на это, чтобы импортировать таблицы Lotus 1-2-3.
– Значит, ошибка в Lotus 1-2-3?
– Да, но, скорее всего, умышленная.

Требовалось уместить Lotus в 640 Kбайт – не так много памяти. Если не обращать внимания на 1900 год, то можно проверить год на високосность по двум правым разрядам числа – они должны быть нулевыми. Быстро и легко. Наверное, ребята из Lotus решили, что ничего не случится, если какие&то два месяца в далеком прошлом будут считаться неправильно. Похоже, разработчики Basic дотошно учли эти два месяца, сдвинув эпоху на день назад.
– Вон оно что, – сказал я и стал выяснять, что означает флажок 1904 Date System (Система дат 1904) в окне параметров.
На следующий день должно было состояться рецензирование БиллГ.

30 июня 1992 года.
В те дни в Microsoft было гораздо меньше бюрократии. Это сейчас там одиннадцать или двенадцать уровней управления, а тогда я подчинялся Майку Конте (Mike Conte), который подчинялся Крису Грэму (Chris Graham), который подчинялся Питу Хиггинсу (Pete Higgins), который подчинялся Майку Мэйплзу (Mike Maples), который подчинялся Биллу. Всего примерно шесть уровней иерархии. Мы еще посмеивались над компаниями вроде General Motors, где этих уровней было восемь или около того.
На моем рецензировании БиллГ присутствовала вся иерархическая цепочка вместе с родными и двоюродными сестрами и тетками, а также человек из моей команды, который должен был точно подсчитать, сколько раз Билл скажет f… (чем меньше, тем лучше).

Вошел Билл.
Я подумал: как странно, что у него тоже две ноги, две руки, одна голова и так далее – совсем как у обычных людей.
В руках у него была моя спецификация.
В руках у него была моя спецификация!
Он сел, обменявшись с кем-то из незнакомых мне управленцев шуткой, смысл которой до меня не дошел. Несколько человек рассмеялись.
Билл повернулся ко мне.
Я заметил комментарии на полях моей спецификации. Он прочел первую страницу!
Он прочел первую страницу моей спецификации и что-то написал на ее полях!
Если учесть, что мы послали ему спецификацию всего 24 часа назад, он должен был читать ее накануне вечером.

Он стал задавать вопросы. Я отвечал. Вопросы были достаточно простыми, но я не в силах их вспомнить, потому что неотрывно следил за тем, как он листает спецификацию…
Он листал спецификацию! [Успокойся, ты же не маленькая девочка!]

И НА ВСЕХ ПОЛЯХ БЫЛИ ПОМЕТКИ. НА КАЖДОЙ СТРАНИЦЕ. ОН ПРОЧЕЛ ВСЮ ЭТУ ЧЕРТОВУ СПЕЦИФИКАЦИЮ И НАПИСАЛ ЗАМЕЧАНИЯ НА ПОЛЯХ.
Он Прочел Все! [БОЖЕ МИЛОСТИВЫЙ!]
Вопросы становились более сложными и детальными.
Они казались несколько случайными. Я уже был готов считать Билла своим приятелем. Какой славный малый! Он прочел мою спецификацию!
Он, наверное, хочет задать мне несколько вопросов, связанных с заметками на полях! Я занесу все его замечания в систему контроля ошибок и прослежу, чтобы все они были учтены, и как можно скорее!

И вот решающий вопрос.
– Не знаю, ребята, – сказал Билл, – есть здесь кто-нибудь, кто действительно в деталях разбирается, как это сделать? Например, все эти функции даты и времени. В Excel их очень много. Будут ли такие же функции в Basic?
И будут ли они работать точно так же?
– Да, – ответил я, – кроме января и февраля 1900 года.
Тишина.

«Счетчик f» и мой босс изумленно переглянулись. Откуда он это взял?
Января и февраля КАКОГО ГОДА?
– ОК. Хорошая работа, – сказал Билл. Он взял свой размеченный экземпляр спецификации.
…Погодите! Я же хотел…
И вышел.

– Четыре, – объявил «счетчик f», и все заговорили, что такого низкого счета на их памяти не было и что Билл с годами становится мягче. Ему тогда было 36.

Позже мне все объяснили.
«На самом деле, Билл не собирается обсуждать твою спецификацию, ему просто нужно убедиться, что ты владеешь темой. Его обычный стиль – задавать вопросы все сложнее и сложнее, пока он не уличит тебя в каком-нибудь незнании, и тогда можно сделать тебе выволочку за неподготовленность. Никто не знал, что произойдет, если кто-то ответит на самый трудный его вопрос, потому что такого раньше не случалось».

– Если бы на этом совещании был Джим Манци, – сказал кто-то, – он спросил бы, что такое функция даты.

Джим Манци (Jim Manzi) – это тот менеджер с MBA, задачей которого было загнать в гроб Lotus.

Замечание было верным. Билл Гейтс поразительно разбирался в технических деталях. Он понимал, что такое Variant, COM&объекты, IDispatch, и чем автоматизация отличается от vtables, и как возникают двойственные интерфейсы. Его интересовали функции даты. Он не влезал в программу, если доверял тем, кто над ней работает, но его нельзя было провести на мякине, потому что он сам был программистом. Настоящим, действующим программистом.

Смотреть, как непрограммист пытается управлять софтверной компанией – все равно что наблюдать за новичком серфингистом.
«Все отлично! У меня на берегу отличные помощники, которые подсказывают мне, что нужно делать!» – говорит он и снова падает в воду. Типичное поведение администратора, считающего управление универсальной функцией. Не повторит ли Стив Балмер подвиг Джона Скалли, который едва не довел Apple до исчезновения, хотя совет директоров посчитал, что торговля пепси-колой – подходящая подготовка для руководителя компьютерной фирмы? Поклонники MBA склонны полагать, что справятся с управлением организацией, в работе которой они не разбираются.

———
Перевод на русский язык этой публикации найти более не удаётся, взята из книги «Джоэл: и снова о программировании» ISBN 978-5-93286-144-8

#программирование #programming #software #Microsoft @russian_mastodon @ru @Russia
idealists.suAkkoma

I don't get how someone with lots of technical knowledge would think that an offline #LLM is a better solution to internet censorship than fucking #Kiwix . You know you can just, download all of #StackOverflow onto any device, right? And that it's basically the same data the LLMs are trained on? Except you won't get hallucinations?

"I’ve been experimenting with ways to fix this (because let’s face it, AI isn’t going anywhere). Here’s what’s actually working:

- First, use AI with a learning mindset. When it gives you an answer, interrogate it. Ask it why. Sure, it takes longer, but that’s literally the point.
- Next, find your tribe. Reddit, Discord, Mastodon—wherever the smart people hang out. That’s where you’ll find the real discussions happening. The ones that make you go “huh, I never thought about it that way.”
- Do code reviews differently. Instead of just checking if the code works, start a conversation with your team. What other approaches did they consider? Why did they pick this one? Make understanding the process as important as the end result.
- Build things from scratch sometimes. Yes, AI can generate that authentication system for you. But try building one yourself first. You’ll write worse code, but you’ll understand every line of it. That knowledge compounds."

nmn.gl/blog/ai-and-learning

N’s Blog · New Junior Developers Can’t Actually CodeSomething’s been bugging me about how new devs learn and I need to talk about it. We’re at this weird inflection point in software development. Every junior dev I talk to has Copilot or Claude or GPT running 24/7. They’re shipping code faster than ever. But when I dig deeper into their understanding of what they’re shipping? That’s where things get concerning. Sure, the code works, but ask why it works that way instead of another way? Crickets. Ask about edge cases? Blank stares. The foundational knowledge that used to come from struggling through problems is just… missing. We’re trading deep understanding for quick fixes, and while it feels great in the moment, we’re going to pay for this later.

Sunday Funday! This stackoverflow question may have just solved months of "why the fuck does my cluster get super wobbly after 10 nodes or if I add another app?!?" (NGL, I'm gonna miss that site.)
I have been blaming the storage unit, even though every single metric I can see says it is under-utilized. CPU, network, volume, per-disk, everything can (and occasionally does) sustain 5-10x the background load for hours without issue or latency.
According to that link, agents can wobble in and out of availability due to a low default connection limit on the servers, triggered based on the number of objects on the agent and random luck.
That exactly describes this. It has good days and bad days and I've never spotted anything useful in the stats or logs when it bombs.

#k8s #k3s #homelab #selfhosted #stackoverflow

Stack OverflowKubelet stopped posting node statusTwo of my cluster nodes gets Kubelet stopped posting node status in kubectl describe node sometimes. In logs of that nodes i see this: Dec 11 12:01:03 alma-kube1 kubelet[946]: E1211 06:01:03.16699...