Daily Coding 🔥
8.74K subscribers
1.88K photos
6 videos
1 file
1.72K links
Канал, который научит вас программировать лучше и эффективнее.

Интересные задачи, обучающие статьи, советы по стилю кода и многое другое.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/dailycoding
Download Telegram
📑 Поиск секретных данных в исходном коде

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

Daily Coding #статьи
Daily Coding #test #C_plus_plus

Выберите правильный вариант 👇🏼
🛠 Carnac — эта замечательная небольшая утилита с открытым исходным кодом показывает горячие клавиши, которые вы нажимаете, при их нажатии, показывая небольшие оверлеи в углу.

Daily Coding #инструменты
💡 Команды для Python по работе с файлами и файловой системой

▍Создание директории

Ну а теперь самое время создать директорию с именем test_dir внутри рабочей директории. Для этого можно использовать функцию os.mkdir():

os.mkdir('test_dir')

Рекомендуется всегда проверять наличие каталога с определенным названием перед созданием нового:

if not os.path.exists('test_dir'):
os.mkdir('test_dir')

Еще один совет по созданию каталогов. Иногда нам нужно создать подкаталоги с уровнем вложенности 2 или более. Если мы все еще используем os.mkdir (), нам нужно будет сделать это несколько раз. В этом случае мы можем использовать os.makedirs (). Эта функция создаст все промежуточные каталоги так же, как флаг mkdir -p в системе Linux:

os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))

Daily Coding #советы #coding #python
♥️ Наши телеграм боты

UI8 Bot — бот предоставляет безлимитный доступ к сайту ui8.net Стоимость доступа на сайте стартует от 188$ с ограничениями на загрузки. Стоимость в нашем боте начинается от 4$ в месяц без каких-либо ограничений.

Craftwork Bot — предоставляет полный доступ к сайту craftwork.design намного дешевле.

Боты работают очень просто: присылаете ссылку в бота, а бот в ответ присылает файл для скачивания. Попробуйте сами!
📑 Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#

Будучи разработчиками программного обеспечения, мы всегда хотим, чтобы написанное нами ПО работало быстро. Использование оптимального алгоритма, распараллеливание, применение различных техник оптимизации – мы будем прибегать ко всем известным нам средствам, дабы улучшить производительность софта. К одной из таких техник оптимизации можно отнести и так называемое интернирование строк. Оно позволяет уменьшить объём потребляемой процессом памяти, а также значительно сокращает время, затрачиваемое на сравнение строк. Однако, как и везде в жизни, необходимо соблюдать меру – не стоит использовать интернирование на каждом шагу. Далее в этой статье будет показано, как можно обжечься и создать своему приложению неочевидный bottleneck в виде метода String.Intern.

Daily Coding #статьи #C_Sharp #dotnet
Daily Coding #test #C_plus_plus

Выберите правильный вариант 👇🏼
📖 Using Asyncio in Python
🖋 Caleb Hattingh, 2020

Разработчик Калеб Хаттинг, поможет вам получить базовые знания о строительных блоках asyncio - достаточно, чтобы начать писать простые программы, основанные на событиях. Вы узнаете, почему asyncio предлагает более безопасную альтернативу вытесняющей многозадачности и многопоточности) и как этот API обеспечивает простой способ поддержки тысяч одновременных соединений сокетов. Получите критическое сравнение asyncio и многопоточности для одновременного сетевого программирования.

Вы узнайте о различии между функциями asyncio для конечных пользователей и функциями для разработчиков фреймворка. Понять новый синтаксис языка asyncio async/await, включая коридоры и задачи, а также будущие API. Получить подробные примеры (с кодом) некоторых популярных асинцево-совместимых сторонних библиотек.

💾 Скачать книгу

Daily Coding #book #python #asyncio
💡 Команды для Python по работе с файлами и файловой системой

▍Показываем содержимое директории

Еще одна полезная команда — os.listdir(). Она показывает все содержимое каталога.

Команда отличается от os.walk (), где последний рекурсивно показывает все, что находится «под» каталогом. os.listdir () намного проще в использовании, потому что просто возвращает список содержимого:

os.listdir('sample_data')

В некоторых случаях нужно что-то более продвинутое — например, поиск всех CSV-файлов в каталоге «sample_data». В этом случае самый простой способ — использовать встроенную библиотеку glob:

from glob import globlist(glob(os.path.join('sample_data', '*.csv')))

Daily Coding #советы #coding #python
🔥 Лучшее на канале за неделю

1
. Поиск секретных данных в исходном коде.

2. Carnac — эта замечательная небольшая утилита с открытым исходным кодом показывает горячие клавиши, которые вы нажимаете.

3. Команды для Python по работе с файлами и файловой системой.
🛠 DOSBox — это эмулятор, воссоздающий среду, совместимую с MS-DOS (в комплекте со звуком, вводом, графикой и даже базовой сетью). Эта среда достаточно полная, чтобы запускать многие классические игры MS-DOS без каких-либо модификаций.

Daily Coding #инструменты
📑 Программирование — это скучная магия

Есть один карточный трюк, который запомнился мне навсегда. Вот его краткое описание: доброволец выбирает карту и запечатывает её в конверт. Затем фокусник предлагает добровольцу выбрать чай. У него есть десятки коробок чая, и все они упакованы в пластик. Доброволец выбирает одну из коробок, срывает обёртку и выбирает один из упакованных пакетиков с чаем. Потом он вскрывает упаковку, и… внутри оказывается его карта.

Если вы не хотите знать, в чём хитрость этого трюка, то дальше не читайте.

Daily Coding #статьи
🛠 Kera — создание встроенных в приложение туториалов для пользователей. Быстро внедрите мощную тактику адаптации, используемую в таких компаниях, как Google, Dropbox и LinkedIn.

Daily Coding #инструменты
💡 Команды для Python по работе с файлами и файловой системой

▍Перемещение файлов
| Часть 1

Время попробовать переместить файлы из одной папки в другую. Рекомендованный способ — еще одна встроенная библиотека shutil.

Сейчас попробуем переместить все CSV-файлы из директории «sample_data» в директорию «test_dir». Ниже — пример кода для выполнения этой операции:

import shutilfor file in list(glob(os.path.join('sample_data', '*.csv'))):
shutil.move(file, 'test_dir')

Кстати, есть два способа выполнить задуманное. Например, мы можем использовать библиотеку OS, если не хочется импортировать дополнительные библиотеки. Как os.rename, так и os.replace подходят для решения задачи.

Но обе они недостаточно «умные», чтобы позволить перемесить файлы в каталог.

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

Daily Coding #советы #coding #python
📑 Печальная правда о пропуске копий в C++

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

Daily Coding #статьи #C_plus_plus
📖 Java. Оптимизация программ
🖋 Крис Ньюланд, Бенджамин Эванс, 2019

С помощью этой практической книги разработчики средней и высокой квалификации, работающие со сложными стеками технологий, научатся настраивать высокую производительность Java-приложений, используя количественный, поддающийся проверке подход.

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

💾 Скачать книгу

Daily Coding #book #java
💡 Команды для Python по работе с файлами и файловой системой

▍Перемещение файлов
| Часть 2

Из прошлой части:
Чтобы все это работало, нужно явно указать имя файла в месте назначения.

Ниже — код, который это позволяет сделать:

for file in list(glob(os.path.join('test_dir', '*.csv'))):
os.rename(
file,
os.path.join(
'sample_data',
os.path.basename(file)
))

Здесь функция os.path.basename() предназначена для извлечения имени файла из пути с любым количеством компонентов.

Другая функция, os.replace(), делает то же самое. Но разница в том, что os.replace() не зависит от платформы, тогда как os.rename() будет работать только в системе Unix / Linux.

Еще один минус — в том, что обе функции не поддерживают перемещение файлов из разных файловых систем, в отличие от shutil.

Поэтому лучше использовать shutil.move() для перемещения файлов.

Daily Coding #советы #coding #python
👍1
🔥 Лучшее на канале за неделю

1
. Программирование — это скучная магия.

2. Kera — создание встроенных в приложение туториалов для пользователей.

3. Команды для Python по работе с файлами и файловой системой.
🛠 AppNeta предлагает масштабируемое решение, которое отслеживает производительность сети с точки зрения конечного пользователя. Предоставляя в реальном времени полезную информацию из удаленных офисов, по внутренним сетям и через Интернет, вы можете быстро разобраться в проблемах производительности, независимо от того, где они возникают.

Daily Coding #инструменты