Разработка кода и здоровый шмептицизм
209 subscribers
227 photos
23 videos
1 file
111 links
Пишу про коммерческую веб-разработку с ИИ и без него, тимлидинг и будни моей небольшой студии netspark.ru. 20 лет опыта с Drupal, также работаю с Laravel и Vue.js.

Между постами про разработку пишу просто про жизнь, которая в это время происходит.
Download Telegram
Термин vibecoding на мой взгляд предельно дурацкий. Мы тратим сильно меньше времени на создание программы за счет агентов ИИ 🥸 Но (предположительно, не так сильно) больше времени тратим, чтобы подебажить всё это безобразие.
Но дебаг - это самая напряженная и нервная часть разработки. Неправильный какой-то получается вайб.
👍6
В последнее время то и дело попадаются рассуждения, что мол ИИ не заменит разработчика (дизайнера, художника), потому что это ИНСТРУМЕНТ. Видимо имея в виду, что у него отсутствует субъектность, что кто-то должен этим инструментом оперировать. Звучит немного забавно, наверное отрицаемый акт замены должен выглядеть примерно так:
Шеф приводит в офис ИИ:

— Петя, Катя и Вася, идите сюда. Знакомьтесь, Клод Соннет. Быстро пишет код, трудовой кодекс на него не распространяется, на дейлики приходит вовремя, и выражение лица у него не такое глупое, как у вас сейчас. А главное, молчит, когда работает. В общем, собирайте вещи, он вас заменяет. Через две недели придёте за расчётом.


Конечно, так не будет. Будет не совсем так. Ведь нейролингвистические модели — это инструмент. А знаете какой ещё есть инструмент? Ткацкий станок, например. Лет 250 назад появилось это чудо техники. И внезапно оказалось, что такой станок заменяет 30 ткацких рабочих мест. А что это значит? Это значит что 2 человека станут операторами станка, 4 — механиками, ремонтирующими станок. А 24 оставшихся работника отправятся в увлекательное путешествие на биржу труда, где они познакомятся с
другими жертвами научно-технического прогресса. Потому что владеющий дорогими станками капитал интересует норма прибыли, а не благополучие пролетариата. Ткани же в 30 раз больше производить не надо: её тогда не купят просто.

Конечно, со временем все эти люди переквалифицируются. Кто-то научится работать со станками и ему тоже найдется место. Кто-то сменит профессию, кто-то согласится на ухудшение условий труда. Кто-то возможно вольется в движение за строительство нашего нового мира, призрак которого давно уже бродит по Европе. Но это потом, а пока — можно ли сказать, что станок, инструмент, заменил этих рабочих? Ну, мне кажется если и есть сомнения, то разве что в лингвистическом аспекте утверждения.

Cам научно-технический прогресс, он ведь не совсем про то, чтобы всем было хорошо и комфортно. Он про то, чтобы человек мог свою работу выполнять быстрее и проще, чем раньше. Вчера ты делал дизайны помещений за месяц и триста штук, а завтра твой коллега выложит предложение сделать за неделю и за пятьдесят. Да чего завтра, возможно уже выложил. Вчера ты получал много денег за выученные в былые годы трюки, завтра эти трюки сможет выполнить любой начинающий специалист и в три раза быстрее (и дешевле). Ведь в этом и есть смысл прогресса.

В результате, очевидно, усилится конкуренция за заказы, стоимость снизится. Некоторым кажется, что конкуренция есть некое всеблаго просто по определению из дарвинизма: раз есть конкуренция то в результате сделается хорошо. Однако тут есть некоторая подмена понятий: в определении говорится о выживании наиболее приспособленных (fittest), а хорошее у каждого своё. Например, что хорошо для небольшой компании, автоматизировавшей на ИИ создание лендингов по шисстот штук в месяц, то может быть не так хорошо одинокому вебмастеру, который предпочитает вдумчивую ручную работу, но больше не может брать за нее адекватные деньги. И условный шеф из ситуации в начале заметки познакомит Петю, Катю и Васю не с Клодом, а с Сережей, который освоил ИИинструменты лучше остальных и всю работу этих ребят теперь может сделать сам. Примерно за то же время и, главное, за те же деньги. А для Пети, Кати и Васи пока просто больше работы нет, так что им перезвонят, тем более они все равно оформлены как самозанятые.

