TGViewer
Channel Public Channel
DevFM

DevFM

@devfm

О разработке: AI, технологии, инструменты, system design, процессы, команды

Для связи @sa_bul
Subscribers
3.04K
Photos
82
Videos
6
Links
555

Showing posts older than #374 · Back to latest

Older Posts 20 shown
Post #373 1.5K
DevFM ACID в PostgreSQL Видео про ACID в БД от наших друзей. В двадцатиминутном видео показывается: — atomicity на примере транзакции в виде небольших SQL-запросов в postgres через docker, всё как мы любим — consistency на примере демонстрации влияния незавершённой…
Ребята из SQL-чатика проводят онлайн-встречу 12 мая в 19.00. Темы:
– о работе
– как войти в айти
– софт скиллы
– технические вопросы
– о том, что спрашивают на собеседованиях

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

Ссылка в зум на встречу. Любые вопросы можно уточнить в чате.
Telegram It’s Friday (Sometimes) Chat (Это Пятничный Чат) Запросы с душой и вайбом По вопросам/предложениям писать: @geo404 Интерактивный учебник SQL https://querynomic.one/#/
  • 🔥 3
  • ⚡ 1
  • 👍 1
  • 🌭 1
Post #372 1.28K
  • 🔥 5
  • 👍 4
  • ❤ 2
Post #371 1.16K
  • 🔥 3
  • ⚡ 2
  • ❤ 2
Post #370 1.27K
Три года DevFM

Мы создали этот канал 25 апреля 2020 года. Начинался он как инициатива двух друзей, которые делились контентом "для своих". Когда в десятый раз с кем-то поделился одним и тем же интересным материалом, возникло желание такой материал систематизировать и опубликовать. Первые посты не теряют актуальности:

– Как правильно постоянно ботать
– Паттерны проектирования
– Первое пятничное развлекательное – история xkcd
– Качественные публичные выступления для студентов
– О важности предсказуемости
– Не строй велосипед, переиспользуй
– Как изучать предметную область перед стартом проекта

А год назад мы основательно взялись за канал и с тех пор не сбавляем темп. Также иногда пишем видео для ютуба, например, Идеальный скрипт на bash и статьи для Пикабу, которые выходят за формат поста тут. Недавно мы вышли на Хабр со статьёй по реверсу, и набрали почти 50 плюсов и две сотни закладок.

В закреплённом посте у нас есть навигация по каналу с продуманной системой тегов.

В этом году мы планируем ещё больше и ещё круче. А вам спасибо за интерес, спасибо, что читаете. Хотелось бы узнать подробнее о вас. Чем вы занимаетесь и как долго? Два небольших опроса в следующих постах

#ToTheMoon
  • 🔥 16
  • 👍 9
  • ❤ 4
  • 🌭 2
Post #369 1.49K
VPN — не панацея

Цикл удачных статей на горячую тему обхода блокировок в сети.

В первой статье автор рассказывает о том, как можно выявлять попытки обхода блокировок. Если у вас настроен VPN или прокси, не стоит расслабляться – их можно выявить и заблокировать. В статье автор приводит подобные примеры из реальной жизни.

Вторая статья рассказывает, что всё не так уж и плохо. Всё-таки есть технологии обхода блокировок, которые пока не детектируются (хотя наверняка в эту сторону идут активные исследования). Автор рассматривает такие технологии как: V2Ray, XRay, XTLS, Hysteria, Cloak. Статья больше теоретическая, но неплохо так расширяет кругозор.

А кому хочется потрогать, что было описано ранее и иметь запасной вариант выхода в мир, есть еще две чисто практические статьи: Обход блокировок: настройка сервера XRay для Shadowsocks-2022 и VLESS с XTLS, Websockets и фейковым веб-сайтом и Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие.

Порядок чтения не столь важен, можно начинать с любой заинтересовавшей.

#security
  • 👍 8
  • ❤ 2
  • 😁 2
  • 🌭 2
Post #368 1.21K
Пятничное развлекательное

Столкнулся с удивительным случаем, который вызвал смех и удивление. Проводили собеседование. Заходим в зум, включаем камеры и тут включает камеру кандидат с мобильного. И что мы видим... Сидит чувак на улице, на лавочке, с сигой в зубах и готов проходить собес. Занавес.

Сама ситуация комична и вызывает смех, а удивление вызывает отношение к собеседованию. При этом кандидат слёзно заявлял, что очень хочет сменить текущую работу. Искренне не понимаю наличие желания и отсутствие реальных действий, чтобы это желание удовлетворить.

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

