Pull to refresh
0
0
Send message

Как я адаптировал v2rayN для России или российские источники geo файлов для v2ray/sing-box/etc

Level of difficultyEasy
Reading time5 min
Views168K

Сегодня был выпущен мажорный релиз v2rayN v7.0, а вместе с ним и моя серия коммитов, которые добавляют поддержку пресета "Россия".

Для его работы так же был создан российский источник geo файлов для v2ray/sing-box/etc.

Читать далее

Краткий обзор поведенческих паттернов в Rust

Level of difficultyEasy
Reading time6 min
Views5K

Привет, Хабр!

Зачем нужны поведенческие паттерны? Вопрос риторический, но ответ на него кроется в самой сути разработки. Поведенческие паттерны предоставляют нам для решения часто встречающихся проблем взаимодействия между объектами и классами.

Паттерны можно реализовать на любом ЯПе и сегодня рассмотрим, как их реализовать в Rust.

Читать далее

Разработка простого DNS сервера на Go, согласно RFC

Level of difficultyMedium
Reading time7 min
Views14K

Привет, Хабр!

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

Читать далее

Память как у пингвина: Работа памяти в Linux

Level of difficultyEasy
Reading time20 min
Views38K

Что такое память и какие они бывают в Linux? Как с ней взаимодействовать? Каковы её особенности?

Как реализована память в ядре Linux? Как с ней работать?

Что такое кластеры, откуда в ядре Linux грязные и чистые страницы - читайте в этой статье!

Читать далее

System Design 101

Level of difficultyMedium
Reading time42 min
Views141K



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.


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


System Design (сборник на английском языке).

Читать дальше →

Рецепты для хворающих SQL-запросов

Reading time7 min
Views67K
Несколько месяцев назад мы анонсировали explain.tensor.ru — публичный сервис для разбора и визуализации планов запросов к PostgreSQL.

За прошедшее время вы уже воспользовались им более 6000 раз, но одна из удобных функций могла остаться незамеченной — это структурные подсказки, которые выглядят примерно так:



Прислушивайтесь к ним, и ваши запросы «станут гладкими и шелковистыми». :)

А если серьезно, то многие ситуации, которые делают запрос медленным и «прожорливым» по ресурсам, типичны и могут быть распознаны по структуре и данным плана.

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



Давайте чуть подробнее рассмотрим эти кейсы — как они определяются и к каким рекомендациям приводят.

Практическое руководство по именованию классов, функций и переменных

Reading time4 min
Views51K

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

Читать далее

Полезные консольные Linux утилиты

Reading time13 min
Views128K

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


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →

Альтернативы Raspberry Pi

Reading time8 min
Views89K

Свет клином не сошёлся на Raspberry Pi, и потому энтузиасты и гики могут экспериментировать с большим количеством самых разных одноплатных компьютеров (SBC). Предлагаю познакомиться с устройствами, которым под силу обрести популярность в 2021 году.

Читать далее

21 канал на YouTube, где вы можете бесплатно изучить ИИ, машинное обучение и Data Science

Reading time5 min
Views28K

Мы уже не раз делились в своем блоге полезными материалами для развития (их список можно найти в конце этого поста). Сегодня продолжаем это начинание и специально перед стартом новых потоков курсов по Data Analytics и Data Science представляем подборку YT-каналов по Data Science, искусственному интеллекту и машинному обучению, существование многих из которых неочевидно: например, представлен канал ArXiv Insights, посвящённый научным работам, и Google Cloud Platform.
Приятного чтения!

Руководство по проектированию реляционных баз данных (1-3 часть из 15) [перевод]

Reading time7 min
Views446K
Перевод цикла из 15 статей о проектировании баз данных.
Информация предназначена для новичков.
Помогло мне. Возможно, что поможет еще кому-то восполнить пробелы.

Другие части: 4-6, 7-9, 10-13, 14-15.

Руководство по проектированию баз данных.



1. Вступление.

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

Как научиться проектировать реляционные базы данных за полчаса

Reading time17 min
Views45K


Автоматизация сопровождает нас повсюду и является спутником и признаком прогресса, снимая с человека необходимость выполнения рутинных действий и принятия рутинных решений. Но для принятия решений о будущем необходима информация о прошлом, поэтому автоматизация неизбежно связана с необходимостью накапливать, хранить и обрабатывать данные, чем и занимаются базы данных и системы управления базами данных. Объём данных не уменьшается, а только увеличивается, поэтому я всегда говорю своим студентам: я научу вас хаскелю, но это сломает вам жизнь и не поможет найти работу базы данных – это хлеб программиста, у разработчика баз данных работа будет всегда, учитесь ораклу базам данных – и хлеб с маслом и икрой вам обеспечен. Это я так, как обычно, полемически заостряюсь для мотивации, но совсем чуть-чуть.
Читать дальше на свой страх и риск

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 1

Reading time34 min
Views99K

Когда-то я проходил серию собеседований на Backend-Java-разработчика и записывал вопросы себе на будущее, чтобы потом можно было пробежаться и освежить память. Подумалось, что, вероятно, данный сборник будет полезен не только мне, поэтому сдул с него пыль, набросал ответов и делюсь с сообществом. На оригинальность и исключительность не претендую: подобные статьи уже были и на Хабре, и много где ещё — в конце (во второй части) приведу список ссылок, чтобы шпаргалка была максимально полной.


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


Текста получилось много, поэтому пришлось разбить на две части. В первой поговорим про Java и Spring, а обо всём остальном — во второй. Вторая часть тут

Погнали

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 2

Reading time30 min
Views92K

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

Потопали

CucumberTalks: избегаем антипаттернов и пишем выразительные сценарии

Reading time12 min
Views5.9K


Фреймворк Cucumber используют как часть bdd-подхода к разработке, так и как отдельный инструмент для автотестов. 40+ млн скачиваний обеспечили фреймворку богатый опыт использования, но актуализировали поверхностное отношение к этому инструменту. Разбираем популярные огуречные антипаттерны и учимся писать действительно выразительные сценарии.
Читать дальше →

От желания до оффера: как программисту организовать подготовку к интервью

Reading time3 min
Views9.2K
Пару месяцев назад из-за пандемии мне пришлось искать работу и подойти к этому я решила системно. Со всей своей любовью к планированию, записям и визуальным отражением прогресса. Пройдя путь от белого листа до офферов, представляю свой план, по которому выбирала компании и готовилась к собеседованиям.

Выбор компании


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

Формируем портрет желаемой компании, я сделала 3 колонки:

  • Цели в работе
  • Желания на ближайшие годы
  • Рекомендации (советы друзей о выборе компании)


Читать дальше →

Как я научился проходить архитектурные секции

Reading time4 min
Views35K
Архитектурные секции у многих вызывают чувство неопределенности и тревоги: формулировки не изобилуют деталями, как проверить ответ — непонятно. При этом способность пройти архитектурную секцию отличает вчерашнего выпускника от человека, которому можно доверить строить нечто большее, чем обход бинарных деревьев. В определенный момент я решил как следует подготовиться секции по дизайну, потратил на это около пары недель и выработал системный подход, которым хочу с вами поделиться.
Читать дальше →

Netflix за 45 минут: Краткий рассказ о system design-интервью, чего ожидать + подборка полезных ссылок

Reading time6 min
Views34K


В нашем блоге мы много пишем о построении карьеры в ИТ в разных странах, поиске работы, отличиях в процессе собеседований крупных компаний. В сегодняшней статье мы пойдем дальше и раскроем тему так называемых интервью по system design – это один из этапов собеседований известных технологических компаний, на котором отсеиваются многие кандидаты.

Итак, что такое system design и как пройти интервью такого типа?
Читать дальше →

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Reading time12 min
Views208K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
1
23 ...

Information

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