Как бороться с прокрастинацией
Необычная англоязычная статья с talent500.co о работе с откладыванием задач у программистов. Помимо стандартных рекомендаций вроде планирования наперёд там вы найдёте ещё пару необычных техник от психоаналитиков.
#карьера
  
  
  
  
  
Необычная англоязычная статья с talent500.co о работе с откладыванием задач у программистов. Помимо стандартных рекомендаций вроде планирования наперёд там вы найдёте ещё пару необычных техник от психоаналитиков.
#карьера
👍10
  SQL: вставка новых записей в БД или обновление существующих
Почти сразу при появлении SQL в работе появляется потребность обновлять базу. Однако вручную выслеживать, кто в большом наборе есть, а кого добавлять, — трата времени.
Запрос ниже добавляет новых сотрудников в перечень персонала. Если запись с таким именем уже существует, то эта инъекция обновит ее:
#SQL
  
  
  
  
  
Почти сразу при появлении SQL в работе появляется потребность обновлять базу. Однако вручную выслеживать, кто в большом наборе есть, а кого добавлять, — трата времени.
Запрос ниже добавляет новых сотрудников в перечень персонала. Если запись с таким именем уже существует, то эта инъекция обновит ее:
db = # WITH new_employees AS (SELECT *FROM (        VALUES ('George', 'Sales', 'Manager', 1000),            ('Jane', 'R&D', 'Developer', 1200)    ) AS t(name, department, role, salary))INSERT INTO employees (name, department, role, salary)SELECT name,    department,    role,    salaryFROM new_employees ON CONFLICT (name) DOUPDATESET department = EXCLUDED.department,    role = EXCLUDED.role,    salary = EXCLUDED.salaryRETURNING *;#SQL
👍9❤🔥1👎1🔥1
  Материалов по каким темам вам хотелось бы больше видеть в канале?
  Anonymous Poll
    6%
    Ещё только начинаю, не выбрал конкретное направление
      
    7%
    Тестирование
      
    15%
    Аналитика, Data Science
      
    16%
    ИИ, нейронные сети, машинное обучение
      
    2%
    Управление командами / проектами
      
    36%
    Бэкенд
      
    7%
    Автоматизация
      
    6%
    Разработка ботов
      
    3%
    DIY
      
    2%
    Другое / не IT (пожалуйста, напишите в комментариях ваш вариант)
      
    🔥9💩2👍1
  Что нового в Python 3.11.4: оператор слияния словарей
Pipe-оператор | теперь может лаконично объединить два и более словарей:
#лучшиепрактики
  
  
  
  
  
Pipe-оператор | теперь может лаконично объединить два и более словарей:
dict1 = {"a": 1, "b": 2}dict2 = {"c": 3, "d": 4}merged_dict = dict1 | dict2print (merged _dict) # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4}#лучшиепрактики
👍38🔥10👎1
  PostgreSQL с нуля на Python
Двухчасовой плейлист, обучающий основам работы с популярным хранилищем данных. Помимо базовых тем вроде создания таблицы и JOIN вы встретите там и такие разделы, как UPSERT и идентификаторы UUID. Серия уроков подходит новичкам в Python и может стать комфортным способом познакомиться с SQL-подобными системами,
Ссылка на плейлист
#postgresql
  
  
  
  
  
Двухчасовой плейлист, обучающий основам работы с популярным хранилищем данных. Помимо базовых тем вроде создания таблицы и JOIN вы встретите там и такие разделы, как UPSERT и идентификаторы UUID. Серия уроков подходит новичкам в Python и может стать комфортным способом познакомиться с SQL-подобными системами,
Ссылка на плейлист
#postgresql
🔥14👍5👎1😁1
  Что нового в Python 3.11.4: точка прерывания отладки
Теперь вы можете вызвать функцию breakpoint(), чтобы
#лучшиепрактики
  
  
  
  
  