Было что-то запоминающееся в вашей практике?
  • 👍 8
  • 😁 4
  • 🌭 2
  • ❤ 1
  • ⚡ 1
Post #367 1.48K
Вариантность типов

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

Простой пример: тип Natural является подтипом Integer и Positive. И все трое одновременно являются подтипами Real. А тип Prime является подтипом всех вышеперечисленных.

Есть у нас функция, которая в качестве параметра принимает на вход определённый тип данных. А можем ли мы передать в качестве параметра подтип или надтип исходного типа данных? За это как раз отвечает вариантность типов.

Контравариантность, ковариантность, инвариантность — в статье все эти замечательные термины рассматриваются на конкретных понятных примерах.

Также прочтение статьи позволит более глубокого понять принцип подстановки Барбары Лисков (LSP), который фигурирует в известной аббревиатуре soLid.

В конце рассматривается реализация вариантности в различных языках программирования –TypeScript, C#, Java, C++.

А на тему вариантности в python у Диджи было замечательное видео.

#procode
  • 🔥 7
  • 👍 5
  • ⚡ 2
  • ❤ 1
  • 🌭 1
Post #366 1.69K
Работа с json в PostgreSQL

Цикл супер-полезных практических заметок о работе с 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
Post #365 1.52K
Асинхронность в браузере

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

Для людей, связанных с фронтендом, статья также будет полезна. Автор собирает многие знания воедино, рассказывает о некоторых экспериментальных функциях, а также даёт множество ссылок для более глубокого изучения. Нам показались интересными: Оптимизация производительности фронтенда и Визуализация промисов и Async/Await
  • 👍 10
  • 🌭 3
  • ❤ 2
Post #364 1.51K
Пятничное развлекательное

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

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

#fun
  • 🔥 5
  • 🌭 4
  • ⚡ 2
  • ❤ 1
Post #363 1.43K
Выбор брокера сообщений

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

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

— Поддерживаемые стандарты обмена сообщениями. Поддерживает ли брокер сообщений стандарт вроде AMQP или STOMP? Использует ли он свой закрытый протокол?

— Порядок следования сообщений. Сохраняет ли брокер порядок следования сообщений? Кстати неплохой вопрос на собеседовании: гарантирует ли Кафка упорядоченность сообщений и за счёт чего?

— Гарантии доставки. Какие гарантии доставки даёт брокер сообщений?

— Постоянное хранение. Сохраняются ли сообщения на диск? Могут ли они пережить сбой брокера?

— Устойчивость. Если потребитель переподключится к брокеру, получит ли он сообщения, отправленные, пока он был отключен?

— Масштабируемость. Насколько масштабируем брокер сообщений?

— Латентность. Каковы задержки при передачи информации?

— Конкурирующие потребители. Поддерживает ли брокер сообщений конкурирующих потребителей?

#skills
  • 👍 12
  • 🔥 4
  • 🌭 4
Post #362 1.39K
Межсервисное взаимодействие

Базовая практическая статья с примерами на python по организации взаимодействия между несколькими сервисами. 

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

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

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

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

А ещё на тему "не переусложнять" была отличная статья, где ребята адаптировали паттерн Сага под свои реалии.
  • 👍 3
  • 🔥 3
  • ⚡ 1
  • 🌭 1
Post #361 1.64K
Postgres – как хранить строки?

Если каждый раз при проектировании базы данных задаётесь вопросом, чем отличаются char, varchar или text и какой тип данных использовать для хранения строк, то эта заметка для вас.

Автор рассказывает о каждом типе данных, отмечает важные моменты:
– тип данных не влияет на производительность
– при ограничении длины текстового поля лучше использовать check constraint

В сухом остатке: используйте для хранения строк text.

#database
  • 👍 12
  • 🔥 5
  • ⚡ 1
  • 🌭 1
Post #359 1.59K
Рисование схемок

А чем вы пользуетесь для рисования всякого? Частенько же возникает необходимость накидать схему взаимодействия сервисов, какой-нибудь алгоритм или полноценно нарисовать архитектуру.

Конечно, на первом месте классический draw.io – очень разухабистая рисовалка.

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

Недавно коллега показал удобную фичу – работу со слоями. Когда нужно что-то сложное изобразить на одном рисунке в разных разрезах. Например, схему инфраструктуры одним слоем, прописанные DNS-записи вторым, серверные мощности третьим.

Или при рефакторинге архитектуры – наглядно изобразить было/стало, просто переключая слои.

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

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

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

#tools
  • 👍 10
  • ⚡ 4
  • 🔥 4
  • ❤ 2
Post #358 1.38K
Backup: март

