Как стать автором
Обновить
1
0

Пользователь

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

С алгоритмами в духе LeetCode на собеседованиях пора кончать

Время на прочтение6 мин
Количество просмотров67K
Современная разработка охватывает широкий диапазон от работы с алгоритмами до системного дизайна. По большей части разработка ПО укладывается в эти рамки. Основная масса разработчиков занимается созданием приложений, что ближе с системному дизайну, чем к низкоуровневым алгоритмам.

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

Такой подход основан на идее, что, если человек знаком с алгоритмами и системным дизайном, то и на разработку приложений ему хватит способностей. Это спорное утверждение. Создание приложений требует обширного набора навыков. Они не нарабатываются сотнями часов заучивания паттернов в решениях задач на алгоритмы. Да и рассматриванием сильно упрощенных версий системного дизайна Netflix, Uber или Twitter Threads делу не поможешь. Навыки разработки приложений оттачиваются путем… ну, разработки приложений. Но часто на технических собеседованиях они даже не принимаются в расчет.
Читать дальше →
Всего голосов 116: ↑105 и ↓11+126
Комментарии397

Пароль не нужен. Разбиение файла на зашифрованные фрагменты по схеме Шамира

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


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

Например, простенькая утилита horcrux (крестраж*) разбивает файл на несколько зашифрованных частей (например, пять), причём для дешифровки и восстановления исходного текста не нужен пароль, а нужно найти и соединить несколько из этих частей (например, три). Предполагается, что сами отдельные части хранятся у разных людей в разных местах и/или надёжно спрятаны, например, в разных местах дома, сейфах, банковских ячейках и т. д.

*Крестраж — волшебный артефакт, созданный с помощью тёмной магии, из вселенной Гарри Поттера.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+29
Комментарии14

Как работают одноразовые пароли

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

Вступление


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

Прочитав эту небольшую статью, Вы разберетесь в принципе работы одноразовых паролей на основе хэшей, а заодно напишете на Python небольшую программу, которая умеет вычислять пароли для двухэтапной аутентификации Google.
Читать дальше →
Всего голосов 130: ↑126 и ↓4+122
Комментарии72

Керниган и Пайк были правы: делай что-то одно и делай это хорошо

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров27K
Роб Пайк и Брайан Керниган

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

Легенды computer science Брайан Керниган и Роб Пайк сформулировали в Program Design in the UNIX Environment паттерн архитектуры ПО, за сохранение которого оба боролись долгие годы.

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

Старые программы покрываются коркой сомнительных фич.

Суть статьи часто сводят к аббревиатуре DOTADIW, или «Do One Thing And Do It Well» («Делайте что-то одно и делайте это хорошо»). В Unix и его потомках есть множество программ, в которых воплощена эта мантра: ls просто создаёт список файлов, cat просто выводит содержимое файлов, grep просто фильтрует данные, wc просто подсчитывает слова и так далее. У каждой программы есть несколько опций, меняющих её поведение, но не слишком сильно. Например: wc можно сконфигурировать для подсчёта строк или слов, но не для подсчёта количества абзацев или вхождений какой-то фразы.

Мощь Unix, защищаемая Керниганом и Пайком, заключалась в возможности соединения этих простых программ в цепочку для создания сложных поведений. Зачем добавлять сопоставление регулярных выражений в wc, если с этим уже способна справиться grep?
Читать дальше →
Всего голосов 45: ↑41 и ↓4+57
Комментарии45

Docker: как создавать образы контейнеров и развертывать приложения

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

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

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

OWASP TOP-10: практический взгляд на безопасность веб-приложений

Время на прочтение11 мин
Количество просмотров199K
Хабр, привет! Мы — Иван Притула и Дмитрий Агапитов, занимаемся разработкой решений, которые делают жизнь людей проще и комфортнее. Сегодня мы хотим представить один из наших новых сервисов – это платежный агрегатор SimplePay. Все что мы делаем продиктовано мучительной невозможностью мириться с несовершенством в целом, и несовершенством конкретных программных решений в частности. Именно в погоне за совершенством и рождаются наши продукты. Стараемся мы изо всех сил, а уж насколько мы близки, судить не нам.

Чтобы Всем было интереснее, мы не будем рекламировать свой сервис (ну если только чуть-чуть). Вместо этого, мы подготовили первую серию публикаций, которая будет посвящена такой увлекательной и крайне актуальной теме, как безопасность Web-приложений. Мы постараемся раскрыть опасности, сопутствующие любому действующему интернет-проекту и простым языком донести всю важность ответственного подхода к рутинным, казалось бы, мелочам в вопросах безопасности данных. Надеемся наши статьи будут не бесполезны для Вас. Уверены, так Вы узнаете нас гораздо лучше.
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии7

Что ты такое, dhclient?

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

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

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

Начать погружение
Всего голосов 177: ↑176 и ↓1+221
Комментарии61

Почему за нарушение NDA чаще всего ничего не будет: в чём проблема большинства компаний

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

Привет! Я Наталья Новикова, юрист по договорам, автор книг в жанре фантастики и приключений.

Когда ИП-шки или юрлица просят меня составить NDA (соглашение о неразглашении коммерческой тайны), я сразу говорю: оно у вас не будет работать, не тратьте деньги.

Ну потому что это нужно создать целую систему, при которой можно реально отсудить у работника пару сотен тысяч рублей за слив информации. Это долго и требует постоянного внимания. Но почему-то у нас принято думать, что если сотрудник подписал пять листочков "Соглашения NDA", где написан штраф 1 000 000 рублей за разглашение любой секретной информации, то компания может спать спокойно: теперь за любой слив базы или отчёта о прибыли конкурентам она поимеет денег с того, кто их слил.

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

