AT extra 👨‍💻 devcode
4 subscribers
601 photos
145 videos
1 file
574 links
Главное не ставить деплой в пятницу 🤣

#трюкдня #мемдня

Мемы тут: @atextra_entertrends
Download Telegram
Forwarded from Несмешные мемы (Alexander Sergeevich)
Forwarded from vc.ru
В 1950-х, когда появились электрические пишущие машинки от IBM, из-за лёгкого хода клавиш и обновлённой ленты стало проще сделать опечатку.

Решение нашла секретарша Бетт Несмит Грэм — взбила краску в блендере и создала корректор. Поначалу она хотела сохранить изобретение в тайне, но в итоге заработала миллионы долларов

vc.ru/story/308569
Forwarded from IT Юмор
​​«За искусственным интеллектом будущее»

Также ИИ:
string.swapcase

Метод swapcase() возвращает строку, преобразуя все символы в противоположный регистр (прописные буквы в строчные и наоборот). Для преобразования строки в нижний регистр используй метод lower(). Аналогично, если для преобразования строки в верхний регистр используй upper().

#практика
Forwarded from Data Science. SQL hub
💻 Зачем нужен SELECT ... FOR UPDATE?

▶️Итак, ответ. Пока у вас транзакции следуют строго одна за другой - у вас всё хорошо и нет проблем. Кроме производительности. А чтобы улучшить производительность — необходимо разрешить транзакции выполнять параллельно. И вот тут начинается богатый и поразительный мир concurrently control. При том, не только в БД, а везде где хоть что-то выполняется параллельно.

Допустим есть пользователь, у него есть 100 денег на счету. Пользователь может их тратить, вы проверяете баланс SELECT balance ..., затем обновляете баланс при покупке UPDATE ... SET balance = ? WHERE .... И вот в счастливый день как-то так вышло, что приходят сразу 2 запроса на покупки для этого пользователя. Одна на 50 денег, вторая на 70. Одна из них должна быть отклонена, т.к. денег недостаточно. Но в результате получается что обе покупки прошли и у вас проблема, вы продали то, что не надо было. И это даже не видно по балансу пользователя. Как же?

Это типичный race condition, обе транзакции сначала данные читают, потом локально что-то делают, потом что-то пишут.
⏩читать им никто не мешает, потому обе транзакции прочитали что у пользователя 100 денег
⏩обе транзакции закономерно решили что денег достаточно
⏩обе транзакции обновили баланс пользователя
При конкурентном доступе к ресурсу подрались только на последнем шаге, транзакция которая начала обновлять данные позже сначала подождала завершение первой транзакции. А затем банально перезаписала баланс на тот который считала правильным сама — lost update аномалия.

▶️Вот как раз для того чтобы предупредить СУБД о том, что мы планируем с данными что-то делать, а потому нам надо сериализовать транзакции иначе, и существует FOR SHARE, FOR UPDATE дополнения. Потому они кстати и задокументированы в разделе Explicit Locking

📎 Подробнее прочитать можно тут

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Несмешные мемы (Alexander Sergeevich)
Forwarded from Хабр Новости
15 марта 2024 года Microsoft сообщила, что с 31 марта 2025 года компания прекратит работу Центра приложений Visual Studio (Visual Studio App Center). Microsoft рекомендует разработчикам приложений для iOS, Android, Windows и macOS подготовиться к этому событию и переходить на Azure Pipelines, BrowserStack App Automate, Package Flights, AppStore и TestFlight, Google Play и Google Play Console, Azure Native ISV, специальную версию CodePush и Microsoft Store Services SDK.

#разработка
Forwarded from Однажды в трендах
Ускоренный импорт библиотек

Если запустить следующий скрипт в Python версий 2.x.x и 3.11.4, то вы заметите солидный прирост в скорости подключения инструментов. В забавной мини-программе ниже выводится скорость импорта библиотек _io, marshal и проч., да еще и ASCII-графика с питончиком.
MySQL: SELECT

SELECT используется для извлечения данных из базы данных MySQL. Эта операция позволяет выбрать определенные столбцы и строки из таблицы или таблиц базы данных. Обрати внимание на пример. fetchall() извлекает все строки из последнего выполненного оператора.

#практика #mysql
Forwarded from Однажды в трендах
Что нового в Python 3.12. Переиспользование кавычек в f-строках

Теперь напрягать внимание, чтобы вложить в строку объект в кавычках, не нужно. Система поймет, где открывающая, а где — закрывающая кавычка, любое количество раз.
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
да что уж два дня, через 10 минут код превращается в нечитаемые рунны

@devopsina
Forwarded from Хабр
Эксперт под ником Albacore обнаружил в новых версиях Windows 11 старый диспетчер задач, который в Microsoft решили не удалять из системы. Его можно запустить только вручную, так как по нажатию Ctrl+Shift+Esc запускается новый диспетчер задач с обновлённым пользовательским интерфейсом.

«Знаете ли вы, что можно открыть диспетчер задач без нового XAML/WinUI фрейма, запустив taskmgr -d?», — пояснил Albacore. Старое приложение до сих пор находится в системе по пути «C:\Windows\SysWOW64\Taskmgr.exe».

Примечательно, что в Windows 11 нельзя одновременно использовать старый и новый диспетчер задач. Запустить старую версию, когда новая уже запущена, невозможно, и наоборот.
Forwarded from Однажды в трендах
__call__

Этот метод позволяет создать так называемые «вызываемые» объекты, то есть их можно вызывать как функции.
Channel photo updated
⬆️ на нашем канале сегодня только актуальные туториалы для крутых прогеров
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
откудаж мне было знать...

@devopsina
Channel photo updated