Как ускорить приложение на FastAPI
Важно понимать потенциальные узкие места вашего приложения, и что можно подкрутить в том или ином случае.
Отличная практическая статья, показывающая, как можно ускорить своё приложение. Примеры из статьи выложены на github, поэтому можно потрогать ручками.
Ребята не открывают ничего супер нового, просто берут приложение на fastapi и показывают набор классических приёмов для ускорения работы.
Рассматриваются:
– многопоточность
– асинхронность
– redis для кеширования
А в качестве бонуса – статья о KeyDB, интересной альтернативе привычному всем редису, на которую стоит посмотреть.
#python
Важно понимать потенциальные узкие места вашего приложения, и что можно подкрутить в том или ином случае.
Отличная практическая статья, показывающая, как можно ускорить своё приложение. Примеры из статьи выложены на github, поэтому можно потрогать ручками.
Ребята не открывают ничего супер нового, просто берут приложение на fastapi и показывают набор классических приёмов для ускорения работы.
Рассматриваются:
– многопоточность
– асинхронность
– redis для кеширования
А в качестве бонуса – статья о KeyDB, интересной альтернативе привычному всем редису, на которую стоит посмотреть.
#python
👍10🌭5❤2🔥2
Пятничное развлекательное
Уже давно существует тренд на механические клавиатуры. Приятный звук, тактильные ощущения. Хочется стукать по ней всеми пальчиками. Но, даже если механической клавиатуры нет, в интернете всегда есть кто-то неправый и хочется побыстрее ему объяснить.
monkeytype – замечательный сервис, с отличным дизайном где можно позалипать и потренировать слепую печать.
#fun
Уже давно существует тренд на механические клавиатуры. Приятный звук, тактильные ощущения. Хочется стукать по ней всеми пальчиками. Но, даже если механической клавиатуры нет, в интернете всегда есть кто-то неправый и хочется побыстрее ему объяснить.
monkeytype – замечательный сервис, с отличным дизайном где можно позалипать и потренировать слепую печать.
#fun
Monkeytype
Monkeytype | A minimalistic, customizable typing test
The most customizable typing test website with a minimal design and a ton of features. Test yourself in various modes, track your progress and improve your speed.
👍9❤4🌭4🔥1
Реверс инжиниринг для самых маленьких на практике
Не ограничиваем область своих интересов только разработкой, поэтому совместно с нашим хорошим другом и подписчиком подготовили статью на тему реверса.
В статье мы берём все наши скромные знания, дизассемблер, несложную задачку и идём в бой.
В процессе разбираем, какие инструменты использовать, с какой стороны подходить к решению подобных задач, где-то углубляемся в теорию и даём полезные ссылки для более детального изучения.
Если посматривали на реверс, но не знали с чего начать – велкам.
#devfm
Не ограничиваем область своих интересов только разработкой, поэтому совместно с нашим хорошим другом и подписчиком подготовили статью на тему реверса.
В статье мы берём все наши скромные знания, дизассемблер, несложную задачку и идём в бой.
В процессе разбираем, какие инструменты использовать, с какой стороны подходить к решению подобных задач, где-то углубляемся в теорию и даём полезные ссылки для более детального изучения.
Если посматривали на реверс, но не знали с чего начать – велкам.
#devfm
Хабр
Реверс инжиниринг для самых маленьких на практике
Скомпилированное приложение является «чёрным ящиком». Чтобы туда заглянуть, восстановить алгоритм работы применяется реверс‑инжиниринг. Это непростой навык с высоким порогом входа. В статье...
🔥9👍5❤2⚡1🌭1
Комментарии в маркдауне
В ворде есть замечательная функция ревью, с помощью которой можно оставить комментарии к тексту. Обычно это нужно при совместной работе над текстом.
На нашей практике часто приходится работать с маркдаун-файлами. И, порой, тоже хочется оставить комментарий, чтобы это не влияло на внешний вид документа.
Оказалось, есть возможность оставлять комментарии, которые видны только в режиме редактирования и не видны в режиме просмотра.
<!-- Этого текста в режиме просмотра не будет видно. --> – проверено в gitlab, github и pycharm.
Конечно, вводить каждый раз вручную эту конструкцию не нужно, везде есть горячие клавиши.
В ворде удобно итерироваться по комментариям, а так как конструкция для <!-- достаточно уникальная, то можно просто ввести её в поиске и также итерироваться по найденным совпадениям.
Оказалось очень удобно, когда ревьюили статью на хабр по реверсу.
#edu
В ворде есть замечательная функция ревью, с помощью которой можно оставить комментарии к тексту. Обычно это нужно при совместной работе над текстом.
На нашей практике часто приходится работать с маркдаун-файлами. И, порой, тоже хочется оставить комментарий, чтобы это не влияло на внешний вид документа.
Оказалось, есть возможность оставлять комментарии, которые видны только в режиме редактирования и не видны в режиме просмотра.
<!-- Этого текста в режиме просмотра не будет видно. --> – проверено в gitlab, github и pycharm.
Конечно, вводить каждый раз вручную эту конструкцию не нужно, везде есть горячие клавиши.
В ворде удобно итерироваться по комментариям, а так как конструкция для <!-- достаточно уникальная, то можно просто ввести её в поиске и также итерироваться по найденным совпадениям.
Оказалось очень удобно, когда ревьюили статью на хабр по реверсу.
#edu
❤8👍3🌭3
Airflow или что-то ещё?
Если у вас есть много разных обработчиков данных со сложной логикой, каждый из которых надо периодически запускать и мониторить, то удобным средством оркестрации этого зоопарка будет Apache Airflow.
Airflow — это такой cron на ультра-стероидах.
Статья Как мы оркестрируем процессы обработки данных с помощью Apache Airflow и доклад Как решить проблемы оркестрации сотен задач по обработке данных с помощью Apache Airflow будут отличным введением в тему. Помимо знакомства с технологией и её основными концепциями, ещё можно узнать, для чего её применяют на практике и с какими проблемами сталкиваются.
Несмотря на то, что airflow — достаточно разухабистая штука, её можно развернуть у себя локально и попробовать разные сценарии использования, руководствуясь туториалом в документации и примерами.
У себя на проекте мы прорабатываем вопрос использования чего-то подобного. Рассматриваем airflow и prefect. Конечно, ещё есть соблазн написать свой велосипедик, но, думаю, сможем удержаться.
Кто что использовал? Для каких задач? Помимо комментариев к постами у нас есть чат канала – залетайте.
#skills
Если у вас есть много разных обработчиков данных со сложной логикой, каждый из которых надо периодически запускать и мониторить, то удобным средством оркестрации этого зоопарка будет Apache Airflow.
Airflow — это такой cron на ультра-стероидах.
Статья Как мы оркестрируем процессы обработки данных с помощью Apache Airflow и доклад Как решить проблемы оркестрации сотен задач по обработке данных с помощью Apache Airflow будут отличным введением в тему. Помимо знакомства с технологией и её основными концепциями, ещё можно узнать, для чего её применяют на практике и с какими проблемами сталкиваются.
Несмотря на то, что airflow — достаточно разухабистая штука, её можно развернуть у себя локально и попробовать разные сценарии использования, руководствуясь туториалом в документации и примерами.
У себя на проекте мы прорабатываем вопрос использования чего-то подобного. Рассматриваем airflow и prefect. Конечно, ещё есть соблазн написать свой велосипедик, но, думаю, сможем удержаться.
Кто что использовал? Для каких задач? Помимо комментариев к постами у нас есть чат канала – залетайте.
#skills
Хабр
Как мы оркестрируем процессы обработки данных с помощью Apache Airflow
Всем привет! Меня зовут Никита Василюк, я инженер по работе с данными в департаменте данных и аналитики компании Lamoda. В нашем департаменте Airflow играет роль...
🔥6👍3🌭2⚡1❤1
Пятничное развлекательное
Казалось бы, скроллбар и скроллбар, что в нём такого. Нашли прикольный сайт Evolution of the Scrollbar, где продемонстрирована история развития этой незамысловатой штуки.
В традициях лучших музеев все скроллбары можно потрогать, поностальгировать.
И на всякий случай: горизонтально скроллить можно с помощью shift+колёсико мышки.
#fun
Казалось бы, скроллбар и скроллбар, что в нём такого. Нашли прикольный сайт Evolution of the Scrollbar, где продемонстрирована история развития этой незамысловатой штуки.
В традициях лучших музеев все скроллбары можно потрогать, поностальгировать.
И на всякий случай: горизонтально скроллить можно с помощью shift+колёсико мышки.
#fun
Matoseb
Evolution of the Scrollbar
Some iconic scrollbars recreated as faithfully as possible.
👍10🔥3🌭2
Поиск недокументированных API
Несложная практическая статья, посвящённая поиску недокументированных API. Ну вы знаете, частенько бывает нужно откуда-то что-то спарсить, создать датасетик в исследовательских целях.
Автор начинает просто – что такое недокументированные api, для чего могут пригодиться.
Важное отличие недокументированных api от класссического html-парсинга в том, что api более стабилен и зачастую содержит больше информации.
На простом примере показывается, как посмотреть нужные запросы, изолировать их и воспроизвести на python для автоматизации сбора информации.
Ещё по статье раскиданы ссылки на интересные детективные расследования, например, Google Has a Secret Blocklist that Hides YouTube Hate Videos from Advertisers—But It’s Full of Holes с методологией исследования. А в конце даются ссылки на практические статьи со схожей тематикой.
Может пригодиться интересный инструмент, который конвертирует curl-команду в запрос на самых разных языках программирования.
#skills
Несложная практическая статья, посвящённая поиску недокументированных API. Ну вы знаете, частенько бывает нужно откуда-то что-то спарсить, создать датасетик в исследовательских целях.
Автор начинает просто – что такое недокументированные api, для чего могут пригодиться.
Важное отличие недокументированных api от класссического html-парсинга в том, что api более стабилен и зачастую содержит больше информации.
На простом примере показывается, как посмотреть нужные запросы, изолировать их и воспроизвести на python для автоматизации сбора информации.
Ещё по статье раскиданы ссылки на интересные детективные расследования, например, Google Has a Secret Blocklist that Hides YouTube Hate Videos from Advertisers—But It’s Full of Holes с методологией исследования. А в конце даются ссылки на практические статьи со схожей тематикой.
Может пригодиться интересный инструмент, который конвертирует curl-команду в запрос на самых разных языках программирования.
#skills
inspectelement.org
Finding Undocumented APIs
Introduction, case studies, and exercises for finding and using undocumented APIs hidden in plain sight.
🔥6⚡3🌭3❤1
Backup: март
В этом месяце было много инструментов, баз данных, инфраструктуры и софт-скиллов. Питон тоже не забыт, вспоминали итераторы, FastAPI и именование переменных.
Работаем с проектом
Постигаем gRPC
Снова о микросервисах
Поиск недокументированных API
Софт-скиллы
Teamlead roadmap
Работаем с аудиторией на выступлении – TEDx
Базы данных
Следим за PostgreSQL
Проектируем БД в DB Designer
Где бы ещё сохранить данные? В Greenplum
Python
Итерируем всякое
Как ускорить приложение на FastAPI
Делай нейминг как сеньор
Инструменты
Доступность компа извне с помощью ngrok
Комментарии в маркдауне
Airflow или что-то ещё?
Нас тепло приняли на хабре со статьёй Реверс инжиниринг для самых маленьких на практике
Если пропустили, то подборка за февраль
#backup
В этом месяце было много инструментов, баз данных, инфраструктуры и софт-скиллов. Питон тоже не забыт, вспоминали итераторы, FastAPI и именование переменных.
Работаем с проектом
Постигаем gRPC
Снова о микросервисах
Поиск недокументированных API
Софт-скиллы
Teamlead roadmap
Работаем с аудиторией на выступлении – TEDx
Базы данных
Следим за PostgreSQL
Проектируем БД в DB Designer
Где бы ещё сохранить данные? В Greenplum
Python
Итерируем всякое
Как ускорить приложение на FastAPI
Делай нейминг как сеньор
Инструменты
Доступность компа извне с помощью ngrok
Комментарии в маркдауне
Airflow или что-то ещё?
Нас тепло приняли на хабре со статьёй Реверс инжиниринг для самых маленьких на практике
Если пропустили, то подборка за февраль
#backup
Telegram
DevFM
Постигаем gRPC
Классический вариант межсервисного взаимодействия – REST. Но есть альтернативы, например, gRPC.
В своём докладе ребята из Яндекса рассказывают об опыте применения gRPC. Сначала, конечно, о проблемах, которые хотелось бы решить. Не просто…
Классический вариант межсервисного взаимодействия – REST. Но есть альтернативы, например, gRPC.
В своём докладе ребята из Яндекса рассказывают об опыте применения gRPC. Сначала, конечно, о проблемах, которые хотелось бы решить. Не просто…
❤5🌭4🔥3👍1
Рисование схемок
А чем вы пользуетесь для рисования всякого? Частенько же возникает необходимость накидать схему взаимодействия сервисов, какой-нибудь алгоритм или полноценно нарисовать архитектуру.
Конечно, на первом месте классический draw.io – очень разухабистая рисовалка.
Много шаблонных блоков для рисования любых схем. Возможность совместной работы. И, пожалуй, самое главное преимущество – возможность интеграции во множество сервисов ведения документации. Например, в Confluence и Obsidian, которыми активно пользуемся.
Недавно коллега показал удобную фичу – работу со слоями. Когда нужно что-то сложное изобразить на одном рисунке в разных разрезах. Например, схему инфраструктуры одним слоем, прописанные DNS-записи вторым, серверные мощности третьим.
Или при рефакторинге архитектуры – наглядно изобразить было/стало, просто переключая слои.
В draw.io порой напрягает слишком большое количество настроек, в которых можно запутаться и на которые совсем не хочется отвлекаться.
Недавно открыл для себя Excalidraw. Очень приятный и понятный интерфейс, совместная работа, также наличие шаблонных элементов на все случаи жизни.
А еще интересный стиль рисунков, как будто "от руки" добавляет особый шарм. Использую теперь, когда нужно что-то накидать, обсудить совместно с коллегами.
#tools
А чем вы пользуетесь для рисования всякого? Частенько же возникает необходимость накидать схему взаимодействия сервисов, какой-нибудь алгоритм или полноценно нарисовать архитектуру.
Конечно, на первом месте классический draw.io – очень разухабистая рисовалка.
Много шаблонных блоков для рисования любых схем. Возможность совместной работы. И, пожалуй, самое главное преимущество – возможность интеграции во множество сервисов ведения документации. Например, в Confluence и Obsidian, которыми активно пользуемся.
Недавно коллега показал удобную фичу – работу со слоями. Когда нужно что-то сложное изобразить на одном рисунке в разных разрезах. Например, схему инфраструктуры одним слоем, прописанные DNS-записи вторым, серверные мощности третьим.
Или при рефакторинге архитектуры – наглядно изобразить было/стало, просто переключая слои.
В draw.io порой напрягает слишком большое количество настроек, в которых можно запутаться и на которые совсем не хочется отвлекаться.
Недавно открыл для себя Excalidraw. Очень приятный и понятный интерфейс, совместная работа, также наличие шаблонных элементов на все случаи жизни.
А еще интересный стиль рисунков, как будто "от руки" добавляет особый шарм. Использую теперь, когда нужно что-то накидать, обсудить совместно с коллегами.
#tools
👍10⚡4🔥4❤2
Postgres – как хранить строки?
Если каждый раз при проектировании базы данных задаётесь вопросом, чем отличаются
Автор рассказывает о каждом типе данных, отмечает важные моменты:
– тип данных не влияет на производительность
– при ограничении длины текстового поля лучше использовать check constraint
В сухом остатке: используйте для хранения строк
#database
Если каждый раз при проектировании базы данных задаётесь вопросом, чем отличаются
char, varchar или text и какой тип данных использовать для хранения строк, то эта заметка для вас.Автор рассказывает о каждом типе данных, отмечает важные моменты:
– тип данных не влияет на производительность
– при ограничении длины текстового поля лучше использовать check constraint
В сухом остатке: используйте для хранения строк
text.#database
👍12🔥5⚡1🌭1
Межсервисное взаимодействие
Базовая практическая статья с примерами на python по организации взаимодействия между несколькими сервисами.
Автор приводит три способа взаимодействия. Переходя от одного способа к другому, даёт небольшие вводные, почему имеет смысл усложнять.
– синхронный, с использованием http-запросов
– асинхронный, с внедрением брокера сообщений, но в некоторых местах все ещё остаются http-запросы
– усовершенствованный асинхронный, когда всё взаимодействие осуществляется через брокера
Мне кажется, важная мысль при чтении статьи – в первую очередь анализируйте требования. Не нужно накручивать сложные паттерны взаимодействия там, где это не обосновано. Просто потому что "ну вроде все так делают, на хайлоаде слышал".
Проектировать и закладывать гибкость имеет смысл ровно на обозримое будущее. Потому что лишняя сложность – это больше потенциальных мест для отказа и больше вероятность завязнуть с решением задачи. А самое забавное может случиться, когда новая бизнес-хотелка не уложится в ту самую заложенную гибкость. Вот тут то и начнётся натягивание совы на глобус.
Иногда бывает, что требований особо нет, никто их явно не предоставил. В этом случае важно очертить требования для себя и команды самостоятельно, и на их основании проектировать.
А ещё на тему "не переусложнять" была отличная статья, где ребята адаптировали паттерн Сага под свои реалии.
Базовая практическая статья с примерами на python по организации взаимодействия между несколькими сервисами.
Автор приводит три способа взаимодействия. Переходя от одного способа к другому, даёт небольшие вводные, почему имеет смысл усложнять.
– синхронный, с использованием http-запросов
– асинхронный, с внедрением брокера сообщений, но в некоторых местах все ещё остаются http-запросы
– усовершенствованный асинхронный, когда всё взаимодействие осуществляется через брокера
Мне кажется, важная мысль при чтении статьи – в первую очередь анализируйте требования. Не нужно накручивать сложные паттерны взаимодействия там, где это не обосновано. Просто потому что "ну вроде все так делают, на хайлоаде слышал".
Проектировать и закладывать гибкость имеет смысл ровно на обозримое будущее. Потому что лишняя сложность – это больше потенциальных мест для отказа и больше вероятность завязнуть с решением задачи. А самое забавное может случиться, когда новая бизнес-хотелка не уложится в ту самую заложенную гибкость. Вот тут то и начнётся натягивание совы на глобус.
Иногда бывает, что требований особо нет, никто их явно не предоставил. В этом случае важно очертить требования для себя и команды самостоятельно, и на их основании проектировать.
А ещё на тему "не переусложнять" была отличная статья, где ребята адаптировали паттерн Сага под свои реалии.
👍3🔥3⚡1🌭1
Выбор брокера сообщений
Для асинхронного взаимодействия сервисов используются брокеры сообщений. Читая книгу о микросервисах, нашел набор факторов, которые нужно учесть, выбирая брокер для той или иной задачи.
— Поддерживаемые языки программирования. Пункт достаточно банальный, но лучше выбрать брокер с поддержкой широкого диапазона языков программирования.
— Поддерживаемые стандарты обмена сообщениями. Поддерживает ли брокер сообщений стандарт вроде AMQP или STOMP? Использует ли он свой закрытый протокол?
— Порядок следования сообщений. Сохраняет ли брокер порядок следования сообщений? Кстати неплохой вопрос на собеседовании: гарантирует ли Кафка упорядоченность сообщений и за счёт чего?
— Гарантии доставки. Какие гарантии доставки даёт брокер сообщений?
— Постоянное хранение. Сохраняются ли сообщения на диск? Могут ли они пережить сбой брокера?
— Устойчивость. Если потребитель переподключится к брокеру, получит ли он сообщения, отправленные, пока он был отключен?
— Масштабируемость. Насколько масштабируем брокер сообщений?
— Латентность. Каковы задержки при передачи информации?
— Конкурирующие потребители. Поддерживает ли брокер сообщений конкурирующих потребителей?
#skills
Для асинхронного взаимодействия сервисов используются брокеры сообщений. Читая книгу о микросервисах, нашел набор факторов, которые нужно учесть, выбирая брокер для той или иной задачи.
— Поддерживаемые языки программирования. Пункт достаточно банальный, но лучше выбрать брокер с поддержкой широкого диапазона языков программирования.
— Поддерживаемые стандарты обмена сообщениями. Поддерживает ли брокер сообщений стандарт вроде AMQP или STOMP? Использует ли он свой закрытый протокол?
— Порядок следования сообщений. Сохраняет ли брокер порядок следования сообщений? Кстати неплохой вопрос на собеседовании: гарантирует ли Кафка упорядоченность сообщений и за счёт чего?
— Гарантии доставки. Какие гарантии доставки даёт брокер сообщений?
— Постоянное хранение. Сохраняются ли сообщения на диск? Могут ли они пережить сбой брокера?
— Устойчивость. Если потребитель переподключится к брокеру, получит ли он сообщения, отправленные, пока он был отключен?
— Масштабируемость. Насколько масштабируем брокер сообщений?
— Латентность. Каковы задержки при передачи информации?
— Конкурирующие потребители. Поддерживает ли брокер сообщений конкурирующих потребителей?
#skills
👍12🔥4🌭4
Пятничное развлекательное
Хочется порекомендовать замечательный курс для небиологов от Стэнфордского университета Биология поведения человека, который ведет Роберт Сапольски. Курс аж на 27 лекций будет интересен увлекающимся подобной тематикой.
И абсолютно всем рекомендую посмотреть лекцию курса, посвященную депрессии. Что наука говорит на эту тему. После просмотра, возможно, посмотрите на мир другими глазами. И порой человеку не помочь, просто дав отдохнуть и сказав подбадривающее "крепись".
#fun
Хочется порекомендовать замечательный курс для небиологов от Стэнфордского университета Биология поведения человека, который ведет Роберт Сапольски. Курс аж на 27 лекций будет интересен увлекающимся подобной тематикой.
И абсолютно всем рекомендую посмотреть лекцию курса, посвященную депрессии. Что наука говорит на эту тему. После просмотра, возможно, посмотрите на мир другими глазами. И порой человеку не помочь, просто дав отдохнуть и сказав подбадривающее "крепись".
#fun
YouTube
Биология поведения человека. Лекция #1. Введение [Роберт Сапольски, 2010. Стэнфорд]
Поддержать проект можно по ссылкам:
Если вы в России: https://boosty.to/vertdider
Если вы не в России: https://www.patreon.com/VertDider
Вступительная лекция профессора Стенфордского университета Роберта Сапольски к курсу «Биология поведения человека». В…
Если вы в России: https://boosty.to/vertdider
Если вы не в России: https://www.patreon.com/VertDider
Вступительная лекция профессора Стенфордского университета Роберта Сапольски к курсу «Биология поведения человека». В…
🔥5🌭4⚡2❤1
Асинхронность в браузере
Классная обширная статья на тему асинхронности в браузере. Даже если далеки от мира фронтенда, рекомендуем к прочтению, чтобы представлять как у них там все устроено. Автор рассказывает о циклах событий, об очередях задач (оказывается, их несколько), функциях обратного вызова, промисах и корутинах. Всё повествование сопровождается наглядными иллюстрациями и кодом.
Для людей, связанных с фронтендом, статья также будет полезна. Автор собирает многие знания воедино, рассказывает о некоторых экспериментальных функциях, а также даёт множество ссылок для более глубокого изучения. Нам показались интересными: Оптимизация производительности фронтенда и Визуализация промисов и Async/Await
Классная обширная статья на тему асинхронности в браузере. Даже если далеки от мира фронтенда, рекомендуем к прочтению, чтобы представлять как у них там все устроено. Автор рассказывает о циклах событий, об очередях задач (оказывается, их несколько), функциях обратного вызова, промисах и корутинах. Всё повествование сопровождается наглядными иллюстрациями и кодом.
Для людей, связанных с фронтендом, статья также будет полезна. Автор собирает многие знания воедино, рассказывает о некоторых экспериментальных функциях, а также даёт множество ссылок для более глубокого изучения. Нам показались интересными: Оптимизация производительности фронтенда и Визуализация промисов и Async/Await
Хабр
Полное понимание асинхронности в браузере
Про асинхронность JavaScript написано много статей, документации и книг. Но вся информация сильно распределена по интернету, поэтому сложно быстро и полностью разобраться, что к чему, и составить...
👍10🌭3❤2
Работа с json в PostgreSQL
Цикл супер-полезных практических заметок о работе с json в PostgreSQL.
Затрагиваются вопросы:
— чем json отличается от jsonb
— как парсить json. В том числе: извлечение поля из json-объекта, получение тип данных, проверка существования поля или значения
— как разложить json по колонкам
— как конвертировать в json. В том числе: перевод строки в json, создание json-объекта из наборов ключей и значений
— как индексировать json. В том числе: всю колонку или отдельно взятое поле
— как сделать красивый вывод json
— как изменять json. В том числе: конкатенация двух json, удаление определенных полей или null-значений
Для более глубокого изучения того или иного вопроса автор даёт ссылки на документацию, другие статьи и SO.
#database
Цикл супер-полезных практических заметок о работе с json в PostgreSQL.
Затрагиваются вопросы:
— чем json отличается от jsonb
— как парсить json. В том числе: извлечение поля из json-объекта, получение тип данных, проверка существования поля или значения
— как разложить json по колонкам
— как конвертировать в json. В том числе: перевод строки в json, создание json-объекта из наборов ключей и значений
— как индексировать json. В том числе: всю колонку или отдельно взятое поле
— как сделать красивый вывод json
— как изменять json. В том числе: конкатенация двух json, удаление определенных полей или null-значений
Для более глубокого изучения того или иного вопроса автор даёт ссылки на документацию, другие статьи и SO.
#database
Data and Open Source
How to JSON in PostgreSQL®
A series of articles on how to solve common JSON problems with PostgreSQL®
👍8🔥4❤2⚡1🌭1
Вариантность типов
Интересная тема из теории программирования. В языках программирования существуют типы данных, и они могут образовывать сложную иерархию.
Простой пример: тип Natural является подтипом Integer и Positive. И все трое одновременно являются подтипами Real. А тип Prime является подтипом всех вышеперечисленных.
Есть у нас функция, которая в качестве параметра принимает на вход определённый тип данных. А можем ли мы передать в качестве параметра подтип или надтип исходного типа данных? За это как раз отвечает вариантность типов.
Контравариантность, ковариантность, инвариантность — в статье все эти замечательные термины рассматриваются на конкретных понятных примерах.
Также прочтение статьи позволит более глубокого понять принцип подстановки Барбары Лисков (LSP), который фигурирует в известной аббревиатуре soLid.
В конце рассматривается реализация вариантности в различных языках программирования –TypeScript, C#, Java, C++.
А на тему вариантности в python у Диджи было замечательное видео.
#procode
Интересная тема из теории программирования. В языках программирования существуют типы данных, и они могут образовывать сложную иерархию.
Простой пример: тип Natural является подтипом Integer и Positive. И все трое одновременно являются подтипами Real. А тип Prime является подтипом всех вышеперечисленных.
Есть у нас функция, которая в качестве параметра принимает на вход определённый тип данных. А можем ли мы передать в качестве параметра подтип или надтип исходного типа данных? За это как раз отвечает вариантность типов.
Контравариантность, ковариантность, инвариантность — в статье все эти замечательные термины рассматриваются на конкретных понятных примерах.
Также прочтение статьи позволит более глубокого понять принцип подстановки Барбары Лисков (LSP), который фигурирует в известной аббревиатуре soLid.
В конце рассматривается реализация вариантности в различных языках программирования –TypeScript, C#, Java, C++.
А на тему вариантности в python у Диджи было замечательное видео.
#procode
🔥7👍5⚡2❤1🌭1
Пятничное развлекательное
Столкнулся с удивительным случаем, который вызвал смех и удивление. Проводили собеседование. Заходим в зум, включаем камеры и тут включает камеру кандидат с мобильного. И что мы видим... Сидит чувак на улице, на лавочке, с сигой в зубах и готов проходить собес. Занавес.
Сама ситуация комична и вызывает смех, а удивление вызывает отношение к собеседованию. При этом кандидат слёзно заявлял, что очень хочет сменить текущую работу. Искренне не понимаю наличие желания и отсутствие реальных действий, чтобы это желание удовлетворить.
Не только развлекательное, но и полезное: у нас в канале есть тег #резюме о подготовке к собеседованиям с личным опытом.
Было что-то запоминающееся в вашей практике?
Столкнулся с удивительным случаем, который вызвал смех и удивление. Проводили собеседование. Заходим в зум, включаем камеры и тут включает камеру кандидат с мобильного. И что мы видим... Сидит чувак на улице, на лавочке, с сигой в зубах и готов проходить собес. Занавес.
Сама ситуация комична и вызывает смех, а удивление вызывает отношение к собеседованию. При этом кандидат слёзно заявлял, что очень хочет сменить текущую работу. Искренне не понимаю наличие желания и отсутствие реальных действий, чтобы это желание удовлетворить.
Не только развлекательное, но и полезное: у нас в канале есть тег #резюме о подготовке к собеседованиям с личным опытом.
Было что-то запоминающееся в вашей практике?
👍8😁4🌭2❤1⚡1
VPN — не панацея
Цикл удачных статей на горячую тему обхода блокировок в сети.
В первой статье автор рассказывает о том, как можно выявлять попытки обхода блокировок. Если у вас настроен VPN или прокси, не стоит расслабляться – их можно выявить и заблокировать. В статье автор приводит подобные примеры из реальной жизни.
Вторая статья рассказывает, что всё не так уж и плохо. Всё-таки есть технологии обхода блокировок, которые пока не детектируются (хотя наверняка в эту сторону идут активные исследования). Автор рассматривает такие технологии как: V2Ray, XRay, XTLS, Hysteria, Cloak. Статья больше теоретическая, но неплохо так расширяет кругозор.
А кому хочется потрогать, что было описано ранее и иметь запасной вариант выхода в мир, есть еще две чисто практические статьи: Обход блокировок: настройка сервера XRay для Shadowsocks-2022 и VLESS с XTLS, Websockets и фейковым веб-сайтом и Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие.
Порядок чтения не столь важен, можно начинать с любой заинтересовавшей.
#security
Цикл удачных статей на горячую тему обхода блокировок в сети.
В первой статье автор рассказывает о том, как можно выявлять попытки обхода блокировок. Если у вас настроен VPN или прокси, не стоит расслабляться – их можно выявить и заблокировать. В статье автор приводит подобные примеры из реальной жизни.
Вторая статья рассказывает, что всё не так уж и плохо. Всё-таки есть технологии обхода блокировок, которые пока не детектируются (хотя наверняка в эту сторону идут активные исследования). Автор рассматривает такие технологии как: V2Ray, XRay, XTLS, Hysteria, Cloak. Статья больше теоретическая, но неплохо так расширяет кругозор.
А кому хочется потрогать, что было описано ранее и иметь запасной вариант выхода в мир, есть еще две чисто практические статьи: Обход блокировок: настройка сервера XRay для Shadowsocks-2022 и VLESS с XTLS, Websockets и фейковым веб-сайтом и Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие.
Порядок чтения не столь важен, можно начинать с любой заинтересовавшей.
#security
Хабр
Интернет-цензура и обход блокировок: не время расслабляться
Статья опубликована под лицензией Creative Commons BY-NC-SA . Disclaimer: практически всё, описанное в статье, не является чем-то принципиально новым или инновационным - оно давно известно и...
👍8❤2😁2🌭2
Три года DevFM
Мы создали этот канал 25 апреля 2020 года. Начинался он как инициатива двух друзей, которые делились контентом "для своих". Когда в десятый раз с кем-то поделился одним и тем же интересным материалом, возникло желание такой материал систематизировать и опубликовать. Первые посты не теряют актуальности:
– Как правильно постоянно ботать
– Паттерны проектирования
– Первое пятничное развлекательное – история xkcd
– Качественные публичные выступления для студентов
– О важности предсказуемости
– Не строй велосипед, переиспользуй
– Как изучать предметную область перед стартом проекта
А год назад мы основательно взялись за канал и с тех пор не сбавляем темп. Также иногда пишем видео для ютуба, например, Идеальный скрипт на bash и статьи для Пикабу, которые выходят за формат поста тут. Недавно мы вышли на Хабр со статьёй по реверсу, и набрали почти 50 плюсов и две сотни закладок.
В закреплённом посте у нас есть навигация по каналу с продуманной системой тегов.
В этом году мы планируем ещё больше и ещё круче. А вам спасибо за интерес, спасибо, что читаете. Хотелось бы узнать подробнее о вас. Чем вы занимаетесь и как долго? Два небольших опроса в следующих постах
#ToTheMoon
Мы создали этот канал 25 апреля 2020 года. Начинался он как инициатива двух друзей, которые делились контентом "для своих". Когда в десятый раз с кем-то поделился одним и тем же интересным материалом, возникло желание такой материал систематизировать и опубликовать. Первые посты не теряют актуальности:
– Как правильно постоянно ботать
– Паттерны проектирования
– Первое пятничное развлекательное – история xkcd
– Качественные публичные выступления для студентов
– О важности предсказуемости
– Не строй велосипед, переиспользуй
– Как изучать предметную область перед стартом проекта
А год назад мы основательно взялись за канал и с тех пор не сбавляем темп. Также иногда пишем видео для ютуба, например, Идеальный скрипт на bash и статьи для Пикабу, которые выходят за формат поста тут. Недавно мы вышли на Хабр со статьёй по реверсу, и набрали почти 50 плюсов и две сотни закладок.
В закреплённом посте у нас есть навигация по каналу с продуманной системой тегов.
В этом году мы планируем ещё больше и ещё круче. А вам спасибо за интерес, спасибо, что читаете. Хотелось бы узнать подробнее о вас. Чем вы занимаетесь и как долго? Два небольших опроса в следующих постах
#ToTheMoon
🔥16👍9❤4🌭2