И ответов у компании, скорее всего, не будет.

Узнать, что дальше
Всего голосов 27: ↑20 и ↓7+20
Комментарии56

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

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

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее
Всего голосов 90: ↑87 и ↓3+114
Комментарии216

Как я заработал 500 000 рублей, сделав доступ к ChatGPT. А потом Яндекс убил SEO и всё (почти) закончилось

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

Статья о том, как я почти проспал "бум" ChatGPT, но сделал к нему доступ и заработал на этом (и продолжаю зарабатывать). Сам проект сейчас идёт на спад, но об этом в конце.

Читать далее
Всего голосов 78: ↑64 и ↓14+70
Комментарии170

Используем nftables в Red Hat Enterprise Linux 8

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

Статья подготовлена в преддверии старта курса «Администратор Linux»





В Red Hat Enterprise Linux 8 приоритетным низкоуровневым решением является nftables. В этой статье мы поговорим о том, как начать использовать nftables. Наиболее актуальной она будет для системных администраторов и DevOps-специалистов. Там, где это имеет смысл, мы поговорим о различиях между nftables и его предшественником — iptables.


Для начала необходимо отметить, что nftables – это userland-утилита, nft и подсистема ядра. Внутри ядра она строится на базе подсистемы netfilter. В этой статье мы будем говорить о взаимодействии пользователя с утилитой nft.


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

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

Краткий справочник по «всем-всем» командам Linux

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

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1171 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX
Всего голосов 105: ↑102 и ↓3+120
Комментарии114

Как получить первый опыт работы: 11 платформ для IT-волонтерства

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

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

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

Большой гайд по планированию. Как впихнуть в сутки 40 часов и оставить время на личную жизнь?

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

Всем привет, на связи команда Skill Vortex!

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

Перед ним стояла задача – каким-то чудом совместить стажировку на полную ставку, учебу в ВУЗе, изучение иностранного языка и личную жизнь.

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

В этой статье:

Чуть подробнее про историю

Начинаем первичную обработку: утечки, приоритезация и пожелания

Составляем нормальное расписание: 7 основных принципов

Ищем недостатки в получившемся

Еще пара универсальных советов

Заключение и полезные ссылки

Читать далее
Всего голосов 27: ↑19 и ↓8+22
Комментарии114

Прохожу собеседование у бота на английском для подготовки к реальному

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

Привет, Хабр! Недавно я вышел на рынок вакансий и решил рассказать о том, что происходит на собеседованиях и как к ним готовиться.

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

Ликбез по типизации в языках программирования

Время на прочтение12 мин
Количество просмотров514K
image

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

В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
Читать дальше →
Всего голосов 239: ↑232 и ↓7+225
Комментарии180

Gryffine — история одного пет-проекта

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

Как-то раз один знакомый сисадмин пожаловался мне на жизнь суровую. Он рассказал об одном инциденте в его конторе. Стоит оговориться, что контора небольшая и такой сущности как отдельный специалист по информационной безопасности там нет. Инцидент стандартный до банальности. Случайно заметили аномальную активность на линуксовых серверах. Подозрения сразу же подтвердились выводом команды who, который показал подключение по ssh с прокси-сервера с IP одной маленькой, но очень гордой страны. Дальше было то, что и положено в таких ситуациях, а именно: сменить доступы, понять откуда зараза по сети пошла, и что именно она делала. Доступы сменили, а вот когда полезли в логи, с удивлением обнаружил, что они уже несколько дней как пишутся в /dev/null, то есть у злоумышленника на сервере был root-доступ. Позже выяснили, что причиной была утечка пароля от аккаунта одного из сотрудников с доступом к sudo.

История, в общем-то, типичная, тысячи таких. Но меня она зацепила и побудила задаться вопросом: а как, собственно поймать хакера в тот самый момент, когда он попал на сервер впервые и пытается там закрепиться? Возможно, существуют enterprise-решения аудита и мониторинга входа на удалённую машину, но даже крупный бизнес с неохотой тратится на инфобез. Не говоря уже о небольших конторах с IT-отделом в 3,5 человека. Будем делать всё сами, благо в линуксах требуемая функциональность есть практически из коробки.

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

Как работают snap, flatpak, appimage

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

Распространение приложений в линуксе - это боль. Причем в наше время цикл обновлений приложений все уменьшается и эта боль чувствуется все сильнее. В связи с этим появляются технологии вроде snap, flatpak, которые декларируют решение этих проблем. Некоторые дистрибутивы (я смотрю на тебя, Ubuntu) даже начинают довольно агрессивную политику по их внедрению. Однако, несмотря на то, что про сами эти технологии много говорят (и ещё больше жалуются), про то, как они работают написано довольно мало. Попробуем исправить это.

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

Читать далее
Всего голосов 52: ↑50 и ↓2+67
Комментарии64

Требования ACID на простом языке

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

Мне нравятся книги из серии Head First O`Reilly — они рассказывают просто о сложном. И я стараюсь делать также.

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

Требования ACID — набор требований, которые обеспечивают сохранность ваших данных. Что особенно важно для финансовых операций. Мы же не хотим остаться без денег из-за разрыва соединения или ошибки в ПО, не так ли?

Читать далее
Всего голосов 13: ↑9 и ↓4+7
Комментарии10

NoSQL базы данных: понимаем суть

Время на прочтение9 мин
Количество просмотров582K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Всего голосов 137: ↑133 и ↓4+129
Комментарии75

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность