Pull to refresh
4
0

User

Send message

Cron — лучшие практики

Reading time9 min
Views60K

Планировщик задач cron(8) существует с 7 версии Unix, а его синтаксис crontab(5) знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользователи и системные пакеты доверяют управление важными задачами. Материалом о лучших практиках работы с cron делимся к старту курса по Fullstack-разработке на Python.

Читать далее
Total votes 41: ↑38 and ↓3+35
Comments45

Графическая логическая игра Льюиса Кэрролла

Reading time6 min
Views14K

В одном из выпусков библиотеки журнала «Квант» я обнаружил перевод книги Льюиса Кэрролла «Логическая игра» (The Game of Logic). В ней автор рассказывает об оригинальном графическом способе визуализации логических суждений с помощью размеченного особым образом квадратного поля и фишек двух цветов. Этот способ помогает легко оперировать логическими множествами и на основе некоторых предпосылок формулировать новые утверждения. Давайте попробуем разобраться, как это работает.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments5

Видеонаблюдение на даче

Reading time7 min
Views43K

Обратились ко мне за помощью. Задача стояла: подключить и настроить комплект видеонаблюдения на даче. Опыт в этой сфере был минимальный, баловался дома с USB камерами. И на работе была уже настроенная система с отдельным сервером. Представление было как устроено видеонаблюдение, благо есть опыт в IT сфере.

Для статьи я старался найти оригиналы фото устройств. У некоторых качество хромает. Остальные будут взяты с интернета.

Установку видеонаблюдения начали в 2019 году. Вносили изменения вплоть до конца 2021 года. Интересное началось, когда заказчик захотел проверять камеры из дома.

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments109

Go и MySQL: настраиваем пул соединений

Reading time14 min
Views25K

Каждый день мы пишем код в условиях высоких нагрузок, и нередко в таких случаях сталкиваемся с проблемами, связанными с базой данных. Мы в компании используем MySQL, поэтому я расскажу про конфигурирование соединений с этой базой данных. Пройдемся по основным моментам, на которые нужно обращать внимание при работе с MySQL средствами языка Go: 

немного затронем основы клиент-серверного протокола MySQL, его базовое устройство и принципы работы;

дальше перейдем к Go части и разберем реализацию пула соединений;

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

Надеюсь каждый для себя найдет что-то полезное.

Поехали
Total votes 44: ↑43 and ↓1+42
Comments13

Второе чувство: разработка ИИ-носа

Reading time10 min
Views3.7K
Шли долгие майские выходные 2020 года. Я, как и многие другие представители рода людского, сидел дома. Из-за пандемии у меня было свободное время, которое я тратил на улучшение моего рецепта хлеба. А несколькими днями ранее я заказал газоанализатор (Рис. A, под катом). Я полагал, что он идеально подойдёт для того, чтобы помочь мне наблюдать за хлебной закваской. У меня была надежда на то, что эта штука позволит мне идеально рассчитать время начала выпечки хлеба.


Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments1

Жанровая меломания нейросетей

Reading time9 min
Views6.2K

Пишете музыку, но внезапно настиг творческий кризис? Или вам хочется получить треки уровня royalty-free, потыкав несколько слайдеров в Colab ноутбуке? Вы не готовы получать PhD в нейронных сетях и разбираться с теорией музыки, а попробовать себя в роли нейросетевого музыканта очень уж хочется?

Команда Sber AI спешит к вам с радостной новостью: совершенно безвозмездно мы выкатили NLP-модель синтеза музыки, обученную на тысячах часов музыки из открытых источников. Вам не придется платить за аренду GPU сервера с картой V100 для синтеза через Jukebox - наша модель порадует вас бесплатными треками в риалтайме даже в простом Google Colab.

А ещё вы узнаете, как связаны трансформеры и шедевры классической музыки. Но обо всем по порядку.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments6

Большая Карамельная Ракета

Reading time9 min
Views43K

Всем привет! 

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

Читать далее
Total votes 93: ↑93 and ↓0+93
Comments141

Опасные «вкусняшки». Ядовитые лесные ягоды. Памятка для детей и взрослых

Reading time14 min
Views72K
Почитали читатели мои статьи про ядовитые растения и внезапно озаботились дикорастущими ягодами. Ведь ухватить растение желающих намного меньше, чем попробовать незнакомую ягоду яркой расцветки. Я решил отреагировать, и представить вашему вниманию шорт-лист ядовитых лесных ягод (исчерпывающий?). По всем вопросам, в т.ч. с фотографиями незнакомых растений — обращаться в тг-канал LAB-66