Теперь вы можете вызвать функцию breakpoint(), чтобы
>>> def calculate_sum(a, b):>>>  result = a + b>>>  breakpoint()>>> >>> x = 5>>> у = 10>>> z = calculate_sum(x, у)>>> print(z)... -> breakpoint() # Debugger breake tunn result... (Pdb)#лучшиепрактики
🤔15👍3👎2❤1
  Аналоги Vim
Хотя этот редактор кода и является предустановленным для систем вроде Linux, однако зачастую его пользователи хотят познакомиться с более удобными альтернативами. Вашему вниманию перечень редакторов кода, подходящих для операционок без графического интерфейса (aka terminal based editors):
— nano;
— neovim;
— vis;
— slap.
А какими аналогами Vim вы пользовались? Поделитесь в комментариях.
#nano #neovim
  
  
  
  
  
Хотя этот редактор кода и является предустановленным для систем вроде Linux, однако зачастую его пользователи хотят познакомиться с более удобными альтернативами. Вашему вниманию перечень редакторов кода, подходящих для операционок без графического интерфейса (aka terminal based editors):
— nano;
— neovim;
— vis;
— slap.
А какими аналогами Vim вы пользовались? Поделитесь в комментариях.
#nano #neovim
💩6👍5❤1
  Один из 20.000 пользователей StackOverflow ищет, как выйти из Vim
В этом году Stack Overflow достигли интересного показателя: более миллиона пользователей форума ищут решение вышеупомянутой задаче.
А на каком месяце / году программирования вы запомнили, как выйти из этого редактора? Поделитесь в комментариях.
#факты
  
  
  
  
  
В этом году Stack Overflow достигли интересного показателя: более миллиона пользователей форума ищут решение вышеупомянутой задаче.
А на каком месяце / году программирования вы запомнили, как выйти из этого редактора? Поделитесь в комментариях.
#факты
🔥18😁7💩2👍1
  asyncio для сетевых инженеров
Исчерпывающий гайд, с помощью которого вы узнаете, в чём разница между параллельными процессами, потоками и асинхронным программированием.
Руководство под авторством Натальи Самойленко разделено на несколько частей:
— основы работы с сопрограммами;
— асинхронные модули;
— создание классов в asyncio;
— использование модуля asyncio;
— работа с циклом событий.
Документация также дополняется блоком заданий и примеров кода.
#asyncio
  
  
  
  
  
Исчерпывающий гайд, с помощью которого вы узнаете, в чём разница между параллельными процессами, потоками и асинхронным программированием.
Руководство под авторством Натальи Самойленко разделено на несколько частей:
— основы работы с сопрограммами;
— асинхронные модули;
— создание классов в asyncio;
— использование модуля asyncio;
— работа с циклом событий.
Документация также дополняется блоком заданий и примеров кода.
#asyncio
❤7🔥4👍3
  Библиотека для работы со съемными устройствами
PyUSB — библиотека, предназначенная для удобного взаимодействия с USB. Позволяет находить устройства, читать и записывать данные.
Документация
#лучшиепрактики
  
  
  
  
  
PyUSB — библиотека, предназначенная для удобного взаимодействия с USB. Позволяет находить устройства, читать и записывать данные.
pip install pyusbimport usb.coreimport usb.utildev = usb.core.find(find_all=True) # найдет подключенные USB-устройства  device.write(drive_name, data.txt) # Запишет на носительДокументация
#лучшиепрактики
❤9
  Что нового в Python 3.11.4: библиотека zoneinfo
Теперь timestamp без временной зоны со своим плюсом в виде читаемости можно использовать без опаски: с помощью zoneinfo к нему добавляется атрибут — данные о часовом поясе:
Документация
  
  
  
  
  
Теперь timestamp без временной зоны со своим плюсом в виде читаемости можно использовать без опаски: с помощью zoneinfo к нему добавляется атрибут — данные о часовом поясе:
from zoneinfo import ZoneInfofrom datetime import datetime, timedeltadt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))print(dt)2020-10-31 12:00:00-07:00dt.tzname()'PDT'Документация
👎2👏1
  Обновлённый роадмап Data Science 2023
Если вы только подступились к Науке о данных, роадмап – хорошее средство сэкономить время. Так что представляем карту навыков глазами практикующего специалиста. На диаграмме Исикавы вы найдёте самые распространённые понятия и инструменты.
А подробнее — в статье по ссылке.
#карьера
  
  
  
  
  
Если вы только подступились к Науке о данных, роадмап – хорошее средство сэкономить время. Так что представляем карту навыков глазами практикующего специалиста. На диаграмме Исикавы вы найдёте самые распространённые понятия и инструменты.
А подробнее — в статье по ссылке.
#карьера
❤2🔥2👍1💩1
  Библиотека для генерации одноразовых паролей
Двухфакторная аутентификация – это вполне подъёмно в первый же год кодинга на Python. С этим вам поможет библиотека PyOTP:
Ссылка на репозиторий
#otp #2fa
  
  
  
  
  
Двухфакторная аутентификация – это вполне подъёмно в первый же год кодинга на Python. С этим вам поможет библиотека PyOTP:
import pyotpimport timetotp = pyotp.TOTP('base32secret3232')totp.now() # => '492039'# OTP verified for current timetotp.verify('492039') # => Truetime.sleep(30)totp.verify('492039') # => FalseСсылка на репозиторий
#otp #2fa
👍10🔥4💩1
  TypeVarTuple для кортежей с разными типами данных
Допустим, мы создаём функцию convert_first_int(), которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу:
TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Нам это нужно, потому что функция имеет дело только с первым элементом кортежа. Поэтому нам необходим способ выразить, что мы разрешаем любые оставшиеся типы.
Спасибо подписчику @Trizalio за годную тему для поста.
#лучшиепрактики
  
  
  
  
  
Допустим, мы создаём функцию convert_first_int(), которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу:
from typing import TypeVarTupleTs = TypeVarTuple("Ts")def convert_first_int(values: tuple[int|str|float, *Ts]) -> tuple[int, *Ts]: return (int(values[0]), *values[1:])print(repr(convert_first_int(("1", "2", "3"))))TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Нам это нужно, потому что функция имеет дело только с первым элементом кортежа. Поэтому нам необходим способ выразить, что мы разрешаем любые оставшиеся типы.
(1, '2', '3')Спасибо подписчику @Trizalio за годную тему для поста.
#лучшиепрактики
👍3🔥1
  This media is not supported in your browser
    VIEW IN TELEGRAM
  Двойственные ощущения вызывает этот тест крема Vim...
😁17🤔11👍4👎3❤2
  LiteralString: Защита от SQL-инъекций
Внутрь текста (например, в поле формы) можно внедрить SQL-запрос и видоизменить базу данных. Начиная с Python 3.11 мы можем использовать LiteralString во избегание таких уязвимостей:
Спасибо подписчику @Trizalio за годную тему для поста.
#лучшиепрактики
  
  
  
  
  
Внутрь текста (например, в поле формы) можно внедрить SQL-запрос и видоизменить базу данных. Начиная с Python 3.11 мы можем использовать LiteralString во избегание таких уязвимостей:
def caller( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString,) -> None: run_query("SELECT * FROM students") # ok run_query(query_string) # ok run_query("SELECT * FROM " + table_name) # ok run_query(arbitrary_string) # error run_query(f"SELECT * FROM students WHERE name = {arbitrary_string}" # error )Спасибо подписчику @Trizalio за годную тему для поста.
#лучшиепрактики
👍8
  Что такое байт-код и как он поможет при дебаггинге
Мы нашли для вас качественную получасовую лекцию с PyCon Cleveland, где автор рассказывает, как читать байт-код и что полезного в нём можно найти в процессе отладки программы.
#дебаггинг
  
  
  
  
  
Мы нашли для вас качественную получасовую лекцию с PyCon Cleveland, где автор рассказывает, как читать байт-код и что полезного в нём можно найти в процессе отладки программы.
#дебаггинг
👎2😐1
  Каким будет результат выполнения кода?
  Anonymous Poll
    7%
    [10, 5,, 6]
      
    16%
    [10, 5, 6]
      
    59%
    [10, 6]
      
    18%
    Error
      
    