Лайфхак от головной боли по выравниванию и обновлению версий NuGet пакетов:
1) Установить утилиту глобально:
2) Обновить всё до последней минорной версии:
3) Обновить вообще всё до самых последних версий:
Да, придется подождать, в зависимости от количества пакетов и их переплетений по зависимостям (5-30 мин), но это сильно быстрее, чем самому распутывать клубки тянущихся друг за другом зависимостей и обновлять пакеты вручную, один за другим.
1) Установить утилиту глобально:
dotnet tool install --global dotnet-outdated-tool
2) Обновить всё до последней минорной версии:
dotnet outdated --version-lock major --upgrade
3) Обновить вообще всё до самых последних версий:
dotnet outdated --upgrade
Да, придется подождать, в зависимости от количества пакетов и их переплетений по зависимостям (5-30 мин), но это сильно быстрее, чем самому распутывать клубки тянущихся друг за другом зависимостей и обновлять пакеты вручную, один за другим.
Сталкивался с проблемами при выборе образа докера, с непонятными приписками в конце, Alpine понятно, а что именно означают остальные, кроме того, о чем можно косвенно догадаться по названию — было непонятно, поэтому решил суммаризировать и оставить тут для себя:
🔵 Alpine: легкий дистрибутив Linux, ориентированный на безопасность, подходит для микросервисов и легких приложений.
🔵 Slim: уменьшенная версия Debian, совместима с более широким спектром приложений.
🔵 Bullseye: стабильный дистрибутив Debian с обширной поддержкой библиотек.
🔵 Bookworm: кодовое название Debian 12, подходит для использования новейших библиотек и функций.
🔵 Jammy: кодовое название Ubuntu 22.04 LTS, оптимизирован для приложений LTS.
🔵 Noble: пользовательский или академический образ, совместим с Debian, используется в определенных средах.
PS: если коротко то просто всегда выбирать Alpine, или Slim, в зависимости от того нужен Ubuntu или Debian, 99% раз это будет правильный выбор. В 1% по узкоспециализированной потребности.
PS: если коротко то просто всегда выбирать Alpine, или Slim, в зависимости от того нужен Ubuntu или Debian, 99% раз это будет правильный выбор. В 1% по узкоспециализированной потребности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Борис опять
Это не оверинжениринг если:
1. Тебе было весело
2. PM не заметил
1. Тебе было весело
2. PM не заметил
Forwarded from Стой под стрелой (Nikita Prokopov)
Провел выходные за оптимизацией Java кода. Периодически слышу, как люди говорят «JVM может быть быстрой», и я в целом им верю, но какой ценой?
Например, смотрел доклад, и там чел говорит: ну вот, JVM любит когда ты код попроще пишешь, и не любит по-сложнее. Когда массивы-индексы-примитивные типы так вообще хорошо.
Проблема в том, что это не точные инструкции. Например, сходить в другой класс прочитать поле или даже вызвать несложный метод может быть бесплатно. А может и нет. Как узнать? Никак, пробовать. Вчера мой код начал работать в 10 раз медленее просто потому, что я какую-то переменную перенес из локальной в поле класса. В 10 раз! И только одну конкретную переменную. Пять других перенеслись прекрасно. ПОЧЕМУ?
И в итоге ты не работой занимаешься, а шаманством каким-то, перестановкой инструкций наугад. Я уважаю научный метод, гипотеза-эксперимент, вот это все, но это не он, это уже граничит с магией. Если честно, неудобно даже как-то называть себя инженером после такого.
Закончилось все тем, что я написал версию, которая работает за 50 микросекунд на ASCII файле, но если запустить ее на файле с не-ASCII символом, а потом снова на ASCII, то она начинает работать за 100 микросекунд. То есть еще раз, тот же вход, та же функция, просто начинает работать в два раза медленее если кто-то где-то однажды позвал ее на другом файле.
А потом выйдет новая версия и все опять начнет работать по-другому. Или не начнет. Потому что гарантий никаких нет, а внутри магия.
Например, смотрел доклад, и там чел говорит: ну вот, JVM любит когда ты код попроще пишешь, и не любит по-сложнее. Когда массивы-индексы-примитивные типы так вообще хорошо.
Проблема в том, что это не точные инструкции. Например, сходить в другой класс прочитать поле или даже вызвать несложный метод может быть бесплатно. А может и нет. Как узнать? Никак, пробовать. Вчера мой код начал работать в 10 раз медленее просто потому, что я какую-то переменную перенес из локальной в поле класса. В 10 раз! И только одну конкретную переменную. Пять других перенеслись прекрасно. ПОЧЕМУ?
И в итоге ты не работой занимаешься, а шаманством каким-то, перестановкой инструкций наугад. Я уважаю научный метод, гипотеза-эксперимент, вот это все, но это не он, это уже граничит с магией. Если честно, неудобно даже как-то называть себя инженером после такого.
Закончилось все тем, что я написал версию, которая работает за 50 микросекунд на ASCII файле, но если запустить ее на файле с не-ASCII символом, а потом снова на ASCII, то она начинает работать за 100 микросекунд. То есть еще раз, тот же вход, та же функция, просто начинает работать в два раза медленее если кто-то где-то однажды позвал ее на другом файле.
А потом выйдет новая версия и все опять начнет работать по-другому. Или не начнет. Потому что гарантий никаких нет, а внутри магия.
Как чувствует себя мой ноут на i5, без видеокарты, с 15Гб свободной RAM, когда я запускаю на нем 7b модель с 1000+ FAISS
😂
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevHumor
Слышал про одну притчу, про хирурга и автомеханика:
В наших (айтишных) руках, конечно не человеческая жизнь, но аналогия схожа. Только автомобиль при этом не только заведен, а еще и едет по дороге на скорости. И на ходу нужно в него добавлять всякие кнопочки, которые позволяют более гибко зажигать лампочки в автомобиле. Кому-то нужно встроить принтер в бардачок, чтобы он печатал давление всех колес, кроме одного, которое пользователю нужно вывести на экранчик в руле, потому что ему так виднее. Или добавить пятое колесо в движении.
И всё это на ходу, без остановок. Из вспомогательных факторов: можно остановиться несколько раз за неделю, на 10-15 минут; параллельно едет такая-же машина, с которой можно делать что угодно и останавливать на сколько угодно, чтобы проверить и подготовить все новые штуки к внедрению в основной автомобиль.
Приезжает хирург в автосервис. Мастер объявляет ему стоимость ремонта двигателя. Хирург соглашается.
Мастер ему говорит: -"Почему такая несправедливость? Ты ведь тоже "механик", только людей ремонтируешь. А стоимость работы у нас с тобой не сопоставима."
Хирург с удивлением говорит: -"Да? Ну хорошо!"
Заводит двигатель автомобиля, и говорит мастеру: -"Вот теперь ремонтируй!"
В наших (айтишных) руках, конечно не человеческая жизнь, но аналогия схожа. Только автомобиль при этом не только заведен, а еще и едет по дороге на скорости. И на ходу нужно в него добавлять всякие кнопочки, которые позволяют более гибко зажигать лампочки в автомобиле. Кому-то нужно встроить принтер в бардачок, чтобы он печатал давление всех колес, кроме одного, которое пользователю нужно вывести на экранчик в руле, потому что ему так виднее. Или добавить пятое колесо в движении.
И всё это на ходу, без остановок. Из вспомогательных факторов: можно остановиться несколько раз за неделю, на 10-15 минут; параллельно едет такая-же машина, с которой можно делать что угодно и останавливать на сколько угодно, чтобы проверить и подготовить все новые штуки к внедрению в основной автомобиль.
Внимание, анекдот:
...
8 октября 2024. Александр:
"Привет) Удалось найти вариант как получить эти данные?"
8 октября 2024. Григорий:
"Здравствуйте. пока не смотрел, и пока сложно сказать, когда доберусь."
14 января 2025. Александр:
"Добрый день, Григорий, удалось добраться?"
16 января 2025. Григорий:
"Коллеги, добрый день. Честно говоря, немного подзабыл про это. Поставил себе пометку, постараюсь посмотреть на следующей неделе."
Все события и персонажи выдуманы, все совпадения случайны.😨
...
8 октября 2024. Александр:
"Привет) Удалось найти вариант как получить эти данные?"
8 октября 2024. Григорий:
"Здравствуйте. пока не смотрел, и пока сложно сказать, когда доберусь."
14 января 2025. Александр:
"Добрый день, Григорий, удалось добраться?"
16 января 2025. Григорий:
"Коллеги, добрый день. Честно говоря, немного подзабыл про это. Поставил себе пометку, постараюсь посмотреть на следующей неделе."
Все события и персонажи выдуманы, все совпадения случайны.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
⚡️Американская компания по кибербезопасности Wiz сообщила, что ее сотрудникам удалось обнаружить в общем доступе базу данных ClickHouse, связанную с китайским ИИ-стартапом DeepSeek. Используя обнаруженные файлы, программисты Wiz получили полный контроль над базой.
В сообщении Wiz говорится, что база ClickHouse была размещена на oauth2callback.deepseek.com:9000 и dev.deepseek.com:9000. Она была полностью открытой и раскрывала конфиденциальные данные.
Какой я молодец, что форшу всех использовать случайные публичные порты
Please open Telegram to view this post
VIEW IN TELEGRAM
Алгоритмы ютуба слишком высокого обо мне мнения, раз рекомендуют это 🥸
Сделал свои первые вычисления на квантовом компьютере :3 Пока-что результаты сходятся.
Forwarded from Denis Sexy IT 🤖
Media is too big
VIEW IN TELEGRAM
Давно полезных сайтов не было:
https://quantum.orgsoft.org/
Тут можно подбросить монетку и вместо классических программистких способов получить случайную вероятность для результата, сайт пойдет в РЕАЛЬНЫЙ КВАНТОВЫЙ КОМПЬЮТЕР и обеспечит настоящий рандом😎
https://quantum.orgsoft.org/
Тут можно подбросить монетку и вместо классических программистких способов получить случайную вероятность для результата, сайт пойдет в РЕАЛЬНЫЙ КВАНТОВЫЙ КОМПЬЮТЕР и обеспечит настоящий рандом
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Борис опять
Так же Cursor практически не помогает думать. Я прошу написать тесты: он пишет тесты, где проверяет, что всё работает. Но пока не попросишь он не напишет негативные тесты. То есть он не будет без твоего пинка проверять, что то, что не должно работать, действительно не работает. И не скажет о том, что так нужно делать.
Так что программистский навык не обесценивается. Возможно, наоборот, теперь нужно два навыка:
1. Умение делать хорошо.
2. Умение распознать где LLM может тебя обмануть.
Так что программистский навык не обесценивается. Возможно, наоборот, теперь нужно два навыка:
1. Умение делать хорошо.
2. Умение распознать где LLM может тебя обмануть.
# Печатные издания
С расцветом ИИ я тут понял, что это даст толчок к возрождению печатных изданий, таких как книги или журналы (в том числе платных электронных). Потому что сейчас 90% адаптированных под индексацию ИИ сгенерированных статей, сделанных выпускниками инфоцыганских курсов по зарабатыванию на ИИ, за неделю - начинают раздражать. 🥲 А люди, у которых огромные печатные станки и редактура, если они поставят себя изначально как серьезные издания которые не принимают к публикации ИИ сгенерированные материалы, могут получить неожиданный буст людей, которые хотят получать качественный и вдумчиво сделанный контент. Думаю это начнется в ближайшие пару лет 🙂
С расцветом ИИ я тут понял, что это даст толчок к возрождению печатных изданий, таких как книги или журналы (в том числе платных электронных). Потому что сейчас 90% адаптированных под индексацию ИИ сгенерированных статей, сделанных выпускниками инфоцыганских курсов по зарабатыванию на ИИ, за неделю - начинают раздражать. 🥲 А люди, у которых огромные печатные станки и редактура, если они поставят себя изначально как серьезные издания которые не принимают к публикации ИИ сгенерированные материалы, могут получить неожиданный буст людей, которые хотят получать качественный и вдумчиво сделанный контент. Думаю это начнется в ближайшие пару лет 🙂
🔥1
Forwarded from Сказки Дядюшки Зомбака
3 Апреля 1986-го года группа из 6000 учителей собралась возле отелей Шератон и Шорехем в Вашингтоне на ежегодное собрание Национального Совета Учителей Математики.
Возле отелей, однако, собрались пикетчики, который поднимали плакаты с надписями вида «Кнопка ничего не значит, пока не натренирован мозг» и «Осторожно: преждевременное использование калькулятора может навредить образованию вашего ребёнка», а также скандировали лозунги:
Cal-cu-la-tors later,
we shall not be mov-ed!
(Каль-ку-ля-торы — потом, нас не сдви-нуть ни по чём)!
Пикетчикам не нравилось, что Совет проголосовал за рекомендацию включить в школьную программу устройство "калькулятор". Причём, по тем временам, это было просто неслыхано - мало того, что калькулятор предлагалось использовать не только в классе, но и даже во время выполнения домашних заданий. А ещё их предлагалось использовать в начальной школе, а не только среди старшеклассников.
Более того, учителям ставилось в задачу "на каждом уровне обучения ученика научить его пользоваться калькулятором и дать ему знать, когда это нужно делать".
Протест, разумеется, ни к чему не привёл, но пресса собрала ряд мнений, а Washington Post даже взял интервью у пикетчиков, где организатор протеста, продавец учебников по математике, а также бывший учитель математики на пенсии Джон Саксон, рассказывал, что:
В христианских газетах писали, что учителя боялись, будто дети "подсядут на эти устройства" и "не смогут решать даже элементарные задачи", ведь "существует огромный потенциал для разрушения математических навыков у учащихся".
Сторонники же использования калькуляторов указывали на такие преимущества, как "мгновенная обратная связь, которую обеспечивают эти устройства", и то, что они "позволяют отстающим ученикам достичь более высокого уровня в математике". А ещё, калькуляторы избавляли учеников от "утомительной работы с бумагой и карандашом", поэтому они могли бы уделять больше времени решению задач.
Противники же калькуляторов утверждали, что "вы не сможете научится математическому процессу, нажимая кнопки", а также, что "нам бы не хотелось, чтобы калькулятор использовался до шестого класса школы".
Газета резюмировала это так:
"Никто не знает, что произойдёт со временем, когда калькуляторы станут привычным для нас инструментом. Дайан Харви, глава Совета, вспоминает, как на съезде одна учительница сказала ему: «Зачем нам об этом беспокоиться?» — когда речь зашла о важности обучения детей умножению и делению. «Для начала я хочу, чтобы дети научились ходить, прежде чем будут целыми днями кататься на гольф-карах», — говорила она".
Прошли годы. Калькуляторы стали не просто привычными — они уместились в наших с вами телефонах, которые теперь есть у каждого. Ученики делают домашку на планшетах и ноутбуках, учителя — сидят в Zoom и Teams, а ChatGPT решает задачи по алгебре за доли секунды.
И всё же кое-что не меняется: где-то всегда найдётся человек с плакатом, уверенный, что теперь всё точно пойдёт не так.
Возле отелей, однако, собрались пикетчики, который поднимали плакаты с надписями вида «Кнопка ничего не значит, пока не натренирован мозг» и «Осторожно: преждевременное использование калькулятора может навредить образованию вашего ребёнка», а также скандировали лозунги:
Cal-cu-la-tors later,
we shall not be mov-ed!
(Каль-ку-ля-торы — потом, нас не сдви-нуть ни по чём)!
Пикетчикам не нравилось, что Совет проголосовал за рекомендацию включить в школьную программу устройство "калькулятор". Причём, по тем временам, это было просто неслыхано - мало того, что калькулятор предлагалось использовать не только в классе, но и даже во время выполнения домашних заданий. А ещё их предлагалось использовать в начальной школе, а не только среди старшеклассников.
Более того, учителям ставилось в задачу "на каждом уровне обучения ученика научить его пользоваться калькулятором и дать ему знать, когда это нужно делать".
Протест, разумеется, ни к чему не привёл, но пресса собрала ряд мнений, а Washington Post даже взял интервью у пикетчиков, где организатор протеста, продавец учебников по математике, а также бывший учитель математики на пенсии Джон Саксон, рассказывал, что:
"Я знаю, как работал мой мыслительный процесс в детстве. Если бы я мог воспользоваться коротким путём, я бы откладывал домашнее задание, шёл бы домой и там решал бы его на калькуляторе. Мне не было бы никакого смысла делать это вручную! Так что мы должны запретить использование калькуляторов в начальной школе"!
В христианских газетах писали, что учителя боялись, будто дети "подсядут на эти устройства" и "не смогут решать даже элементарные задачи", ведь "существует огромный потенциал для разрушения математических навыков у учащихся".
Сторонники же использования калькуляторов указывали на такие преимущества, как "мгновенная обратная связь, которую обеспечивают эти устройства", и то, что они "позволяют отстающим ученикам достичь более высокого уровня в математике". А ещё, калькуляторы избавляли учеников от "утомительной работы с бумагой и карандашом", поэтому они могли бы уделять больше времени решению задач.
Противники же калькуляторов утверждали, что "вы не сможете научится математическому процессу, нажимая кнопки", а также, что "нам бы не хотелось, чтобы калькулятор использовался до шестого класса школы".
Газета резюмировала это так:
"Никто не знает, что произойдёт со временем, когда калькуляторы станут привычным для нас инструментом. Дайан Харви, глава Совета, вспоминает, как на съезде одна учительница сказала ему: «Зачем нам об этом беспокоиться?» — когда речь зашла о важности обучения детей умножению и делению. «Для начала я хочу, чтобы дети научились ходить, прежде чем будут целыми днями кататься на гольф-карах», — говорила она".
Прошли годы. Калькуляторы стали не просто привычными — они уместились в наших с вами телефонах, которые теперь есть у каждого. Ученики делают домашку на планшетах и ноутбуках, учителя — сидят в Zoom и Teams, а ChatGPT решает задачи по алгебре за доли секунды.
И всё же кое-что не меняется: где-то всегда найдётся человек с плакатом, уверенный, что теперь всё точно пойдёт не так.