Красна ягодкА, да на вкус горькА
Total votes 61: ↑56 and ↓5+51
Comments142

Анатомия каналов в Go

Reading time34 min
Views159K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Anatomy of Channels in Go" автора Uday Hiwarale.


Что такое каналы?


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


Создание канала


Go для создания канала предоставляет ключевое слово chan. Канал может передавать данные только одного типа, данные других типов через это канал передавать невозможно.

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments7

Мифы об асинхронном PHP: он не по-настоящему асинхронный

Reading time12 min
Views13K

В последнее время было достаточно много обсуждений производительности в PHP. И даже несмотря на то, что у нас есть PHP8, JIT и куча других улучшений, многие по-прежнему продолжают жаловаться на то, что PHP "недостаточно производительный". Что PHP - это язык, подходящий только для модели запрос-ответ. Что PHP слишком медленный и его не нужно использовать для высоконагруженных систем. С одной стороны от части всё это правда. Если мы строим какую-то систему, для которой вопрос производительности критичен, то использовать классический блокирующий PHP явно не стОит. Большая часть функций и библиотек PHP созданы для работы в традиционном блокирующем окружении, что уже подразумевает собой не самую высокую производительность. Однако PHP может работать быстро, более того, он может работать очень быстро. Как? Обычно у нас может быть две причины, из-за чего будет проседать производительность: мы либо совершаем какие-то сложные вычисления, либо у нас есть блокирующй ввод-вывод. Первое к сожалению (или к счастью) мы не можем решить в PHP. Но блокирующий ввод-вывод для PHP совсем не проблема. В PHP-сообществе есть люди, которые пишут асинхронный код уже на протяжении несколько лет. Конечно одновременно с этим бОльшая часть сообщества по-прежнему считает асинхронный PHP - дикостью. Я часто слышал: "Ты наверно совсем отчаянный, если собираешься писать что-то асинхронное на PHP". По правде говоря, у нас у всех есть это предубеждение, что PHP не подходит для подобного рода задач. И в большинстве случаев это предубеждение основано на неверных представлениях о самой "асинхронности". Неверные предубеждения в свою очередь ведут к неправильным ожиданиям, что в свою очередь приводит к разочарованию и обвинениям в том, что PHP "не по-настоящему асинхронный".

Читать далее
Total votes 40: ↑39 and ↓1+38
Comments19

Гайд начинающего тимлида

Reading time14 min
Views51K

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

Всё это я проговаривал на вебинаре в Хекслете тут https://www.youtube.com/watch?v=y_HkXvFovAc

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

Общий стаж моей работы в ИТ - около 14 лет. Я начинал с системного администрирования, потом перешел в разработку, поработав как в аутсорсе, так и в продукте. Не один раз проходил путь от рядового разработчика до тимлида.

Читать далее
Total votes 51: ↑49 and ↓2+47
Comments16

Как мы работаем с логами (сбор, хранение, анализ при помощи Graylog)

Reading time12 min
Views100K

Всем привет! В этой статье мы хотим поделиться нашим опытом использования полезной платформы Graylog, которая ежедневно помогает собирать, надежно хранить и анализировать логи с десятков серверов, окутанных заботой нашей поддержки :)

Это первая часть статьи, в которой мы расскажем почему выбор пал на Graylog, как его установить и произвести базовую настройку.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments21

Знакомьтесь, pass

Reading time7 min
Views31K


Я много лет искал подходящую мне хранилку паролей и недавно наткнулся на Pass на HackerNews. Идея хранить пароли в git-репозитории может выглядеть странно, но в целом это неплохая идея, потому что:

  • Я держу гит-репозиторий локально у себя на компе
  • Все пароли защищены GPG шифрованием, поэтому даже при получении SSH-доступа к моему компьютеру утечка не повлияет на безопасность

Я использую -c чтобы копировать/вставлять пароли. Есть расширение для браузера, но копипейст лично мне удобнее. Проблемы синхронизации с телефоном и всеми linux-дейвайсами тоже не стоит (потому что это всего лишь git).

Делюсь с вами переводом приветственной странички Pass.