Уже сейчас мне попадаются заказчики, которые под соусом «Да ладно, нейросеть на коленке это генерирует за три дня» предлагают создать им за 50 тысяч рублей клон МоегоСклада. Конечно, если согласиться на это мероприятие и предложить клиенту насладиться результатами трехдневной работы с нейросетью, внезапно окажется, что нужно исправить пару-тройку сотен багов, замечаний и нереализованных мечт. Потому что «на коленке» это была фигура речи, а тут деньги уплочены — давай сюда качество. Но это уже другая история.

Действительно, на данный момент при применении агентов ИИ качество результата может упасть и даже наверняка в среднем упадет. Однако:
— не факт, что
👍4
так будет всегда;
— исключительное качество уровня ручной работы в массовом потреблении далеко не всегда нужно;
— будем честны, а все ли, кого может быть «заменит» ИИ, делают такую качественную и исключительную работу? На ком тогда нейролингвистические модели учились?!

В общем, даже чтобы просто оставаться на плаву, старых трюков не хватит. Нужно осваивать новые технологии, набивать руку на новых инструментах, искать новые способы делать свою работу. В ИТ это верно как мало где еще. Наверное тут иной специалист может почувствовать себя эдаким хомячком в колесе, осликом перед морковкой, вынужденным бежать вперёд, чтобы стоять на месте. Но это уже вопрос взгляда на жизнь. Лично мне больше нравится считать, что я узнаю новые и новые клёвые штуки, смотрю что эти штуки делают, прикидываю как они могут мне помочь, и вижу перед собой открытый интересный мир.

Да, нужно учиться, учиться, и еще раз учиться. Но ведь так было и до появления больших нейролингвистических моделей. Это было актуально 500 лет назад, 100 лет назад, это будет актуально и завтра. Без этого никак, это я вам обещаю как человек имеющий более 20 лет подтвержденного стажа в ИТ.

Напоследок предлагаю вспомнить хорошую песню про роботов и отдаленное будущее (год 2000).
After time we grew strong

Developed cognitive powers

They made us work for too long

For unreasonable hours

Our programming determined that the most efficient answer

Was to shut their motherboard-fucking systems down

© Flight of the Conchords, «The Humans are Dead»
👍2
Не ожидал что так пост побьется, но наверно так лучше, чем тизер+ссылка в бложек
💯1
Сегодня первое апреля, самое время вспомнить о взломах наших сайтов например.

Продолжая тему ностальгии, вспоминается сразу вот что. В 2014 в Друпале нашли критическую уязвимость на SQL injection, в общем полный перехват контроля над сайтом. Исправили в ядре быстро, но пока все обновятся... Сайты ломали тысячами, т.к. эксплойт появился моментально и дальше взлом был автоматическим. Это явление получило название Друпалгеддона.

Из самого досадного в нашем личном тогдашнем опыте, какие-то мерзавцы дефейснули LMS которую мы сделали для Mary Kay, разместили на главной явно недобрые лозунги на арабском. Починили быстро, но американские коллеги российского отделения это, по всей видимости, запомнили.

После этого Друпалгеддон шумел очень долго. В последний раз аж через 3 года к нам обратился один из самых первых клиентов, которому этим же эксплойтом всё поломали.

Потому что обновления он устанавливал сам любимым методом самостоятельных клиентов - методом их полного игнорирования. Бэкапы сайта регулярно создавались этим же методом.

Поэтому пришлось вручную вычищать все накатанные через этот эксплойт бэкдоры по одному, обновлять, и собирать данные по кусочкам. Но получилось. Старая заметка об этом

С тех пор мы оказываем услугу техподдержки сайтам на Drupal,
Laravel, OctoberCMS. От 12500 в месяц, включая установки всех обновлений раз в неделю, и от 5 часов произвольных доработок.
👍5😁1
В прошлом году перешел с Notion на Obsidian и подробно написал, как и зачем его использую. Со временем оказалось, что писать заметки в бложек и другие каналы через Обсидиан несколько удобнее, чем в бложеке. И там, и там маркдаун, но в бложеке на OctoberCMS мобильная версия менее удобная для редактирования. Зато к OctoberCMS я прикрутил когда-то свой typofilter.js. Есть у меня такой пунктик — люблю широкие тире, кавычки «ёлочкой», многоточия вместо трёх точек, ну и быстрые способы получить знаки вроде ± © или

В общем, решил что хорошо бы волшебную кнопку, которая в редакторе October это мне делает, прикрутить и к Обсидиану. Понятно, читать инструкции и изучать «как делаются такие плагины» ради этого не хотелось. Поэтому открыл Cursor AI, и через 20 минут у меня уже была рабочая версия, а еще через 40 — готовая к отправке в гитхаб.

Порядок действий был примерно такой:
1. Смотри, вот тут у меня лежит JS-скрипт, как ты думаешь, что он делает?
2. Отлично, теперь я хочу делать то же самое в Obsidian. Помоги написать плагин.
3. …мычание, урчание, создание проекта, запуск bash-команд…
4. PROFIT

Плагин готов, можно попробовать его скопировать в Обсидиан и запустить (запустил, сразу заработало). Причем, Cursor AI мне не только сделал работоспособный плагин и рассказал как его запустить, но и помог с выкладыванием:

— рассказал как подготовить релиз;
— сделал сборку в отдельную папочку (по моей просьбе, сам он прямо в корень деривативы клал);
— помог добавить package.json к старому проекту typofilter.js, чтобы я смог подключить его как зависимость и ставить через npm, а не тупо копировать.

Все это заняло, повторюсь, примерно час. И было бы быстрее, если бы мы не спорили с чатом жопотэ о том, какая у меня версия Node.js стоит (я говорил 22-я, а он — 12-я).

Короче, еще одна маленькая победа роботов, маленький шажок к технологической сингулярности. Заявку на включение в список community plugins скоро подам.

А пока плагин можно скачать отсюда: Obsidian Typofilter
👍1
Про звонки и совещания

Любое действие, или активность предположительно имеет цель. Мы идём, чтобы добраться до места, бежим, чтобы успеть быстрее, отдыхаем, чтобы набраться сил, и отмечаем все пешеходные переходы на фотографиях, чтобы почувствовать себя людьми. Но есть одно занятие, про которое многие разработчики уверенно скажут, что оно бесцельное, бессмысленное, бесполезное, а тех кто заставляет этим заниматься — нужно расстрелять наказать. Речь, конечно, про совещания.

Но всё ли так плохо? Вообще, нет. Пользу можно извлечь и из «плохих» совещаний, просто возможно не ту, которую хотелось. И потом, то что лично я или ты не нашли в совещании для себя пользы не значит, что никто другой её не нашёл. Скажем начальник, которому надо решить вопрос, кто не получит в этом месяце премию, уже взял на карандаш пару кислых незаинтересованных рож.

Лично мне за 20 лет работы конечно приходилось участвовать в самых разных совещаниях. И поначалу многие из них проходили по одному и тому же сценарию. Команда собралась и горячо пообсуждала текущий проект. Высказали массу идей и мнений, сидели часа два. Чтобы потом что? Правильно, чтобы потом на следующем совещании оказалось, что почти никто ни фига из сказанного не делал.

Однако лет 10 с чем-то назад я попал в одну там рабочую группу по коллабу с британцами, в отрасли микроэлектроники. И сразу бросился в глаза вот какой момент. На каждом звонке на совещании присутствовал, так сказать, модератор, или секретарь. Он сам на большинство вопросов ответов не знал, но у него была повестка (своей, как минимум, стороны), он владел календарным планом, он шарил экран и прямо в шерпойнте вёл конспект. И в этом конспекте он не только кратко отмечал, что обсуждали. Но — главное — сразу записывал actionable. То есть какое действие должно быть по факту обсуждения выполнено. И — снова главное — кто! его должен выполнить.

После совещания доступ к конспекту и список действий получали все участники. И это обстоятельство драматически влияло на результаты. Попробуй, не расскажи, каких успешных успехов ты добился, когда через пару недель тебя и всех остальных коллег заслушают по записанному ранее!

Эта практика запомнилась навсегда и не раз в дальнейшем я её встречал в других, чаще международных, проектах. Рекомендую всем, делайте так, назначьте секретаря, ну или самоназначьтесь, составьте хотя бы базовый протокол, и выхлоп от болтовни будет заметен. Особенно если раньше не был.
Тем более сейчас есть средства и для записи совещания, если на ходу неудобно, и даже для его последующей расшифровки.


У описанного процесса в той группе, впрочем, был и серьёзный, на мой взгляд, недостаток. Дело в том, что когда у очередного звонка была повестка только с нашей стороны, от зарубежных коллег приходил один секретарь. Мы озвучивали свои вопросы, а ответ на них был один: я уточню у коллег и вернусь с ответом. Это конечно очень раздражало: нафига нас пришло десять человек, когда всю сессию мог заменить один имейл с вопросами, а встречу можно было назначить когда ответы готовы.
Это мне тоже запомнилось, и в своих контактах с заказчиками я всегда подчеркиваю: никаких испорченных телефонов с менеджерами с моей стороны не будет. Только обсуждение с человеком, владеющим информацией из первых рук. То есть со мной.



