Шок! в Москве (по данным NF Group) заканчиваются коворкинги!
Спрос растёт ежегодно более чем на треть.
Действительно, чем арендовать за жуткие цены пустой "офис" с просиженными стульями в какой-нибудь помоечной промзоне на окраине, куда мало кто специалистов согласиться ехать, проще просто взять всё готовое в почасовом режиме в уютном центре.
Это такая промежуточная компромиссная фаза между полной удалёнкой, которой итоге в айтишке всё и закончится, абсолютно уверен. Писал уже не раз, что сегодня стремительно увеличивается разрыв между элитой, которая, владея мощными архитектурными скиллами, проектированием и software design, уже успешно использует АI-агентов с x10-x100 продуктивностью, правильно организуя их работу и выдавая продвинутые промпты -- и всей остальной мейнстримовской тусовкой.
Будущее за инди-хакерами, однозначно. Один продвинутый чел уже сегодня легко порвёт типовую команду из 3-5 разработчиков, а стоить будет существенно дешевле и по зарплате, и по отсутствию офиса.
"Бля, я в Москве живу уже 4 года. То что вы считаете успехом в небольшом городе, тут нищебродство
Я не напрягаюсь, ни в создании контента, рилсов, разборов, эфиров. Я вообще не готовлюсь. У меня есть всё в голове. И не сомневаюсь в том, что делаю. Да, могу где-то ошибиться, но глобально самая большая ошибка это не внедрять."
— Константин Григорьев
"Спрашивают за Москву. Москва была топ городом одно время, но сейчас это просто клоака вонючая. Перенаселенная, шумная, вечно в пробках, даже на тротуаре вас может сбить курьер на самокате. Люди злые и говнистые. Да, есть сервис, развлечения, метро. Но xyz я когда спущусь в это метро, это жуткое место. Половина интересных рестиков закрылась, на их месте открылись очередные чайханы и калики.
Цены при этом настолько неадекватные, что уже и зарплата в 500к маленькая. Москву сейчас может выбрать только полный идиот, город скатился и стал сточной ямой. Не советую переезжать. Жить будете в оверпрайс пиковской коробке, а во всех соседних квартирах будет по 20 иностранных специалистов. Из европейских к Москве по помойности ближе всего Париж. Берлин на втором месте."
— Мэдисон
(пруф не даю, потому что он иностранный шпиён :)
(хотя мало кто пишет про Россию так патриотично, как он, без иронии)
=
"The Gorge" - классный фильм про одичавших удалёщиков, и с какими эпическими bugs и токсичными менеджерами им приходится сражаться в одиночку, рекомендую.
Хотя это больше похоже на коворкинг, когда рядом с тобой симпатичная одинокая девушка тоже пишет код :)
спойлер!однако, всё в итоге заканчивается офлайн-бизнесом в виде рестика на берегу океана.
Спрос растёт ежегодно более чем на треть.
Действительно, чем арендовать за жуткие цены пустой "офис" с просиженными стульями в какой-нибудь помоечной промзоне на окраине, куда мало кто специалистов согласиться ехать, проще просто взять всё готовое в почасовом режиме в уютном центре.
Это такая промежуточная компромиссная фаза между полной удалёнкой, которой итоге в айтишке всё и закончится, абсолютно уверен. Писал уже не раз, что сегодня стремительно увеличивается разрыв между элитой, которая, владея мощными архитектурными скиллами, проектированием и software design, уже успешно использует АI-агентов с x10-x100 продуктивностью, правильно организуя их работу и выдавая продвинутые промпты -- и всей остальной мейнстримовской тусовкой.
Будущее за инди-хакерами, однозначно. Один продвинутый чел уже сегодня легко порвёт типовую команду из 3-5 разработчиков, а стоить будет существенно дешевле и по зарплате, и по отсутствию офиса.
"Бля, я в Москве живу уже 4 года. То что вы считаете успехом в небольшом городе, тут нищебродство
Я не напрягаюсь, ни в создании контента, рилсов, разборов, эфиров. Я вообще не готовлюсь. У меня есть всё в голове. И не сомневаюсь в том, что делаю. Да, могу где-то ошибиться, но глобально самая большая ошибка это не внедрять."
— Константин Григорьев
"Спрашивают за Москву. Москва была топ городом одно время, но сейчас это просто клоака вонючая. Перенаселенная, шумная, вечно в пробках, даже на тротуаре вас может сбить курьер на самокате. Люди злые и говнистые. Да, есть сервис, развлечения, метро. Но xyz я когда спущусь в это метро, это жуткое место. Половина интересных рестиков закрылась, на их месте открылись очередные чайханы и калики.
Цены при этом настолько неадекватные, что уже и зарплата в 500к маленькая. Москву сейчас может выбрать только полный идиот, город скатился и стал сточной ямой. Не советую переезжать. Жить будете в оверпрайс пиковской коробке, а во всех соседних квартирах будет по 20 иностранных специалистов. Из европейских к Москве по помойности ближе всего Париж. Берлин на втором месте."
— Мэдисон
(пруф не даю, потому что он иностранный шпиён :)
(хотя мало кто пишет про Россию так патриотично, как он, без иронии)
=
"The Gorge" - классный фильм про одичавших удалёщиков, и с какими эпическими bugs и токсичными менеджерами им приходится сражаться в одиночку, рекомендую.
Хотя это больше похоже на коворкинг, когда рядом с тобой симпатичная одинокая девушка тоже пишет код :)
спойлер!
👍43😁19✍7❤2
"... в Московской антидопинговой лаборатории, до конца 2015 года работавшей под руководством Григория Родченкова, была создана своя, рукописная, система учета на связке PHP/MySQL через веб-интерфейс.
Шифрования в хранении данных не использовалось, в базу они писались в открытом виде. Двухфакторная авторизация отсутствовала, защита по IP — тоже. В систему можно было зайти откуда угодно, зная логин и пароль. Именно поэтому, после того как Григорий Родченков покинул Россию, он и бывшие сотрудники лаборатории все еще имели возможность проникать в LIMS."
Ну ок, для 2015-го это было норм -- какой-нибудь первокурсник (племянник босса) запилил на коленке рукописный проэкт на пыхе, а бабло "на компьютеризацию лаборатории" распилили. Я лично такое встречал неоднократно, и на весьма высоких уровнях. Но почему их логины и пароли-то не были закрыты сразу, когда они уехали? Полное раздолбайство менеджеров :)
"...Как российская сторона попыталась объяснить расхождения в данных: утверждалось, что муж нынешнего директора Московской лаборатории совершил ошибку в процессе переноса данных с сервера на свой компьютер, указав дату в американском формате, то есть 01/08/2019, а не 8.01.2019.
Но для любого человека, который работал с базами данных, очевидно, что дата — это не просто строка, а формат записи. Если определен формат 08.01.2019, то попытка вставить туда запись 01/08/2019 вызовет сообщение об ошибке, и ничего не получится. В общем — объяснение выглядело нелепо, и никто его серьезно не воспринял. "
Разве? На мой взгляд, что 8 января, что 1 августа, легко и просто вводится в абсолютно любом формате. Или там имеется в виду, что разделители разные использовались? Как-то мутно. И зачем вообще мужу нынешнего директора для экспорта базы надо было дату указывать? И почему он в американском формате её указывал? И с какой стати этим он сам занимался, а не попросил айтишника сделать всё правильно? И почему вообще у потенциального ламера, который видимо мог просто и удалить базу, был такой рут-доступ?
💯 всех серьёзных фейлов в мировом ИТ -- 💯 вина исключительно начальников и менеджеров всех уровней.
Шифрования в хранении данных не использовалось, в базу они писались в открытом виде. Двухфакторная авторизация отсутствовала, защита по IP — тоже. В систему можно было зайти откуда угодно, зная логин и пароль. Именно поэтому, после того как Григорий Родченков покинул Россию, он и бывшие сотрудники лаборатории все еще имели возможность проникать в LIMS."
Ну ок, для 2015-го это было норм -- какой-нибудь первокурсник (племянник босса) запилил на коленке рукописный проэкт на пыхе, а бабло "на компьютеризацию лаборатории" распилили. Я лично такое встречал неоднократно, и на весьма высоких уровнях. Но почему их логины и пароли-то не были закрыты сразу, когда они уехали? Полное раздолбайство менеджеров :)
"...Как российская сторона попыталась объяснить расхождения в данных: утверждалось, что муж нынешнего директора Московской лаборатории совершил ошибку в процессе переноса данных с сервера на свой компьютер, указав дату в американском формате, то есть 01/08/2019, а не 8.01.2019.
Но для любого человека, который работал с базами данных, очевидно, что дата — это не просто строка, а формат записи. Если определен формат 08.01.2019, то попытка вставить туда запись 01/08/2019 вызовет сообщение об ошибке, и ничего не получится. В общем — объяснение выглядело нелепо, и никто его серьезно не воспринял. "
Разве? На мой взгляд, что 8 января, что 1 августа, легко и просто вводится в абсолютно любом формате. Или там имеется в виду, что разделители разные использовались? Как-то мутно. И зачем вообще мужу нынешнего директора для экспорта базы надо было дату указывать? И почему он в американском формате её указывал? И с какой стати этим он сам занимался, а не попросил айтишника сделать всё правильно? И почему вообще у потенциального ламера, который видимо мог просто и удалить базу, был такой рут-доступ?
💯 всех серьёзных фейлов в мировом ИТ -- 💯 вина исключительно начальников и менеджеров всех уровней.
💯61👍15🤔4❤1✍1
VS Code - это редактор кода, а не IDE!! Ради бога, поймите разницу!!1
При том, что когда вы набираете в нём фактически простой текст, этот редактор разворачивается на многие гигабайты оперативки, да и в целом захватывая попутно все остальные ресурсы компьютера :)
На днях вышло нечто, называемое Google IDX Studio - типа, полноценная IDE в браузере.
В частности здорово, что там много готовых шаблонов под типовые стеки, и вы можете например создать в ней мобильное приложение. Эмулятор из Android Studio локально грузит комп просто ужасающе, а тут в браузере вообще не тормозит.
Мгновенная загрузка проекта с гитхаба, мгновенная индексация всего кода, и везде AI.
Но, да, только Gemini конечно. Совершенно очевидно, что какую бы другую свою модель они не использовали в своей IDX, она всё равно не может сравниться с Claude 3.7.
Не знаю насчёт Курсора, пока в целом склоняюсь к Windsurf.
При том, что когда вы набираете в нём фактически простой текст, этот редактор разворачивается на многие гигабайты оперативки, да и в целом захватывая попутно все остальные ресурсы компьютера :)
На днях вышло нечто, называемое Google IDX Studio - типа, полноценная IDE в браузере.
В частности здорово, что там много готовых шаблонов под типовые стеки, и вы можете например создать в ней мобильное приложение. Эмулятор из Android Studio локально грузит комп просто ужасающе, а тут в браузере вообще не тормозит.
Мгновенная загрузка проекта с гитхаба, мгновенная индексация всего кода, и везде AI.
Но, да, только Gemini конечно. Совершенно очевидно, что какую бы другую свою модель они не использовали в своей IDX, она всё равно не может сравниться с Claude 3.7.
Не знаю насчёт Курсора, пока в целом склоняюсь к Windsurf.
👍39❤7✍7🤔3🫡1
Курсант сегодня пишет:
"Не успел вовремя сделать пятнадцатое задание из дипломного проекта во время, так как случайно удалил все таблицы из базы."
$ ./drop_db.sh
This will drop database `production`.
To confirm, type y: [y/N]
?
Проблема в том, что если я буду часто выполнять это в своей локальной среде, я создам мышечную память для автоматического нажатия y, что испортит мне день/месяц/год, когда я сделаю то же самое в prod.
Правильно было бы так:
$ ./drop_db.sh
This will drop database `production`.
To confirm, type `production`:
Полной страховки не даст, но хотя бы 80%.
"Не успел вовремя сделать пятнадцатое задание из дипломного проекта во время, так как случайно удалил все таблицы из базы."
$ ./drop_db.sh
This will drop database `production`.
To confirm, type y: [y/N]
?
Проблема в том, что если я буду часто выполнять это в своей локальной среде, я создам мышечную память для автоматического нажатия y, что испортит мне день/месяц/год, когда я сделаю то же самое в prod.
Правильно было бы так:
$ ./drop_db.sh
This will drop database `production`.
To confirm, type `production`:
Полной страховки не даст, но хотя бы 80%.
👍55❤9🤔9✍6🔥6
Продолжаю работу с курсантами 🤓
...Начал замечать, что я часто похож на рационального ослика: при выборе из двух равных решений я впадаю в ступор :)
...По поводу дипломного проекта:
В нём у меня к сожалению толстые контроллеры. Выделить из них логику в новый слой получится, на нынешней работе научился так разделять :)
...тогда нужно закончить курс по Js, я такое просто видел, только на работе, но там react и ужасная реализация,
...Требований от заказчика обычно два – хорошо делай, плохо не делай. Переписывания и бесконечная эволюция неизбежны, вопрос только в затраченном на это времени.
...Проследил за тратой своего времени в течение недели с помощью упражнения "Хронометраж". Конкретный анализ еще не провел, но даже беглым взглядом осмотрев, понял, что работаю я не так усердно, как хочется. Работаю над дисциплиной, распорядком отдыха и работы...
Горит проект, который делаю для знакомых. Надо было сначала Сомнеза прочитать и более аккуратно входить в проект вместе с основной работой. Сильно недооценил по трудозатратам(и ценник собственно поставил сильно маленький). Остается только дожим, есть вариант сойти с дистанции, но пока дожимаю
... Хорошее ТЗ – результат моей насмотренности, опыта в предметной области, логику которой программирую. TDD и BDD это способы упорядочения хаоса. Но источник хаоса лежит этажом выше, в компетенциях заказчика и исполнителя.
Да, раз заказчик внятно не может сформулировать, делаете в буквальном смысле то что написано, дословно, а если потом начнётся "Я имел в виду другое...", отвечайте "Я не умею читать мысли".
...Все сказанное в пункте верно для наших команд. Ревью проходит в доброжелательной атмосфере, даже если на одном PR создано уже более 100 тредов с комментариями).
...К сожалению, без кнута, мы пока не видим способа, как сделать процесс ревью более качественным.
...Задание мною выполнено абсолютно неверно по части детализации анализируемых метрик
Не понимаю, при каких обстоятельствах я мог сделать его правильно на 100 процентов
...Начал замечать, что я часто похож на рационального ослика: при выборе из двух равных решений я впадаю в ступор :)
...По поводу дипломного проекта:
В нём у меня к сожалению толстые контроллеры. Выделить из них логику в новый слой получится, на нынешней работе научился так разделять :)
...тогда нужно закончить курс по Js, я такое просто видел, только на работе, но там react и ужасная реализация,
...Требований от заказчика обычно два – хорошо делай, плохо не делай. Переписывания и бесконечная эволюция неизбежны, вопрос только в затраченном на это времени.
...Проследил за тратой своего времени в течение недели с помощью упражнения "Хронометраж". Конкретный анализ еще не провел, но даже беглым взглядом осмотрев, понял, что работаю я не так усердно, как хочется. Работаю над дисциплиной, распорядком отдыха и работы...
Горит проект, который делаю для знакомых. Надо было сначала Сомнеза прочитать и более аккуратно входить в проект вместе с основной работой. Сильно недооценил по трудозатратам(и ценник собственно поставил сильно маленький). Остается только дожим, есть вариант сойти с дистанции, но пока дожимаю
... Хорошее ТЗ – результат моей насмотренности, опыта в предметной области, логику которой программирую. TDD и BDD это способы упорядочения хаоса. Но источник хаоса лежит этажом выше, в компетенциях заказчика и исполнителя.
Да, раз заказчик внятно не может сформулировать, делаете в буквальном смысле то что написано, дословно, а если потом начнётся "Я имел в виду другое...", отвечайте "Я не умею читать мысли".
...Все сказанное в пункте верно для наших команд. Ревью проходит в доброжелательной атмосфере, даже если на одном PR создано уже более 100 тредов с комментариями).
...К сожалению, без кнута, мы пока не видим способа, как сделать процесс ревью более качественным.
...Задание мною выполнено абсолютно неверно по части детализации анализируемых метрик
Не понимаю, при каких обстоятельствах я мог сделать его правильно на 100 процентов
❤🔥37👍22❤2
Отчёт за неделю.
Закончил полностью автоматический трек (три курса) для начинающих с полного нуля на Python. С него ко мне в спокойном режиме приходит где-то 2-3 человека в месяц, кто получил самые базовые знания и хочет продолжать, мне больше и не надо (я исключаю из Школы больше:).
Для донов-начинающих + по саморазвитию:
-- База по карьере, серия 12:
Вполне возможно что вы уже на данном шаге получили хороший прогресс, но мы только начинаем. Как только у вас сложится достаточно ясная картина этого всего, вы можете приступить к настоящей работе, которая происходит на другом уровне вашего подсознания -- в подвале подвала. В камере допросов ...
Для донов-неначинающих:
-- Дополнительно даю более технический материал (с платного медиума) "You don’t Need a Book to Know DDD".
-- Продолжение трека "Элитный программист": Используйте соцсети в своих интересах.
Соцсети сегодня -- серьёзное препятствие на вашем пути к успешной карьере. Алгоритмы, разработанные для того, чтобы завладеть как можно большей частью вашего внимания, могут помешать вам выработать продуктивные привычки, и сделают глубокую работу крайне сложной, а она абсолютно необходима для хорошего успеха в ИТ. Однако эти же алгоритмы можно использовать и в своих интересах...
-- Начали третий сериал СильныхИдей (второй сериал скоро выложу на бусти).
Он конкретно про SOLID + несколько ключевых паттернов ООП. По SOLID написано 100500 статей, на моих курсах по ООАП мы её в частности изучаем, так как спрашивать об этом могут на любом собесе, но мы как обычно пойдём в данном случае глубже: рассмотрим эту темку с точки зрения функционального программирования, а потом немного её похейтим :) Ну, потому что немало её принципов были актуальны примерно лет 30-40 назад.
Принцип DRY — не абсолютная истина
Принцип DRY десятилетиями представляется как один из нерушимых столпов программирования. Есть такое "правило трёх": если вам приходится кодить одну и ту же задачу три раза, "автоматизируйте" её (выделите в функцию например). Однако этот подход может быть вредным, а иногда и откровенно неправильным, особенно если применять его догматически...
=
Дальше, берусь конкретно за курс "Гомотопическая теория типов для программистов". Придётся очень много думать 🫢
Закончил полностью автоматический трек (три курса) для начинающих с полного нуля на Python. С него ко мне в спокойном режиме приходит где-то 2-3 человека в месяц, кто получил самые базовые знания и хочет продолжать, мне больше и не надо (я исключаю из Школы больше:).
Для донов-начинающих + по саморазвитию:
-- База по карьере, серия 12:
Вполне возможно что вы уже на данном шаге получили хороший прогресс, но мы только начинаем. Как только у вас сложится достаточно ясная картина этого всего, вы можете приступить к настоящей работе, которая происходит на другом уровне вашего подсознания -- в подвале подвала. В камере допросов ...
Для донов-неначинающих:
-- Дополнительно даю более технический материал (с платного медиума) "You don’t Need a Book to Know DDD".
-- Продолжение трека "Элитный программист": Используйте соцсети в своих интересах.
Соцсети сегодня -- серьёзное препятствие на вашем пути к успешной карьере. Алгоритмы, разработанные для того, чтобы завладеть как можно большей частью вашего внимания, могут помешать вам выработать продуктивные привычки, и сделают глубокую работу крайне сложной, а она абсолютно необходима для хорошего успеха в ИТ. Однако эти же алгоритмы можно использовать и в своих интересах...
-- Начали третий сериал СильныхИдей (второй сериал скоро выложу на бусти).
Он конкретно про SOLID + несколько ключевых паттернов ООП. По SOLID написано 100500 статей, на моих курсах по ООАП мы её в частности изучаем, так как спрашивать об этом могут на любом собесе, но мы как обычно пойдём в данном случае глубже: рассмотрим эту темку с точки зрения функционального программирования, а потом немного её похейтим :) Ну, потому что немало её принципов были актуальны примерно лет 30-40 назад.
Принцип DRY — не абсолютная истина
Принцип DRY десятилетиями представляется как один из нерушимых столпов программирования. Есть такое "правило трёх": если вам приходится кодить одну и ту же задачу три раза, "автоматизируйте" её (выделите в функцию например). Однако этот подход может быть вредным, а иногда и откровенно неправильным, особенно если применять его догматически...
=
Дальше, берусь конкретно за курс "Гомотопическая теория типов для программистов". Придётся очень много думать 🫢
❤33👍19🔥4🙏2⚡1
Ты сеньор, тебе предлагают программиста в помощь. Кого возьмёшь?
Anonymous Poll
28%
Уровень джуна, но классно умеет делать задачки миддла с AI
28%
Крепкий миддл, но не умеет и не хочет использовать AI
44%
Никто не нужен, я сам всё сделаю (с AI или без), если дадите мне его зарплату + к моей
😁23🐳21👍7❤2🤔2
Где-то в 1990-2000-е, когда интернет стремительно развивался с нуля, казалось, что практически бесплатный доступ ко всем знаниям мира существенно повысит общий культурный и интеллектуальный уровень человечества. И программисты становились миллиардерами с нуля в эпоху доткомов, и перспективы выглядели самыми радужными.
Но в итоге всё закончилось тем, что общий образовательный и культурный уровень из-за интернета стал стремительно падать, и востребован он 98% человеков оказался только с целью смотреть бесконечные видеоролики и порно, играть в игры, лайкать котиков и переругиваться с незнакомыми людьми. В выигрыше же стабильно остаются примерно 2% населения планеты (у которых от рожденияшило в заднице повышенная активность ретикулярной формации).
С лёгкой печалью наблюдаю, что сейчас практически 1:1 ситуация с доткомами повторяется теперь в отношении AI. Пока кажется, что практически бесплатный доступ к менторам 24/7, не только обладающими всем знаниям мира, но и способными практически любую тему пояснять существенно выше среднего экспертного уровня, существенно повысит общий культурный и интеллектуальный уровень человечества. И программисты также становятся миллиардерами с нуля в эпоху AI, и перспективы выглядят самыми радужными.
Но я уверен 💯 , что уже в этом десятилетии всё снова закончится "бесконечными видеороликами и порно, играми, лайками котиков и переругивании с незнакомыми людьми" -- только уже не в реальной жизни (хоть и по ту сторону экрана), а в симулякре, полностью сгенерированном AI под интересы конкретного существа...
В адеквате же в итоге останется даже не 2, а 2 от 2 процента = 0.04% белковых/кожаных...
Будешь зажат и скован, смотреть на этот серый дождь
Ты не можешь быть разочарован, если ничего не ждёшь.
Любовь никому не нужна здесь, я буду пробовать жить без неё...
❤️❤️❤️
Но в итоге всё закончилось тем, что общий образовательный и культурный уровень из-за интернета стал стремительно падать, и востребован он 98% человеков оказался только с целью смотреть бесконечные видеоролики и порно, играть в игры, лайкать котиков и переругиваться с незнакомыми людьми. В выигрыше же стабильно остаются примерно 2% населения планеты (у которых от рождения
С лёгкой печалью наблюдаю, что сейчас практически 1:1 ситуация с доткомами повторяется теперь в отношении AI. Пока кажется, что практически бесплатный доступ к менторам 24/7, не только обладающими всем знаниям мира, но и способными практически любую тему пояснять существенно выше среднего экспертного уровня, существенно повысит общий культурный и интеллектуальный уровень человечества. И программисты также становятся миллиардерами с нуля в эпоху AI, и перспективы выглядят самыми радужными.
Но я уверен 💯 , что уже в этом десятилетии всё снова закончится "бесконечными видеороликами и порно, играми, лайками котиков и переругивании с незнакомыми людьми" -- только уже не в реальной жизни (хоть и по ту сторону экрана), а в симулякре, полностью сгенерированном AI под интересы конкретного существа...
В адеквате же в итоге останется даже не 2, а 2 от 2 процента = 0.04% белковых/кожаных...
Будешь зажат и скован, смотреть на этот серый дождь
Ты не можешь быть разочарован, если ничего не ждёшь.
Любовь никому не нужна здесь, я буду пробовать жить без неё...
❤️❤️❤️
❤52👍17🤔6🔥4🐳1
Хейлсберг рассказал, почему для переписывания TypeScript выбрал Go.
Типа, несколько месяцев они занимались прототипированием на разных языках, и Go оказался лучшим из всех: "Go proved the best fit, he said, with optimized native code for all platforms, great control over data layout, ability to have cyclic data structures and so forth, as well as automatic memory management with a garbage collector, and great access to concurrency.
...Hejlsberg said that despite advances in AOT, C# is bytecode-first, is not on all platforms, doesn’t have a decade of hardening and was not engineered that way."
Казалось бы, почему не Rust или C++ (про C# вообще молчим)? В туповатом Go действительно многие востребованные в TS 7 вещи (управление памятью, многопоточность...) реализованы в готовом виде "под капотом", и все аргументы Хейлсберга сводятся фактически к тому, что Go -- наиболее простой вариант из всех, особенно с учётом уровня доступных разработчиков.
Мэйнстрим -- это всегда примитивизация.
Типа, несколько месяцев они занимались прототипированием на разных языках, и Go оказался лучшим из всех: "Go proved the best fit, he said, with optimized native code for all platforms, great control over data layout, ability to have cyclic data structures and so forth, as well as automatic memory management with a garbage collector, and great access to concurrency.
...Hejlsberg said that despite advances in AOT, C# is bytecode-first, is not on all platforms, doesn’t have a decade of hardening and was not engineered that way."
Казалось бы, почему не Rust или C++ (про C# вообще молчим)? В туповатом Go действительно многие востребованные в TS 7 вещи (управление памятью, многопоточность...) реализованы в готовом виде "под капотом", и все аргументы Хейлсберга сводятся фактически к тому, что Go -- наиболее простой вариант из всех, особенно с учётом уровня доступных разработчиков.
Мэйнстрим -- это всегда примитивизация.
❤42👍17🤔11🐳6🤓2
Моя лучшая инвестиция за март -- это 189 рублей за плагин к хрому, который ускоряет ютуб до 4k. Я ещё прошлой осенью прогнозировал, что быстро появятся перепродавцы трафика (не исключено, связанные коммерческими интересами с лицами, ответственными за тормоз ютуба:) .
Не люблю для этого впн запускать, в целом он много чего подтормаживает, пользуюсь им только для работы с клодом 3.7 и виндсёрфом. А так, в браузере фоном слушать подкасты, смотреть велогонки в маленьком окне, самое оно.
Вот прекрасное например: "Рабство 21го века. Как тебя обманывают в ИТ"
Не люблю для этого впн запускать, в целом он много чего подтормаживает, пользуюсь им только для работы с клодом 3.7 и виндсёрфом. А так, в браузере фоном слушать подкасты, смотреть велогонки в маленьком окне, самое оно.
Вот прекрасное например: "Рабство 21го века. Как тебя обманывают в ИТ"
❤34👍17🫡4✍2🤔1
Второй сериал из 12 материалов СильныхИдей: продолжаем тему software design с акцентом на programming in small, и немного затронем programming in large.
(уровень понимания крепкий джуниор, но наверняка этим темам вас никто не учил даже в универе :)
Так они доступны только моим курсантам, но тут расширенные версии, дополненные множеством примеров (преимущественно на Java).
Цена до завтрашнего дня: 1499 рублей.
Формат - html-гайд, в архиве 38 файлов, 200 тыс. знаков чистого текста.
Доступен на бусти.
=
(Предыдущий сериал из 14 материалов СильныхИдей: БАЗА программной инженерии)
=
Краткое содержание второго сезона:
5 советов по повышению качества проектирования программных систем
Как повысить качество проектирования программных систем?
В ответ на такой вопрос обычно даются шаблонные советы, например:
"Больше работай над практическими проектами".
"Найди хороший проект с открытым кодом и изучай его код."
"Попроси коллегу, чтобы он провел code review".
Если читать между строк, то все это сведётся к "я не знаю"...
Три правила простого проектного дизайна
Как насчёт того, чтобы защитить от ошибок дизайн (в архитектурном смысле) вашего проекта? Как сделать его более удобным для развития и сопровождения?
В тему ещё можно упомянуть выученную беспомощность по Селигману.
И вот как вам не попадать в подобные ловушки ...
Важные принципы хорошего кода
...Ищите общие структуры управления и абстрагируйтесь от них. На самом деле таких шаблонов не так уж много, в СильныхИдеях (и теперь тут) постепенно их выкладываю. Усвойте эти принципы, и у вас появится внутренняя сила, которая не позволит вам писать плохой код, и вы будете блистать на code review!..
Прикладной хак из функционального программирования
Формальная чистота кода в функциональном программировании возведена в ранг святой темы. Однако платой за это становится тот факт, что код программы распухает и начинает занимать всё больший объём. И вот что с этим делать...
Как правильно готовить тесты
"Тестируйте то, что код должен делать, а не то, что он случайно делает".
Как именно вы определяете, какие писать юнит-тесты?
Что на самом деле означает корректность данной фичи?..
Почему любые дефлотные параметры -- зло
Справедливо считается, что использование дефолтных параметров (прежде всего мутабельных) -- зло. Выясняем, как с этим обстоит дело в Python и C#, C++ и TypeScript , F#, Swift, Kotlin и Rust.
Генерация исключений -- зло
С их "помощью" вы получаете слепое пробрасывание исключений, смешение checked и unchecked исключений, непредсказуемые ветвления, рекурсивные выбросы исключений, нарушение иерархии исключений, неполное логирование...
Как и зачем отказываться от хранения логических значений в базе
Есть очень мало вещей в программировании, которые однозначно и безоговорочно можно считать хорошей идеей.
Сила низкоуровневых подходов
Я постоянно призываю думать над проектом как можно более сильными абстракциями, и может показаться, что для этого надо использовать только небольшое число функциональных языков со строгой системой типов. Но нет, мне на самом деле очень нравится язык Си...
Некоторые разработчики говорили, что этот материал изменил их вычислительное мировоззрение :) Может быть, это случится и с вами?
Проверяем легаси на прочность
...Есть такая глобальная система бронирования авиабилетов SABRE, API которой существует уже 60 лет ))) и если у вас когда-либо был неудачный опыт работы с авиакомпанией, есть шанс, что частично это было связано с её API.
Когда на ваше API завязано множество сторонних ИТ-систем, вы, возможно, уже никогда не сможете изменить поведение вашего API. Поэтому...
Вечный компромисс между возможностями и удобством
Чем больше разных сущностей и концепций может представлять ваша система, тем меньше вы можете сказать о самих этих вещах, которые в ней представлены...
4 важных свойства хорошего кода
Если для того, чтобы проверить, работает ли программа правильно, нужно приложить максимум усилий, то, скорее всего, она работает неправильно.
Но при работе с хорошим кодом думать почти не нужно.
(уровень понимания крепкий джуниор, но наверняка этим темам вас никто не учил даже в универе :)
Так они доступны только моим курсантам, но тут расширенные версии, дополненные множеством примеров (преимущественно на Java).
Цена до завтрашнего дня: 1499 рублей.
Формат - html-гайд, в архиве 38 файлов, 200 тыс. знаков чистого текста.
Доступен на бусти.
=
(Предыдущий сериал из 14 материалов СильныхИдей: БАЗА программной инженерии)
=
Краткое содержание второго сезона:
5 советов по повышению качества проектирования программных систем
Как повысить качество проектирования программных систем?
В ответ на такой вопрос обычно даются шаблонные советы, например:
"Больше работай над практическими проектами".
"Найди хороший проект с открытым кодом и изучай его код."
"Попроси коллегу, чтобы он провел code review".
Если читать между строк, то все это сведётся к "я не знаю"...
Три правила простого проектного дизайна
Как насчёт того, чтобы защитить от ошибок дизайн (в архитектурном смысле) вашего проекта? Как сделать его более удобным для развития и сопровождения?
В тему ещё можно упомянуть выученную беспомощность по Селигману.
И вот как вам не попадать в подобные ловушки ...
Важные принципы хорошего кода
...Ищите общие структуры управления и абстрагируйтесь от них. На самом деле таких шаблонов не так уж много, в СильныхИдеях (и теперь тут) постепенно их выкладываю. Усвойте эти принципы, и у вас появится внутренняя сила, которая не позволит вам писать плохой код, и вы будете блистать на code review!..
Прикладной хак из функционального программирования
Формальная чистота кода в функциональном программировании возведена в ранг святой темы. Однако платой за это становится тот факт, что код программы распухает и начинает занимать всё больший объём. И вот что с этим делать...
Как правильно готовить тесты
"Тестируйте то, что код должен делать, а не то, что он случайно делает".
Как именно вы определяете, какие писать юнит-тесты?
Что на самом деле означает корректность данной фичи?..
Почему любые дефлотные параметры -- зло
Справедливо считается, что использование дефолтных параметров (прежде всего мутабельных) -- зло. Выясняем, как с этим обстоит дело в Python и C#, C++ и TypeScript , F#, Swift, Kotlin и Rust.
Генерация исключений -- зло
С их "помощью" вы получаете слепое пробрасывание исключений, смешение checked и unchecked исключений, непредсказуемые ветвления, рекурсивные выбросы исключений, нарушение иерархии исключений, неполное логирование...
Как и зачем отказываться от хранения логических значений в базе
Есть очень мало вещей в программировании, которые однозначно и безоговорочно можно считать хорошей идеей.
Сила низкоуровневых подходов
Я постоянно призываю думать над проектом как можно более сильными абстракциями, и может показаться, что для этого надо использовать только небольшое число функциональных языков со строгой системой типов. Но нет, мне на самом деле очень нравится язык Си...
Некоторые разработчики говорили, что этот материал изменил их вычислительное мировоззрение :) Может быть, это случится и с вами?
Проверяем легаси на прочность
...Есть такая глобальная система бронирования авиабилетов SABRE, API которой существует уже 60 лет ))) и если у вас когда-либо был неудачный опыт работы с авиакомпанией, есть шанс, что частично это было связано с её API.
Когда на ваше API завязано множество сторонних ИТ-систем, вы, возможно, уже никогда не сможете изменить поведение вашего API. Поэтому...
Вечный компромисс между возможностями и удобством
Чем больше разных сущностей и концепций может представлять ваша система, тем меньше вы можете сказать о самих этих вещах, которые в ней представлены...
4 важных свойства хорошего кода
Если для того, чтобы проверить, работает ли программа правильно, нужно приложить максимум усилий, то, скорее всего, она работает неправильно.
Но при работе с хорошим кодом думать почти не нужно.
4✍40👍9❤7👏2
ООП по сути просто кривая эмуляция алгебраических типов данных и тайп-классов. Да, понятие класса/объекта, считается, легче заходит начинающим, хотя по сотне ребят, кто прошёл мой курс для начинающих с полного нуля, смотрю, оно совсем не так легко и просто воспринимается, как может показаться. Скорее наоборот: человек доучился до уровня, когда может написать сортировку массива, но далее переход к объектам, когда надо что-то смоделировать с помощью классов, в 70% случаев вызывает разрыв шаблона. Это совсем не интуитивно!
А вот развитие в сторону условного функционального программирования происходит действительно легко и просто. Есть функции, есть интерфейсы, и есть чётко отделённые от них структуры данных, и надо просто учиться это всё комбинировать и выстраивать цепочки трансформаций.
Но я не могу так учить, потому что 100% вакансий будут требовать знания ООП.
Однако из позитивных трендов нельзя не упомянуть Go и Rust, где никаким наследованием и не пахнет. Впрочем, в computer science это было давно известно, вот легендарный учебник "Object-Oriented Programming With ANSI-C" 1993-го года от одного из святых cs, крайне рекомендую всем вне зависимости от того, на каком языке вы пишете.
Код/логика должен быть простым, а для этого он должен быть прежде всего плоским. Ну ок, на хаскеле наверное это получается лучше всего, но например в F# есть модули, интерфейсы , статические методы, SRTP...
Ну и конечно либа FSharpPlus.
А вот развитие в сторону условного функционального программирования происходит действительно легко и просто. Есть функции, есть интерфейсы, и есть чётко отделённые от них структуры данных, и надо просто учиться это всё комбинировать и выстраивать цепочки трансформаций.
Но я не могу так учить, потому что 100% вакансий будут требовать знания ООП.
Однако из позитивных трендов нельзя не упомянуть Go и Rust, где никаким наследованием и не пахнет. Впрочем, в computer science это было давно известно, вот легендарный учебник "Object-Oriented Programming With ANSI-C" 1993-го года от одного из святых cs, крайне рекомендую всем вне зависимости от того, на каком языке вы пишете.
Код/логика должен быть простым, а для этого он должен быть прежде всего плоским. Ну ок, на хаскеле наверное это получается лучше всего, но например в F# есть модули, интерфейсы , статические методы, SRTP...
type Adder<'T> = { Add : 'T -> 'T -> 'T }
let addValues adder a b = adder.Add a b
let intAdder = { Add = (+) }
let result = addValues intAdder 3 5Ну и конечно либа FSharpPlus.
👍48🤔10✍1❤1
Продолжаю работу с курсантами 🤓
...Также у нас в компании начинаются сокращения, до многих дошли с уведомлением об увольнении. Я не попадаю под сокращение, но на собственной шкуре ощутил важность иметь предложения от других компаний.
...На данном этапе обучения у меня отсутствует напрочь логика построения запроса таким образом, чтобы создавать временные агрегированные таблицы с целью дальнейшего использования. Алгебраически вроде понятно, как и что вычислять, но группировка данных и дальнейшее использование не ясно
...когда в том году получилось устроиться в [...], все время уходило на работу, на доучивание стека.
Подумал, наконец-то карьеру сделал, дальше можно спокойно жить и развиватся.
На тот период забросил все дополнительные курсы - физические не было времени.
В итоге в феврале сократили. Как говорится, расскажи богу о своих планах. А на рынке какая-то беда. Работу найти не могу.
Желание расти и развиваться, как разработчик не забросил. Хочу продолжить.
...С удивлением обнаружил, что не позволяю перезатирать значения по ключу. Почему я решил сделать такое поведение мне уже не ведомо, больше похоже на ошибку. В целом, я бы таким контейнером не пользовался бы xD
...Зато обратил внимание как мысли стали выстраиваться иначе в решении повседневных задач на основной работе.
...Самостоятельно доперел до того, что операции объединения/пересечения/вычитания замкнуты на типе, разве что не знал, как это называется правильно.
...При выполнении этого задания я ощутил погружение в реальную жизнь разработчика с неполной документацией, нечёткими требованиями и недостатком знаний.
...Также у нас в компании начинаются сокращения, до многих дошли с уведомлением об увольнении. Я не попадаю под сокращение, но на собственной шкуре ощутил важность иметь предложения от других компаний.
...На данном этапе обучения у меня отсутствует напрочь логика построения запроса таким образом, чтобы создавать временные агрегированные таблицы с целью дальнейшего использования. Алгебраически вроде понятно, как и что вычислять, но группировка данных и дальнейшее использование не ясно
...когда в том году получилось устроиться в [...], все время уходило на работу, на доучивание стека.
Подумал, наконец-то карьеру сделал, дальше можно спокойно жить и развиватся.
На тот период забросил все дополнительные курсы - физические не было времени.
В итоге в феврале сократили. Как говорится, расскажи богу о своих планах. А на рынке какая-то беда. Работу найти не могу.
Желание расти и развиваться, как разработчик не забросил. Хочу продолжить.
...С удивлением обнаружил, что не позволяю перезатирать значения по ключу. Почему я решил сделать такое поведение мне уже не ведомо, больше похоже на ошибку. В целом, я бы таким контейнером не пользовался бы xD
...Зато обратил внимание как мысли стали выстраиваться иначе в решении повседневных задач на основной работе.
...Самостоятельно доперел до того, что операции объединения/пересечения/вычитания замкнуты на типе, разве что не знал, как это называется правильно.
...При выполнении этого задания я ощутил погружение в реальную жизнь разработчика с неполной документацией, нечёткими требованиями и недостатком знаний.
❤🔥43✍17👍6❤3💯2
Отчёт за неделю.
Официальный "блоггер-паблик"
-- Почему многоуровневые подходы (Clear, Onion, Hexagon, да какие угодно)
в конечном итоге приводят лишь к фрагментации домена и расползанию бизнес-логики...
Для донов начинающих+ по саморазвитию
-- Если вы работали c сервисами Jira, Trello, Notion , то уже фактически имеется представление о Kanban. Но буквально в последние годы активно развиваются их конкуренты, которые внедряют AI... Некоторые платформы добавляют игровые элементы, например, баллы за выполнение задач, уровни и награды, соревнования с другими и т.п. Получается своеобразная "Жизнь как Ролевая игра" :)
-- Набор на мой новый трек для начинающих с полного нуля, 5 мест закончились за один час. Такие наборы для донов теперь проводятся регулярно.
-- Вы отправили заявки на более чем 200 вакансий — и ни одного отклика? Проблема не в навыках — у вас всё выглядит как у любого другого джуниора.
В большинстве резюме есть:
- Опыт работы с JavaScript и Java или Python
- TODO-приложение на GitHub
- "Увлечён программированием, хочу у вас работать" в сопроводительном письме.
Если вы не выделяетесь из массовки, вас игнорируют. Три ключевых шага, которые вам надо сделать.
=
Для донов-неначинающих
— Open Closed Principle
Мы хотим иметь возможность повторно использовать и расширять код без необходимости изменять исходную реализацию. ФП достигает этого с помощью двух инструментов...
— Single Responsibility Principle
Если доводить SRP до логического предела, то, скорее всего, вы получите кодовую базу с множеством мелкоструктурных классов, каждый из которых имеет единственный метод. когда такое мелкое структурирование происходит неоднократно, пора переходить на функциональный стиль...
Бусти
-- command-line tool for answering that eternal question: Who wrote this code?!
-- Важно! 2 сезон сериала СильныхИдей:
Продолжаем тему software design с акцентом на programming in small, и немного затронем programming in large. Полное содержание тут.
(Первая часть: БАЗА программной инженерии)
Официальный "блоггер-паблик"
-- Почему многоуровневые подходы (Clear, Onion, Hexagon, да какие угодно)
в конечном итоге приводят лишь к фрагментации домена и расползанию бизнес-логики...
Для донов начинающих+ по саморазвитию
-- Если вы работали c сервисами Jira, Trello, Notion , то уже фактически имеется представление о Kanban. Но буквально в последние годы активно развиваются их конкуренты, которые внедряют AI... Некоторые платформы добавляют игровые элементы, например, баллы за выполнение задач, уровни и награды, соревнования с другими и т.п. Получается своеобразная "Жизнь как Ролевая игра" :)
-- Набор на мой новый трек для начинающих с полного нуля, 5 мест закончились за один час. Такие наборы для донов теперь проводятся регулярно.
-- Вы отправили заявки на более чем 200 вакансий — и ни одного отклика? Проблема не в навыках — у вас всё выглядит как у любого другого джуниора.
В большинстве резюме есть:
- Опыт работы с JavaScript и Java или Python
- TODO-приложение на GitHub
- "Увлечён программированием, хочу у вас работать" в сопроводительном письме.
Если вы не выделяетесь из массовки, вас игнорируют. Три ключевых шага, которые вам надо сделать.
=
Для донов-неначинающих
— Open Closed Principle
Мы хотим иметь возможность повторно использовать и расширять код без необходимости изменять исходную реализацию. ФП достигает этого с помощью двух инструментов...
— Single Responsibility Principle
Если доводить SRP до логического предела, то, скорее всего, вы получите кодовую базу с множеством мелкоструктурных классов, каждый из которых имеет единственный метод. когда такое мелкое структурирование происходит неоднократно, пора переходить на функциональный стиль...
Бусти
-- command-line tool for answering that eternal question: Who wrote this code?!
-- Важно! 2 сезон сериала СильныхИдей:
Продолжаем тему software design с акцентом на programming in small, и немного затронем programming in large. Полное содержание тут.
(Первая часть: БАЗА программной инженерии)
3❤36✍6🔥2👏1
...Но главное, что весь предыдущий недельный спринт я вложил в курс "Гомотопическая теория типов для программистов". Продвигается очень тяжело, но зато я буду первым в мире, кто низведёт HoTT до уровня рядовых миддлов мэйнстрима. Ну или возвысит их до уровня HoTT :)
Столько времени к сожалению вкладывать в него долгосрочно нереально, ну хотя бы по нескольку помидорок в день буду стараться.
Пока я сделал БАЗУ: введение в HoTT и MLTT, интуиционистская версия, теория групп, открытое множество, непрерывное отображение, топологическое пространство...
И начал "Базовые понятия": фундаментальная группа, петля, путь, окружность, тор... При этом добавляю мою реализацию HoTT на питоне, с максимумом комментариев.
=
Отвечая на ваш вопрос. Нет никакой практической ценности в изучении HoTT, иначе вся мировая айтишка была бы там. Однако HoTT от этого застрахован, потому что туда очень трудно попасть.
..И все же всегда имеется слабая возможность и для обычного человека войти в эту тему, если он получит правильную карту. Но, предупреждаю заранее, если ему это и удаётся, то результатом становится замешательство, иногда необратимое -- вплоть до полного unemployable.
Столько времени к сожалению вкладывать в него долгосрочно нереально, ну хотя бы по нескольку помидорок в день буду стараться.
Пока я сделал БАЗУ: введение в HoTT и MLTT, интуиционистская версия, теория групп, открытое множество, непрерывное отображение, топологическое пространство...
И начал "Базовые понятия": фундаментальная группа, петля, путь, окружность, тор... При этом добавляю мою реализацию HoTT на питоне, с максимумом комментариев.
=
Отвечая на ваш вопрос. Нет никакой практической ценности в изучении HoTT, иначе вся мировая айтишка была бы там. Однако HoTT от этого застрахован, потому что туда очень трудно попасть.
..И все же всегда имеется слабая возможность и для обычного человека войти в эту тему, если он получит правильную карту. Но, предупреждаю заранее, если ему это и удаётся, то результатом становится замешательство, иногда необратимое -- вплоть до полного unemployable.
1❤46👍11🤯6⚡1🤔1
Твой выбор, мистер Андерсон. Альтернативы нет :)
Anonymous Poll
64%
Страх потратить всю жизнь на работу, которая ощущается как каторга
36%
Страх потерять работу и умереть в нищете
🤯21🫡13😎12🐳3
То знакомое чувство лёгкой грусти, когда возникает очередное противоречие между теоретической моделью обобщённых типов, и их фактической реализацией в Python...
Даже на таком простом уровне, как реализация типа-суммы (дизъюнктное объединение типов- параметров).
Когда уже сделал реализацию, но решил сэкономить на том, чему активно учишь других, и забил на TDD (или хотя бы "тесты-первыми"). В результате первые же тесты ломаются, после чего тратишь кучу времени на странные баги, а когда добираешься до причины, понимаешь, что всё придётся переписать заново :)
Я совсем забыл, что питончик - это type erasure, когда информация о параметрах типа (T и U для класса Sum[T, U]) стирается во время выполнения...
Тут рекомендуют паттерн Стратегия, но я бы для продакшена делал фабричные методы вроде Sum.left(), которые создают экземпляры Sum с явно заданным значением is_left, что полностью обходит необходимость определения типа во время выполнения.
Но в данном случае (и в ряде существенно более сложных) мне надобудет придумать как сделать абсолютно чистый в математическом смысле интерфейс.
Даже на таком простом уровне, как реализация типа-суммы (дизъюнктное объединение типов- параметров).
class Sum(Generic[T, U]):
def __init__(self, value: Union[T, U], is_left: Optional[bool] = None):
Когда уже сделал реализацию, но решил сэкономить на том, чему активно учишь других, и забил на TDD (или хотя бы "тесты-первыми"). В результате первые же тесты ломаются, после чего тратишь кучу времени на странные баги, а когда добираешься до причины, понимаешь, что всё придётся переписать заново :)
Я совсем забыл, что питончик - это type erasure, когда информация о параметрах типа (T и U для класса Sum[T, U]) стирается во время выполнения...
Тут рекомендуют паттерн Стратегия, но я бы для продакшена делал фабричные методы вроде Sum.left(), которые создают экземпляры Sum с явно заданным значением is_left, что полностью обходит необходимость определения типа во время выполнения.
Но в данном случае (и в ряде существенно более сложных) мне надо
❤36👍16✍7❤🔥1🤯1
У меня на рутубе много подкастов, которые слушаю фоном, и сегодня он внезапно стал отключаться, едва уходишь на другую вкладку или просто сам хром сворачиваешь, или переключаешься на другую программу.
Я "ничего не трогал ничего не обновлял ничего не менял комп перезагружал", но главное что в фоне продолжает прекрасно работать и ютуб, и вквидео, и даже одноклассники-видео :) и онлайн-кинотеатры разные, то есть проблема конкретно в рутубе. Впрочем, по очевидным причинам совершенно не удивлён. Видимо, совсем у пацанов дела плохи, раз приходится экономить трафик таким образом )))
Любой джун-фронтендер подскажет, как можно эту проблему решить на время жизни вкладки: надо отрубить Page Visibility API.
F12 -> Console ->
А если регулярно повторяется, автоматизируем подмену API с помощью Tampermonkey.
Подкасты с рутуба я из гуманных соображений всегда слушал в видеоформате 144, но теперь из вредности буду всегда ставить 1080++.
( даже стрим мэдисона на кике в фоне норм работает 😊 начинал он кстати с рутуба... )
Самое же возмутительное, что на рутуб у меня платная подписка, и вот его отказ работать в фоне даже для платных папищеков откровенное свинство.
27.03.25 Сегодня вроде заработало; был баг?
30.03.25 Опять сломалось...
Я "ничего не трогал ничего не обновлял ничего не менял комп перезагружал", но главное что в фоне продолжает прекрасно работать и ютуб, и вквидео, и даже одноклассники-видео :) и онлайн-кинотеатры разные, то есть проблема конкретно в рутубе. Впрочем, по очевидным причинам совершенно не удивлён. Видимо, совсем у пацанов дела плохи, раз приходится экономить трафик таким образом )))
Любой джун-фронтендер подскажет, как можно эту проблему решить на время жизни вкладки: надо отрубить Page Visibility API.
F12 -> Console ->
Object.defineProperty(document, 'hidden', { value: false, configurable: false });
Object.defineProperty(document, 'visibilityState', { value: 'visible', configurable: false });А если регулярно повторяется, автоматизируем подмену API с помощью Tampermonkey.
Подкасты с рутуба я из гуманных соображений всегда слушал в видеоформате 144, но теперь из вредности буду всегда ставить 1080++.
( даже стрим мэдисона на кике в фоне норм работает 😊 начинал он кстати с рутуба... )
Самое же возмутительное, что на рутуб у меня платная подписка, и вот его отказ работать в фоне даже для платных папищеков откровенное свинство.
27.03.25 Сегодня вроде заработало; был баг?
30.03.25 Опять сломалось...
😎36😁22👍10🤔3🐳3
Как Spring-разработчик заваривает чай.
Входные данные: Spring-разработчик не может просто взять и заварить чай, ему нужен DI.
Spring Context: всё должно быть бинами: @TeaBean, @Sugar (опционально, как всегда), @BoilingWater.
Прокси-слой (AOP): прежде чем выдать чай, нужно залогировать процесс и замерить время заваривания.
Внешний сервис: вода берётся асинхронно (@Async), а если кран не работает – автоматический retry (@Retryable).
Exception Handler: если чайник сломался, Spring gracefully вернёт TeaPotException (HTTP 418 I'm a teapot).
Можно добавить ещё @Scheduled для автоматического чаепития каждые 2 часа.
Входные данные: Spring-разработчик не может просто взять и заварить чай, ему нужен DI.
Spring Context: всё должно быть бинами: @TeaBean, @Sugar (опционально, как всегда), @BoilingWater.
Прокси-слой (AOP): прежде чем выдать чай, нужно залогировать процесс и замерить время заваривания.
Внешний сервис: вода берётся асинхронно (@Async), а если кран не работает – автоматический retry (@Retryable).
Exception Handler: если чайник сломался, Spring gracefully вернёт TeaPotException (HTTP 418 I'm a teapot).
Можно добавить ещё @Scheduled для автоматического чаепития каждые 2 часа.
😁57👍9✍7💯4🏆2
Продолжаю работу с курсантами 🤓
...С основной работы я уже ушел, 21го числа. Решили что нет смысла "лямку тянуть" до конца месяца. (Как то даже по спокойнее сразу стало - снизилась тревожность и себя стал слышать, даже идеи сами приходят)
...Я в первую очередь буду на свои модели менять, потому что уж очень важный узел, и как будто ЛЛМ вообще не нужен, а хороший NLU классификатор который можно прозрачно дообучить/переобучить после того как обнаружатся странности.
Такие роутеры классификаторы на LLM это вообще рандом. Осенью очень много смешных поведений ловили. Буквально чуть чуть промпт меняешь, пробел лишний или слово 1-2, и результат вообще другой.
...Теперь командам разработки без выделенных девопсов/dba никогда не посоветую self-hosted HA-кластер сопровождать).
Кстати месяц где-то назад одну мою команду как раз отговорил на основе этого моего опыта.
(а ты сможешь самостоятельно обновить кластера без даунтайма?)
...В одном из проектов заменил PostgreSQL на MongoDB. Исходной причиной стало понимание того, что более эффективно будет работать с денормализованными данными. Таким образом мы перешли от набора таблиц к единому документу, что упростило схему БД и сделало выполнение запросов более быстрым. В дополнение к этому мы получили отказоустойчивый кластер из коробки, что упрощает процесс его сопровождения.
...Неужели, ORM так и работает: использует под капотом эти функции для получения запросов в виде json, а потом при помощи какого-нибудь jackson мапит их в объекты?!
...Альтернативой в экосистеме Go между ORM и голым SQL могут служить инструменты, такие как query-билдеры, например, squirrel. - Они способны на 99% загрыть потребность в ORM, если стоит вопрос о гибкости и удобстве построения сложных запросов.
Если говорить про модели данных, то одной из лучших рекомендаций для ослабления ограничеий ORM-ов может стать денормализация таблиц и формирование более избыточных моделей, чтобы была возможность гибко с ними работать без излишних джоинов и сложной бизнес-логики.
...Помимо этих интеграции вышел очередной баг с 1с, господа решили раз в месяц менять в каком нибудь api ответ datetime полей с null, на mindate.
Также переводил на новый pipeline и десерилизовал ответ от 1с новым самописным десириализатором,по вашим занятиям избавился полностью от nullable полей в record ответе от 1с, и жить стало в разы легче, теперь я работаю с двумя состояниями даты, либо она конкретная, либо минимальная.
Да, писать свой собственный клей для подобных случаев, похоже , надо будет всегда, главная проблема что он со временем сам превращается в баттлнек )
Горжусь вами, дорогие!
❤️❤️❤️❤️❤️❤️❤️
...С основной работы я уже ушел, 21го числа. Решили что нет смысла "лямку тянуть" до конца месяца. (Как то даже по спокойнее сразу стало - снизилась тревожность и себя стал слышать, даже идеи сами приходят)
...Я в первую очередь буду на свои модели менять, потому что уж очень важный узел, и как будто ЛЛМ вообще не нужен, а хороший NLU классификатор который можно прозрачно дообучить/переобучить после того как обнаружатся странности.
Такие роутеры классификаторы на LLM это вообще рандом. Осенью очень много смешных поведений ловили. Буквально чуть чуть промпт меняешь, пробел лишний или слово 1-2, и результат вообще другой.
...Теперь командам разработки без выделенных девопсов/dba никогда не посоветую self-hosted HA-кластер сопровождать).
Кстати месяц где-то назад одну мою команду как раз отговорил на основе этого моего опыта.
(а ты сможешь самостоятельно обновить кластера без даунтайма?)
...В одном из проектов заменил PostgreSQL на MongoDB. Исходной причиной стало понимание того, что более эффективно будет работать с денормализованными данными. Таким образом мы перешли от набора таблиц к единому документу, что упростило схему БД и сделало выполнение запросов более быстрым. В дополнение к этому мы получили отказоустойчивый кластер из коробки, что упрощает процесс его сопровождения.
...Неужели, ORM так и работает: использует под капотом эти функции для получения запросов в виде json, а потом при помощи какого-нибудь jackson мапит их в объекты?!
...Альтернативой в экосистеме Go между ORM и голым SQL могут служить инструменты, такие как query-билдеры, например, squirrel. - Они способны на 99% загрыть потребность в ORM, если стоит вопрос о гибкости и удобстве построения сложных запросов.
Если говорить про модели данных, то одной из лучших рекомендаций для ослабления ограничеий ORM-ов может стать денормализация таблиц и формирование более избыточных моделей, чтобы была возможность гибко с ними работать без излишних джоинов и сложной бизнес-логики.
...Помимо этих интеграции вышел очередной баг с 1с, господа решили раз в месяц менять в каком нибудь api ответ datetime полей с null, на mindate.
Также переводил на новый pipeline и десерилизовал ответ от 1с новым самописным десириализатором,по вашим занятиям избавился полностью от nullable полей в record ответе от 1с, и жить стало в разы легче, теперь я работаю с двумя состояниями даты, либо она конкретная, либо минимальная.
Да, писать свой собственный клей для подобных случаев, похоже , надо будет всегда, главная проблема что он со временем сам превращается в баттлнек )
Горжусь вами, дорогие!
❤️❤️❤️❤️❤️❤️❤️
👍48❤17🔥1
Сейчас истеричные белки по поводу AI заводятся ровно по двум темам:
1. Смотрите! Смотрите! Очередной жпт порвал все другие жпт в неких абстрактных программистских тестах в вакууме, которые к реальной работе имеет отношение более чем никакое, и делаются крупными конторами исключительно для перепиаривания конкурентов и развода лохов-инвесторов.
Я проверил намедни новую дипсику 31 со всеми её супер-пупер-синками, так она не смогла корректно сгенерить линейный json для создания простой диаграммки из пяти квадратиков со стрелочками, хотя я мучил её полчаса -- а нарисовать вручную оказалось 3 минуты. Как всегда, "дешевле девочку посадить за эксель", чем платить сотни долларов за токены.
2. Смотрите! Смотрите! Школьник, не умеющий программировать, двумя промптами, создал полноценную игруи продал её за миллион долларов.
Во-первых, AI её внутри отнюдь не создал с нуля, а просто скопипастил с гитхаба нечто достаточно похожее, и добавил несколько "оригинальных" фич, спизж... с других проектов.
Во-вторых, ну ок, но вы попробуйте этот проэкт поразвивать дальше.
Попросите сделать для этой игры UI с действительно оригинальными возможностями, добавить логически более-менее сложные и нестандартные фичи -- и AI тут же обломается.
=
А что если действительно AIsys? Сейчас в эту темку вкладывается беспрецедентная сумма, доселе невиданная в истории человечества.
"ИИ может сыграть роль в приходе Антихриста, — заявил Патриарх Кирилл. ...ИИ должен быть поставлен под жёсткий контроль государства и "в хорошем смысле общества".
Но разве его послушает кто-то из демонстративно крестящихся на камеры, когда под распил заходит такое баблище...
Но, не получится служить одновременно Богу и AIsys-у.
1. Смотрите! Смотрите! Очередной жпт порвал все другие жпт в неких абстрактных программистских тестах в вакууме, которые к реальной работе имеет отношение более чем никакое, и делаются крупными конторами исключительно для перепиаривания конкурентов и развода лохов-инвесторов.
Я проверил намедни новую дипсику 31 со всеми её супер-пупер-синками, так она не смогла корректно сгенерить линейный json для создания простой диаграммки из пяти квадратиков со стрелочками, хотя я мучил её полчаса -- а нарисовать вручную оказалось 3 минуты. Как всегда, "дешевле девочку посадить за эксель", чем платить сотни долларов за токены.
2. Смотрите! Смотрите! Школьник, не умеющий программировать, двумя промптами, создал полноценную игру
Во-первых, AI её внутри отнюдь не создал с нуля, а просто скопипастил с гитхаба нечто достаточно похожее, и добавил несколько "оригинальных" фич, спизж... с других проектов.
Во-вторых, ну ок, но вы попробуйте этот проэкт поразвивать дальше.
Попросите сделать для этой игры UI с действительно оригинальными возможностями, добавить логически более-менее сложные и нестандартные фичи -- и AI тут же обломается.
=
А что если действительно AIsys? Сейчас в эту темку вкладывается беспрецедентная сумма, доселе невиданная в истории человечества.
"ИИ может сыграть роль в приходе Антихриста, — заявил Патриарх Кирилл. ...ИИ должен быть поставлен под жёсткий контроль государства и "в хорошем смысле общества".
Но разве его послушает кто-то из демонстративно крестящихся на камеры, когда под распил заходит такое баблище...
Но, не получится служить одновременно Богу и AIsys-у.
❤38🤔20🐳7💯1🫡1