Управление паролями должно быть простым и следовать философии Unix. Используя pass, каждый Ваш пароль находится внутри зашифрованного файла gpg, имя которого совпадает с именем ресурса или веб сайта к которому данный пароль привязан. Эти зашифрованные файлы могут быть организованы в удобные иерархии папок, скопированы с носителя на носитель и, в общем, обработаны с помощью любых утилит управления файлами командной строки.

С pass управлять отдельными файлами паролей становится крайне просто. Все пароли хранятся в ~ / .password-store, а pass предоставляет несколько удобных команд для добавления, редактирования, генерации и получения паролей. Это очень короткий и простой Shell скрипт. Он способен временно помещать пароли в буфер обмена и отслеживать изменения паролей с помощью git.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments54

Бесплатные сервисы для разработчиков — огромный список

Reading time8 min
Views54K

Бесплатное хранилище артефактов PackageCloud

Удивительно, но в интернете сотни сервисов, которыми разработчик может пользоваться совершенно бесплатно. «Бесконечное» время (пока компания не обанкротится или не изменит условия), без рекламы, пробного периода и других подводных камней.

Недавно мы обсуждали эту тему в статье «Боль разработчика: “Никогда не давайте пользователям бесплатный тариф”». Речь шла о том, что на самом деле бесплатный план вовсе не бесплатен — приходится тратить массу времени и усилий на поддержку этих тарифов.

Но для некоторых бесплатный тариф — единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.
Читать дальше →
Total votes 83: ↑77 and ↓6+71
Comments15

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views64K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

Total votes 205: ↑205 and ↓0+205
Comments229

Вышел новый релиз свободного аудиоредактора Audacity 3.0

Reading time2 min
Views17K

Audacity — популярный аудиоредактор, который распространяется бесплатно для Windows, Mac и Linux. Впервые софт появился около 20 лет назад, и сейчас он обзавелся рядом новых функций, которые облегчают задачу записи и редактирования аудиозаписей, включая музыку и подкасты.

Разработчики исправили около 160 багов, а также добавили поддержку нового формата файлов. Для многих именно последний момент может оказаться важным. О деталях нового релиза — ниже.
Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments26

Частые ошибки в настройках Nginx, из-за которых веб-сервер становится уязвимым

Reading time8 min
Views63K

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

Nginx — один из наиболее часто используемых веб-серверов в Интернете, поскольку он модульный, отзывчивый под нагрузкой и может масштабироваться на минимальном железе. Компания Detectify регулярно сканирует Nginx на предмет неправильных настроек и уязвимостей, из-за которых могут пострадать пользователи. Найденные уязвимости потом внедряются в качестве теста безопасности в сканер веб-приложений.

Мы проанализировали почти 50 000 уникальных файлов конфигурации Nginx, загруженных с GitHub с помощью Google BigQuery. С помощью собранных данных нам удалось выяснить,  какие ошибки в конфигурациях встречаются чаще всего.

Читать далее
Total votes 68: ↑67 and ↓1+66
Comments23

Регулярные выражения (regexp) — основы

Reading time21 min
Views881K

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее
Total votes 59: ↑51 and ↓8+43
Comments76

Итерируемые объекты и итераторы: углублённое руководство по JavaScript

Reading time15 min
Views26K

Эта статья представляет собой углублённое введение в итерируемые объекты (iterables) и итераторы (iterators) в JavaScript. Моя главная мотивация к её написанию заключалась в подготовке к изучению генераторов. По сути, я планировал позднее поэкспериментировать с комбинированием генераторов и хуками React. Если вам это интересно, то следите за моим Twitter или YouTube!

Вообще-то я планировал начать со статьи про генераторы, но вскоре стало очевидно, что о них сложно рассказывать без хорошего понимания итерируемых объектов и итераторов. На них мы сейчас и сосредоточимся. Буду исходить из того, что вы ничего не знаете по этой теме, но при этом мы значительно углубимся в неё. Так что если вы что-то знаете об итерируемых объектах и итераторах, но не чувствуете себя достаточно уверенно при их использовании, эта статья вам поможет.
Читать дальше →
Total votes 42: ↑31 and ↓11+20
Comments5

Делаем эффективный обеззараживатель воздуха

Reading time4 min
Views9.2K

Эту статью меня попросил репостнуть редактор Голованов, но я решил переписать ее заново, поскольку исходник хоть и строился на достаточном для меня, врача-гигиениста, обосновании, но оказалось, что читателей оно не устроило.

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

Читать далее
Total votes 31: ↑28 and ↓3+25
Comments49

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity