Как стать автором
Обновить
0
0
Владислав @RuVl

Бэкэнд разработчик, боты тг, автоматизация

Отправить сообщение

Notion умер, да здравствует Obsidian

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров42K

Пару дней назад у меня, как и у многих пользователей, появилось предупреждение об уходе Notion из России. Я начал срочно искать альтернативу сервису, которым я пользовался более 5 лет.

В Notion я хранил личные задачи и заметки. Notion был базой знаний моей жизни. Он повидал бюджет на свадьбу и бюджет на переезд. Он даже повидал план ремонта! Это приложение было всегда открыто на моём компьютере.

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

Читать далее
Всего голосов 36: ↑31 и ↓5+31
Комментарии172

REDIS: такой простой и такой сложный

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров23K

Меня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint HighLoad++, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.

Читать далее
Всего голосов 50: ↑49 и ↓1+60
Комментарии28

Буфер обмена веб-приложений и как он хранит различные данные

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров3.6K

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

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

Давайте начнем с исследования различных API и их истории. Эти API имеют весьма интересные ограничения по типам данных, и мы увидим, как некоторые компании обошли эти ограничения. Мы также рассмотрим некоторые предложения, которые направлены на устранение этих ограничений (наиболее примечательное из них — Web Custom Formats).

Если вам хотя бы раз было интересно, как работает веб-буфер обмена, то эта статья для вас.

Читать далее
Всего голосов 18: ↑17 и ↓1+17
Комментарии5

Как сделать анализатор кода за два дня

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров8.5K

Статический анализ — это очень мощный инструмент, позволяющий следить за качеством кода. Предлагаем вместе попробовать написать простой Lua анализатор на Java, чтобы понять, как устроены статические анализаторы кода внутри.

Читать далее
Всего голосов 24: ↑24 и ↓0+30
Комментарии16

4 тысячи заметок?! Как я веду личную базу знаний в Obsidian

Время на прочтение6 мин
Количество просмотров57K

В моей базе знаний 4 000 заметок.

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

Читать далее
Всего голосов 52: ↑45 и ↓7+50
Комментарии108

Как мы делаем проекты

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.1K

Все мы знаем что такое клиент-серверное приложение, на тему их создания написано не мало статей. В этой статье хотелось бы поделиться с вами наработками нашей компании, которыми мы пользуемся в своих Django проектах.

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии3

Celery: проясняем неочевидные моменты

Время на прочтение8 мин
Количество просмотров80K

Да, действительно, в этом посте не будет гайда, как поднять Celery в Django. Это статья для тех, кто уже пощупал Celery и хочет погрузиться в детали.

Мотивацией перевести эту статью были следующие вопросы, на которые я не знал ответа: при запуске создается процесс или поток? В какую очередь попадают отложенные задачи с ETA? А какие бывают очереди (спойлер: она не одна)? А в какой момент задача удаляется из очереди? Если я создам задачу с ETA=завтра_в_12:00, она ровно в этот момент и выполнится (спойлер: нет)?

Ответы на все эти вопросы в статье, велком!

Запустить таску
Всего голосов 8: ↑6 и ↓2+5
Комментарии13

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров45K

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

Читать далее
Всего голосов 95: ↑84 и ↓11+93
Комментарии57

Автоматизированная торговля акциями с использованием глубокого обучения с подкреплением

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров13K

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

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

Читать далее
Всего голосов 18: ↑15 и ↓3+17
Комментарии13

Как я устроился в Амазон и перестал переживать за свой английский

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров94K

Готовитесь к собеседованию за рубежом и переживаете за свой английский? Хотели бы работать в международной компании, но сомневаетесь, хватит ли языка? Не уверены, поймут ли ваш акцент? Тогда эта статья может помочь.

Меня зовут Андрей Столбовский, последние 5 лет я работал в Яндексе, а в прошлом году перешёл в Амазон и теперь работаю Software Development Manager в AWS Redshift – это мой первый полноценный опыт работы в международной компании. 

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

Итак, поехали. 

Поехали!
Всего голосов 235: ↑232 и ↓3+275
Комментарии160

Django, PostgreSQL, Gunicorn/uWSGI, Nginx

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров16K

Подробное описание шагов при деплое web-проекта на Django с PostgreSQL, Nginx, Gunicorn.

Задачи статьи - агрегировать информацию из мануалов по деплою, избавить читателя от повторений ошибок и описать теоретически, для чего делаются те или иные шаги, чтобы избежать бездумного копирования и вопросов "почему у меня не работает".

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии4

Переводы полей моделей Django + Vue

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.6K

Всем привет! Это вторая статья из цикла статей о разработке приложений в нашей компании. В первой статье я рассказал Вам про общую архитектуру некоторых наших проектов. В данной статье хочется описать наши варианты решения часто встречающихся задач в рамках Django + Vue приложения.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

Почему первый 3D-принтер стоит собирать самому

Время на прочтение9 мин
Количество просмотров30K


  1. Это дешевле, чем приобрести уже собранный на месте
  2. Это быстрее, чем ждать из Китая Anet A8 за 109$ (далее — обычный стиральный порошок3D-принтер)
  3. Это более качественно (при некривых руках)

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


А учитывая, что впереди были новогодние праздники и долгие карантинныезимние вечера,
я за два дня в трех местных магазинах приобрел все необходимые комплектующие, которые обошлись в те-же 109 долларов.


И только благодаря "Марсианскому правилу" итоговая сумма выросла всего на три вечнозеленых.
Но вопреки широко известному по фильму скотчу я использовал синюю (а как же без нее) изоленту и пластиковые стяжки.


В общем, если Вы только думаете собирать 3D-принтер — добро пожаловать под кат,
где будут мои соображения по поводу конструкции и сборки некоторых узлов.
Ибо подробных инструкций по сборке в интернете и так полно.

Читать дальше →
Всего голосов 17: ↑16 и ↓1+19
Комментарии68

10 удивительно зрелищных простейших клеточных автоматов

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров34K

Самое простое представление двумерного клеточного автомата основано на двух характеристиках: клетки имеют всего 2 состояния; правила изменения состояния зависят только от количества живых соседей из окрестности Мура первого порядка (8 окружающих).

Такая категория КА называется «Life-like», по названию самого известного автомата с такими характеристиками – «Conway's Game of Life». Игра «Жизнь» Конвея работает на правиле B3/S23, т.е. для рождения клетки требуется ровно 3 живых соседа, для выживания – 2 или 3. Во всех других случаях клетка умирает (или же остаётся пустой).

Всего в данной категории у нас существует 218 вариантов правил. Очень немногая часть из них получила в сообществе собственные названия, сверх обычного именования нотацией.

Сегодня взглянем на самых интересных представителей.

?
Всего голосов 158: ↑158 и ↓0+158
Комментарии24

Пилим монолит и рисуем архитектуру запрещённой сети: лучшие выпуски IT-шоу «Заходят два архитектора в бар»

Время на прочтение2 мин
Количество просмотров9.3K

Слёрм — это учебный центр для IT-специалистов и инженеров. Кроме курсов, мы делаем несколько спецпроектов, и шоу «Заходят два архитектора в бар…» — один из них. Шоу выходит в прямом эфире раз в неделю: приглашённый эксперт выступает с 20-минутным докладом на архитектурную тему, а следующие гости становятся его оппонентами и дополняют озвученные идеи или горячо спорят с ними.  

Зрители тоже участвуют — задают вопросы в чате, обсуждают полезные идеи и знакомятся. 

Предлагаем посмотреть 5 лучших выпусков шоу «Заходят два архитектора в бар…». Там обсуждаем дизайн Web API, Rabbit и Kafka, блокировки в PostgreSQL, а ещё рисуем архитектуру запрещённой соцсети с картинками.

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии1

Zettelkasten: как один немецкий учёный стал невероятно продуктивным

Время на прочтение18 мин
Количество просмотров413K
Изображение предоставлено автором. Основано на фотографии Патрика Томаса с Ансплэша

Это перевод статьи Дэвида Клира о методе ведения заметок Zettelkasten, благодаря которому немецкий социолог Никлас Луман написал более 70 книг и 400 научных статей. Стоит читать, если вы хотите создать собственную базу знаний, систематизировать идеи и перестать забывать важные мысли.

Статья бережно перенесена из блога бегущего редактора. Кстати, следить за анонсами новых статей можно в моём телеграм-канале. Подписывайтесь, чтобы ничего не пропустить!
Читать дальше →
Всего голосов 40: ↑36 и ↓4+44
Комментарии82

Часть 2. Управление знаниями в Obsidian. Базовый рабочий процесс. Журнал. Источники и их библиотеки. Пример

Уровень сложностиСложный
Время на прочтение44 мин
Количество просмотров198K

В этой статье будет показано как можно начать организовывать свою базу знаний в Obsidian, отталкиваясь от источников. В статье будет разобрано то, какие стоит использовать папки и теги; как создать свою первую точку входа в систему. Также будет уделено внимание способу ведения журнала (дневника). Статья будет предполагать, что вы не против автоматизации процессов в своей базе знаний, поэтому все источники будут шаблонизированы и впоследствии собраны в свои отдельные библиотеки с помощью Dataview. Завершится статья подробным примером (алгоритмом) рабочего процесса.

Погнали
Всего голосов 23: ↑20 и ↓3+19
Комментарии65

Часть 1. Управление знаниями в Obsidian. Обработка информации. Рабочий процесс. Источники информации. Работа с заметками

Уровень сложностиСложный
Время на прочтение40 мин
Количество просмотров233K

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

Начнём долгий путь
Всего голосов 34: ↑31 и ↓3+37
Комментарии77

Делаем web сервер из старого Android смартфона, без root

Время на прочтение4 мин
Количество просмотров32K

Главная идея была в том, чтобы проверить возможно ли из старого Android устройства сделать "полноценный" сервер с nginx, php-fpm, MariaDB и запустить на этом Wordpress. Оказывается можно и при этом с хорошим результатом.

Устройство: Xiaomi Mi 4c 2015 года, разблокирован разгрузчик, TWRP, Android 10 (Havoc OS 3.0), Gapps не устанавливались для экономии ресурсов, root отсутствует.

Читать далее
Всего голосов 23: ↑21 и ↓2+22
Комментарии19

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Время на прочтение25 мин
Количество просмотров1.5M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Всего голосов 99: ↑98 и ↓1+97
Комментарии66

Информация

В рейтинге
Не участвует
Откуда
Петродворец, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Middle
Python
C#
Git
PostgreSQL
Nginx
Django
Bash