В этом месяце было много инструментов, баз данных, инфраструктуры и софт-скиллов. Питон тоже не забыт, вспоминали итераторы, FastAPI и именование переменных.

Работаем с проектом
Постигаем gRPC
Снова о микросервисах
Поиск недокументированных API

Софт-скиллы
Teamlead roadmap
Работаем с аудиторией на выступлении – TEDx

Базы данных
Следим за PostgreSQL
Проектируем БД в DB Designer
Где бы ещё сохранить данные? В Greenplum

Python
Итерируем всякое
Как ускорить приложение на FastAPI
Делай нейминг как сеньор

Инструменты
Доступность компа извне с помощью ngrok
Комментарии в маркдауне
Airflow или что-то ещё?

Нас тепло приняли на хабре со статьёй Реверс инжиниринг для самых маленьких на практике

Если пропустили, то подборка за февраль

#backup
Telegram DevFM Постигаем gRPC Классический вариант межсервисного взаимодействия – REST. Но есть альтернативы, например, gRPC. В своём докладе ребята из Яндекса рассказывают об опыте применения gRPC. Сначала, конечно, о проблемах, которые хотелось бы решить. Не просто…
  • ❤ 5
  • 🌭 4
  • 🔥 3
  • 👍 1
Post #357 1.17K
Поиск недокументированных 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
inspectelement.org Finding Undocumented APIs Introduction, case studies, and exercises for finding and using undocumented APIs hidden in plain sight.
  • 🔥 6
  • ⚡ 3
  • 🌭 3
  • ❤ 1
Post #356 1.07K
Пятничное развлекательное

Казалось бы, скроллбар и скроллбар, что в нём такого. Нашли прикольный сайт Evolution of the Scrollbar, где продемонстрирована история развития этой незамысловатой штуки.

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

И на всякий случай: горизонтально скроллить можно с помощью shift+колёсико мышки.

#fun
Matoseb Evolution of the Scrollbar Some iconic scrollbars recreated as faithfully as possible.
  • 👍 10
  • 🔥 3
  • 🌭 2
Post #355 1.22K
Airflow или что-то ещё?

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

Airflow — это такой cron на ультра-стероидах.

Статья Как мы оркестрируем процессы обработки данных с помощью Apache Airflow и доклад Как решить проблемы оркестрации сотен задач по обработке данных с помощью Apache Airflow будут отличным введением в тему. Помимо знакомства с технологией и её основными концепциями, ещё можно узнать, для чего её применяют на практике и с какими проблемами сталкиваются.

Несмотря на то, что airflow — достаточно разухабистая штука, её можно развернуть у себя локально и попробовать разные сценарии использования, руководствуясь туториалом в документации и примерами.

У себя на проекте мы прорабатываем вопрос использования чего-то подобного. Рассматриваем airflow и prefect. Конечно, ещё есть соблазн написать свой велосипедик, но, думаю, сможем удержаться.

Кто что использовал? Для каких задач? Помимо комментариев к постами у нас есть чат канала – залетайте.

#skills
Хабр Как мы оркестрируем процессы обработки данных с помощью Apache Airflow Всем привет! Меня зовут Никита Василюк, я инженер по работе с данными в департаменте данных и аналитики компании Lamoda. В нашем департаменте Airflow играет роль...
  • 🔥 6
  • 👍 3
  • 🌭 2
  • ⚡ 1
  • ❤ 1
Post #354 1.19K
Комментарии в маркдауне

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

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

Оказалось, есть возможность оставлять комментарии, которые видны только в режиме редактирования и не видны в режиме просмотра.

<!-- Этого текста в режиме просмотра не будет видно. --> – проверено в gitlab, github и pycharm.

Конечно, вводить каждый раз вручную эту конструкцию не нужно, везде есть горячие клавиши.

В ворде удобно итерироваться по комментариям, а так как конструкция для <!-- достаточно уникальная, то можно просто ввести её в поиске и также итерироваться по найденным совпадениям.

Оказалось очень удобно, когда ревьюили статью на хабр по реверсу.

#edu
  • ❤ 8
  • 👍 3
  • 🌭 3
Post #352 1.27K
Реверс инжиниринг для самых маленьких на практике

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

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

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

Если посматривали на реверс, но не знали с чего начать – велкам.

#devfm
Хабр Реверс инжиниринг для самых маленьких на практике Скомпилированное приложение является «чёрным ящиком». Чтобы туда заглянуть, восстановить алгоритм работы применяется реверс‑инжиниринг. Это непростой навык с высоким порогом входа. В статье...
  • 🔥 9
  • 👍 5
  • ❤ 2
  • ⚡ 1
  • 🌭 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →