Как стать автором
Обновить
6
0
Azat Galiev @GaryFreeman

.NET/Angular Software Engineer

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

Computer Science: книги, от новичка до профи

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

What’s up guys?

Computer Science – грубо говоря - наука о компьютерах. Она объединяет всё, что программист должен знать о компьютерах и работе с ними для создания эффективных программ и алгоритмов. Программисты бывают разные, и как правило отличаются только языком, на котором пишут, но всех их объединяет необходимость понимать основы этой науки для понимания того, как работает компьютер.

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

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

Основы архитектуры IIS, или запросопровод для ASP.NET

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



В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.
Познать...
Всего голосов 71: ↑59 и ↓12+47
Комментарии9

Да кому я нужен! Ещё раз доходчиво про защиту персональных данных

Время на прочтение10 мин
Количество просмотров30K
Обожаю свою френдленту в Facebook. Каждый квартал непременно появляются пафосные посты о запрете несчастному Марку забирать персональную информацию в свою метавселенную. Они непременно перемежаются фотографиями и многочисленными результатами тестов и микроиграми. Это же никак не затрагивает персональные данные, правда? Своих друзей-айтишников я тоже обожаю: VPN, почта на протон мейле, везде разные пароли, каждый из которых не короче 12 символов, данные шифруются, поиск по возможности в DuckDuckGo, если нужда прижмёт, то в режиме инкогнито, разговоры — по кнопочному телефону. При этом самое ценное в их браузере: часть рабочего кода, сериалы, Хабр, Пикабу и иногда пикантный контент (по слухам, по слухам). Это две крайности, которые вроде вызывают улыбку, но в то же время обнажают важнейшую социокультурную составляющую нового мира — уважение к персональным данным и стремление их защитить.

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


Читать дальше →
Всего голосов 45: ↑40 и ↓5+59
Комментарии62

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

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

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Всего голосов 336: ↑324 и ↓12+411
Комментарии300

«Кастомные» клавиши для механической клавиатуры

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

Здравствуйте, товарищи!
В новогодние каникулы дошли руки доделать кастомный набор клавиш для моей механической клавиатуры. Нанесение легенд на клавиши делалось по технологии сублимационной печати (анг. Dye-sublimation, dye-sub) и цель этой заметки - поделиться полученным опытом.

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

Что нужно знать, чтобы быть синьором?

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

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

Ну-ка, ну-ка...
Всего голосов 165: ↑147 и ↓18+151
Комментарии258
Собираетесь перейти в IT или повысить квалификацию? Мы собрали все образовательные инициативы Microsoft в подобие адвент-календаря, чтобы было удобно ориентироваться.
Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии5

Создание и опыт использования клавиатуры Dactyl LightCycle

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

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

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

Клавиатур «правильного» форм-фактора крайне мало. Есть хороший вариант Kinesis Advantage, но это редкость даже за рубежом, а в России их раздобыть практически невозможно. Поэтому я решил взять производство в свои руки. И вот что из этого получилось.

Читать далее
Всего голосов 49: ↑48 и ↓1+58
Комментарии44

Как без усталости кодить по восемь с лишним часов

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


Всю свою жизнь я писал код неправильно.

Я думал, что достаточно просто сесть за стол, открыть ноутбук, выбрать задачу из моего списка to-do и кодить, пока не устану.

Но на самом деле такой стиль работы убивал мой уровень продуктивности спустя 2–4 часа написания кода. Я ощущал себя таким уставшим, что мне не хотелось ничего, кроме как других задач, требующих низких затрат энергии (например, code review).

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

Что же изменилось?

Мой подход к работе.

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

В статье я расскажу, как этого достиг.
Читать дальше →
Всего голосов 92: ↑64 и ↓28+51
Комментарии150

RBAC? ABAC?.. PERM! Новый подход к авторизации в облачных веб-службах и приложениях

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

Принципиальная схема процесса авторизации с помощью Casbin


Данная статья преследует цель рассказать о новом походе к авторизации в облачных решениях, в основе которого лежит использование интерпретируемого языка определения политики управления доступом — который называется языком моделирования PERM (PML). Данный язык можно использовать для выражения различных моделей управления доступом, таких как список управления доступом (ACL), управление доступом на основе ролей (RBAC), управление доступом на основе атрибутов (ABAC) и других. А также рассказать о практическом воплощении этого подхода в виде конкретной реализации кросс-языковой библиотеки авторизации Casbin

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

Как сделать хорошую интеграцию? Часть 2. Идемпотентные операции – основа устойчивой интеграции

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

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

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

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

Как сделать хорошую интеграцию? Часть 1

Время на прочтение11 мин
Количество просмотров22K
Вопрос в заголовке включает в себя неочевидную часть, ведь перед тем, как рассказывать про создание хорошей интеграции стоит определить, какую интеграцию мы считаем хорошей. А ответ на этот вопрос не однозначен.

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


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

Security Week 50: zero-click уязвимость в iPhone, атака на постаматы

Время на прочтение3 мин
Количество просмотров5.6K
Главная новость прошлой недели посвящена уже закрытой уязвимости в мобильных устройствах Apple, обеспечивающей полный взлом устройства с кражей данных, удаленно и без вмешательства пользователя. Набор последствий от эксплуатации дыры в софте можно было бы считать максимально серьезным, если бы не один нюанс: атакующему нужно находиться в пределах радиодоступности от телефона жертвы. Атака эксплуатирует систему Apple Wireless Direct Link (AWDL), используемую в том числе для функциональности AirDrop — передачи данных между мобильными устройствами напрямую.


Уязвимость нашел исследователь из команды Google Project Zero Иэн Бир (Ian Beer). Он опубликовал 1 декабря обширную статью, в которой рассказал в деталях как про саму уязвимость, так и про историю ее обнаружения. Простое описание уязвимости мало отличает ее от других: с устройством жертвы устанавливается соединение через AWDL, отправляется серия подготовленных пакетов, вызывающих переполнение буфера и выполнение произвольного кода. Многостраничный блогпост показывает, что на самом деле все гораздо сложнее. Исследователь много раз мог отступиться и ограничиться демонстрацией DoS-атаки, падения устройства на базе iOS или macOS. Но все же довел дело до конца: на видео атаки он за две минуты взламывает собственный iPhone и еще за три крадет с него персональные данные.
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Управление плеером Yandex.Music в OSX, используя клавиатуру без медиа клавиш

Время на прочтение2 мин
Количество просмотров30K
Недавно я принял решение развернуть в офисе на рабочем компьютере Hackintosh. Все получилось. Единственное, что мне не нравилось это отсутствие медиа клавиш на офисной клавиатуре. Ими я привык управлять музыкой, в том числе на сервисе Yandex.Music. Данная статья посвящена тому, как я исправил ситуацию.

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии26

.NET в целом: обзор от Скотта Хансельмана

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


Скотт Хансельман — ключевой человек для .NET-сообщества: например, на конференции Microsoft Build он ведёт презентацию для разработчиков, а у его микроблога в Twitter около 250 000 подписчиков.


При этом в мире .NET он очень давно. Ещё в 2003-м преподавал C#, то есть был глубоко погружён в тему практически с её появления. А последние 13 лет работает в Microsoft, наблюдая за всем изнутри и общаясь с разработчиками из других компаний.


Поэтому ему хорошо видна общая картина: он лично наблюдал, как эта экосистема развивалась со временем, и знает, как она используется разными разработчиками для разных целей. И этим летом на нашей конференции DotNext он выступил с докладом, посвящённым не каким-то конкретным деталям, а как раз общему обзору .NET — от прошлого до будущего. А мы решили сделать для Хабра текстовую расшифровку, чтобы стало можно не только посмотреть доклад на английском, но и прочитать на русском.

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

Введение в реактивное программирование

Время на прочтение11 мин
Количество просмотров50K
Здравствуйте. В этой статье я пробегусь галопом по Европам, а именно — расскажу, что понимают под реактивным программированием, познакомлю с акторами, реактивными потоками, и наконец, при помощи реактивных потоков мы сделаем распознавание мышиных жестов, как в старой Opera и её духовном наследнике — Vivaldi.

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

image
Источник
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии20

DevOps Roadmap или пора бы автоматизироваться?

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

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

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

Всё, что вы хотели знать о безопасном сбросе паролей. Часть 2

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

Двухфакторая аутентификация


Всё прочитанное вами в первой части касалось идентификации на основании того, что знает запрашивающий. Он знает свой адрес электронной почты, знает, как получить к ней доступ (т.е. знает свой пароль от электронной почты) и знает ответы на секретные вопросы.

«Знание» считается одним фактором аутентификации; двумя другими распространёнными факторами являются то, что у вас есть, например, физическое устройство, и то, кем вы являетесь, например, отпечатки пальцев или сетчатка глаза.


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

Пожалуй, лучшая архитектура для UI тестов

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

Наверное, где-то есть идеальная статья, сразу и полностью раскрывающая тему архитектуры тестов, легких и в написании, и в чтении, и в поддержке, и так, чтобы быть понятной начинающим, с примерами реализации и областей применения. Хочу предложить свое видение этой «идеальной статьи», в том формате, о котором мечтала, только получив первую задачу «напиши автотесты». Для этого расскажу о известных и не очень подходах к автотестам веба, зачем, как и когда их применять, а также про удачные решения хранения и создания данных.
Читать дальше →
Всего голосов 11: ↑8 и ↓3+9
Комментарии4

Blazor: Техническое введение

Время на прочтение10 мин
Количество просмотров79K
Сегодня команда ASP.NET анонсировала, что проект Blazor был перемещён в репозиторий организации ASP.NET. Мы начинаем стадию эксперимента, чтобы понять сможем ли мы развить Blazor в поддерживаемый продукт. Это большой шаг вперёд!

image

Что такое Blazor? Это фреймворк для браузерных приложений, написанный на .NET и запускающийся с помощью WebAssembly. Он даёт вам все преимущества богатых современных одностраничных приложений (SPA), позволяя при этом использовать .NET от начала и до конца, вплоть до общего кода на сервере и клиенте. В посте с анонсом подробно описаны основные случаи применения, сроки и так далее.

В этом посте я хочу поглубже поговорить о технических деталях для тех, кому интересно как же это работает.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии46
1

Информация

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