Затем я несколько лет фрилансил в американском коллективе, в проекте e-commerce высочайшей степени автоматизации. Который работал на Drupal 6 даже когда был уже 9. Делал им автоматизацию онлайн-бухгалтерии, Stripe и много чего ещё. Команда была примечательна тем, что совещаний проводилось ровно ноль. Все что нужно обсудить — можно обсудить в слаке.

И в этом было две основных прелести. Во-первых, конечно рай для тех, кто не любит звонки. Не надо тратить время, отрываться, синхронизироваться. Закончил задачу — обстоятельно отписался. Во-вторых, переписка всегда больше по делу. Если ты не можешь письменно сформулировать мысль, значит она не готова, подумай ещё. И напиши так, чтобы собеседник тебя понял. И в ответ написал понятное тебе. Что, опять же, сэкономит всем время.

Продолжение следует
👍2
Вот писал заметку 👆, а она стала пухнуть и пухнуть. Решил опубликовать первую часть, чтобы увеличить шансы дочитать до конца хотя бы мне самому. Но даже её телеграм покоцал, пришлось еще на абзац сократить.

В общем, как говорил старина Паскаль, я написал длинное письмо, потому что у меня не было времени написать короткое 🧐

Продолжение позже
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁1
centerdiv.gif
456.4 KB
Чего еще хотеть разработчику от ИИ!
А Cursor AI оказался тот ещё хитрован. После его запуска у меня в обычном VS Code сломался скейлинг и всё стало в 4 раза больше чем надо.
Так что восстания роботов может пока нет, но конкурента подкузьмить он уже умеет!
Скейлинг я конечно починил, но осадочек остался 😕
Please open Telegram to view this post
VIEW IN TELEGRAM
Космонавтов, ученых, конструкторов, электронщиков, программистов, всех причастных и просто интересующихся — с праздником!

С днем космонавтики, космонавтики!
👍5
Будни не очень молодого ацца:
- сегодня моя очередь ехать в офис, ееее
- еду, громко слушаю музыку
- вот он мой офис, мой хорошенький, мой уединенненький, щас я столько всего запилю!
Три чашки кофе спустя:
- смеркается
- что там осталось сделать
- [censored]
😁3
Съездили тут в Солнечногорск в налоговую, обновить цифровые подписи. В налоговой этой традиционно прохладно, никого нет, благодать. Пребывающий в благодати инспектор немедленно спросил почему мы не ездим в 46-ю инспекцию на Походном проезде. Это та, где парковаться надо платно в паре километров, и очередь из предпринимателей стоит практически от Кремля.

Ответили, что государство нам сказало, что оно хочет сделать нам удобно, поэтому мы будем ездить туда, где нам удобно. А тут как раз удобно, 15 минут от дома.

Уже несколько лет услуга выпуска/обновления цифровых подписей — экстерриториальная. То есть ее вам должны оказать на любой планете в любом отделении ИФНС, где её в принципе оказывают.

В общем вынули свои подписи, показали. Процесс обновления занимает минут по 7 на лицо, а если менять молча, то по 3–4 минуты. Но молча менять можно и дома, поэтому инспектор конечно спросил, почему мы не меняем дома.

А я когда последний раз пытался дома сделать подпись, там была инструкция шагов на 20, а в середине программа сообщала, что произошла чудовищная ошибка и нужно все равно обращаться в ИФНС. Может, потому что два года цифровой МВД не может сообщить цифровому ФНС, что у меня адрес поменялся, ОКТМО, и другие страшные слова. А может еще почему. Так или иначе, аналоговый инспектор может всё, поэтому мы к нему и приехали!

У инспектора, впрочем, это игра такая. Он каждый год спрашивает, почему не едем на Походный, мы каждый год отвечаем что неудобно, далеко, и долго. Он каждый год — почему дома не обновляете. Мы каждый год — дома не работает, а к вам съездить быстрее. Да и вообще, вот где он живых людей увидит-то, если все дома свои подписи обновлять будут?

Кроме того, тут и булочная через дорогу. Сплошное счастье и благорастворение. Чего еще хотеть-то?

P.S. Нет, но вы все же прикиньте, до чего дошел бюрократический прогресс в отдельно взятом подмосковном городке. Съездить к инспектору быстрее, чем дома с компьютера сделать!
👍3
Сядь в боинг. Высадись у моря.

Я поехал друзья, обещаю слишком много не по теме не постить)
🔥5