Как стать автором
Обновить
7
0
Vitaly Lyutarevich @Samehadar

Software Engineer

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

XSD — умный XML

Время на прочтение3 мин
Количество просмотров521K
XSD — это язык описания структуры XML документа. Его также называют XML Schema. При использовании XML Schema XML парсер может проверить не только правильность синтаксиса XML документа, но также его структуру, модель содержания и типы данных.

Такой подход позволяет объектно-ориентированным языкам программирования легко создавать объекты в памяти, что, несомненно, удобнее, чем разбирать XML как обычный текстовый файл.

Кроме того, XSD расширяем, и позволяет подключать уже готовые словари для описания типовых задач, например веб-сервисов, таких как SOAP.

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

Рассмотрим в качестве примера XSD документ, описывающий часть структуры аккаунта на хабре.



Читать дальше →
Всего голосов 59: ↑49 и ↓10+39
Комментарии34

Четыре способа получить аудио вк или «это не баг, а фича»

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

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

Читать далее
Всего голосов 70: ↑67 и ↓3+64
Комментарии58

Как я осилил английский

Время на прочтение13 мин
Количество просмотров347K
Всем привет. Я – айтишник «за 30», и я люблю английский язык. Так получилось, что на протяжении многих лет английский никак не хотел полюбить меня. Перед вами живой пример человека с «плохой памятью», «неспособностью к языкам», богатейшим опытом неудачного изучения английского как на курсах, так и самостоятельно, упущенными из-за незнания языка шансами и возникшими на этой почве комплексами. Все, что можно было сделать в изучении иностранного языка плохо, я попытался сделать еще хуже. Не смотря на все это, перед вами история с хэппи эндом, которая, верю, поможет кому-то избежать глупых ошибок, сэкономить время, избавится от иллюзий и предрассудков по поводу изучения нового языка с около нулевого уровня.
Читать дальше →
Всего голосов 155: ↑151 и ↓4+147
Комментарии256

Почему все «прутся» в IT

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

Люди уходят в IT отовсюду: из инженеров КИПиА, электротехников, начальников службы охраны, химиков, бухгалтеров, экономистов, металлургов, юристов, медбратьев, руководителей отдела рекламы. Люди уходят в IT в любом возрасте: в 20, 30, 40 лет и даже после 50. 

Зачем? Почему? Что им на месте не сидится? Почему все «прутся» в это IT? Есть несколько факторов, которые этому поспособствовали. Некоторые из них мы рассмотрим. Они на самые глобальные, но важные.

Читать далее
Всего голосов 248: ↑231 и ↓17+214
Комментарии913

Как мы помогли cybersport.ru справиться с The International 10

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

Наш клиент cybersport.ru — один из самых популярных информационно-новостных порталов про киберспорт в СНГ. По данным Similarweb, в октябре 2021 года у сайта было 16,5 млн посещений.

Обычно нагрузка на cybersport.ru даже во время значимых событий не превышает 400 RPS (requests per second). Так было до недавнего времени, точнее — до The International 10. Турнир вернулся после годичного перерыва из-за пандемии, что подогрело интерес к нему. Ажиотажа добавило и успешное выступление российских команд. В итоге во время турнира нагрузка достигала небывалых для сайта 2300 RPS.

Читать далее
Всего голосов 61: ↑59 и ↓2+57
Комментарии16

Два с половиной странных правила английского языка, которых не учат в школе

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

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

Но если с глаголами знакомы все, кто учит английский как второй, то некоторые необычные и странные правила в учебных программах упускаются. И многие студенты удивляются, когда впервые с ними сталкиваются в общении с носителями. О таких правилах сегодня и поговорим.

Читать далее
Всего голосов 80: ↑74 и ↓6+68
Комментарии188

Не работайте в плохих проектах

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

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


Читать дальше →
Всего голосов 220: ↑197 и ↓23+174
Комментарии574

Как в Яндекс.Такси ищут машины, когда их нет

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

Хороший сервис для заказа такси должен быть безопасным, надёжным и быстрым. Пользователь не станет вдаваться в детали: ему важно, чтобы он нажал кнопку «Заказать» и как можно быстрее получил машину, которая доставит его из точки А в точку Б. Если рядом нет машин — сервис должен сразу об этом сообщить, чтобы у клиента не складывалось ложных ожиданий. Но если плашка «Нет машин» будет высвечиваться слишком часто, то логично, что человек просто перестанет пользоваться этим сервисом и уйдёт к конкуренту.

В этой статье я хочу рассказать о том, как при помощи машинного обучения мы решали задачу поиска машин на территории с малой плотностью (проще говоря — там, где, на первый взгляд, нет машин). И что из этого вышло.
Читать дальше →
Всего голосов 50: ↑45 и ↓5+40
Комментарии58

Почему программисты не получают работу: четыре страшилки

Время на прочтение7 мин
Количество просмотров67K
tl;dr; В рекрутинге больше бардака, чем вы думаете. Расскажу четыре истории, где отличным инженерам отказали по причинам, абсолютно не связанным с их профессиональными знаниями или соответствием корпоративной культуре.

Когда люди не получают предложения о работе, то часто думают, что это их вина: «Меня отвергли три компании подряд, наверное, я никудышный инженер». Поработав некоторое время в ИТ-рекрутинге, могу вас заверить, что случайные факторы и шум (ложноотрицательные результаты) тоже играют важную роль. Часто отказы действительно вызваны случайными вещами и иррациональными причинами.

Страшилка № 1: кандидата отвергли из-за фреймворка


На позицию фронтенд-разработчика в агентстве я передал инженера, который участвовал в разработке ECMAScript и сделал значительный вклад в некоторые другие проекты open source. Мне понадобилось несколько недель, чтобы найти этого человека, и несколько часов для его правильной оценки, включая видеоинтервью (мы любим такое делать на coderfit.com). Его кандидатуру отверг программист из агентства после 10-минутного просмотра примеров кода. С ним даже не пообщались лично, а просто прислали «консерву» — шаблонное письмо по электронной почте:

«[…]Хотя ваше резюме и сопроводительное письмо очень конкурентоспособны, наши специалисты по найму рассмотрели вашу заявку и не выбрали её для дальнейшего рассмотрения. […]»
Читать дальше →
Всего голосов 107: ↑100 и ↓7+93
Комментарии694

Ад своими руками

Время на прочтение19 мин
Количество просмотров172K
Многие говорят – рассказывать надо не только об успехах, но и о неудачах. Полностью с этим согласен — понимание своих неудач, их причин и последствий, иногда ценнее любых успехов.

Был у меня в жизни такой опыт автоматизации, за который долгое время было стыдно. Не потому, что система плохо работала, или метаданные кривые были, или ТЗ не соответствовала — ровно наоборот. Все красиво, быстро, с полным внедрением во всей компании. С точки зрения формальных критериев это был полный успех.

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

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

Обо всем по порядку.
Читать дальше →
Всего голосов 294: ↑285 и ↓9+276
Комментарии313

Grafana как еще один инструмент для технического мониторинга создаваемых нами программных продуктов

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

Очередная статья в серии «Инструменты мониторинга Logicify» рассказывает о Grafana. Это программное средство мы используем для визуализации и анализа данных как внутренних, так и внешних проектов. Статья может быть полезна техническим директорам, разработчикам, DevOps, системным администраторам, менеджерам проектов, а также всем заинтересованным лицам.


image

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

10 неочевидных преимуществ использования Rust

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

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



Все это уже хорошо известно всем, кто хоть немного следит за развитием современных технологий программирования. Но что если вы не системный программист, да и многопоточного кода в ваших проектах не много, но вас все же привлекает производительность Rust'а. Получите ли вы какие-то дополнительные преимущества от его использования в прикладных задачах? Или все, что он вам даст дополнительно — это суровую борьбу с компилятором, который будет заставлять вас писать программу так, чтобы она неотступно следовала правилам языка по заимствованию и владению?


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

Читать дальше →
Всего голосов 97: ↑93 и ↓4+89
Комментарии121

Тема бронелифчиков в культуре Востока и Запада

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

......


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


Явление «бронелифчиков» существует уже довольно давно. Есть несколько вариантов названий, часто еще используется «бронетрусы», но смысл от этого не меняется. Бронелифчик это броня, которая предназначена для чего угодно кроме, собственно, защиты стратегически уязвимых мест.


Такая броня ужасно неудобна, она натирает и гарантирует носящему простуду в регионе со средним климатом и огромное количество укусов насекомых в регионах с теплым климатом. Ну и конечно же все колюще-режущие предметы которые в вас летят достигнут цели.


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


Для начала я бы хотела внести небольшое уточнение. Современный игропром сейчас буквально поделен на два лагеря — «Восток» и «Запад». Под Востоком обычно подразумевается Япония, чуть реже Китай или Корея, история и культуры которых взаимодействовали и переплетались веками. Запад это, по сути, все страны современной Европы (там практически каждая побывала чьей-нибудь колонией или имела колонии, что способствовало культурному обмену).


Какое это имеет отношение к бронелифчикам?


Игровая индустрия сейчас тоже разделена на восточную и западную. Если выбрать любую японскую или корейскую игру и любую европейскую а потом попросить человека угадать какая где, то абсолютное большинство угадает с первого раза. Серия TES и серия Metal Gear Solid. World of Warcraft и, например, Perfect World или более современная Black Desert, Лара Крофт и Байонетта.

Читать дальше →
Всего голосов 143: ↑133 и ↓10+123
Комментарии309

Синдром самозванца: что это и как от него избавиться

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

— А что делать со стрессом? – спросила она.
— Что вы имеете в виду под стрессом?
— Ну… Мне кажется, что я не смогу вписаться, что я не буду достаточно умной. И из-за этого я всё время чувствую стресс. Понимаете?

Девушка, с которой я разговаривала, стала первой в своей семье, вставшей на путь получения докторской степени. Она получила превосходные отметки по информатике в институте. Её приняли в элитарный университет, где она учится у ключевой фигуры в области человеко-компьютерного взаимодействия (human-computer interaction, HCI). По всем параметрам она отлично справляется. Но её гложут сомнения. Не по поводу института, куратора, темы – к ним она пылает страстью. У неё есть сомнения по поводу её самой и того, достойна ли она вообще обучаться по этой программе.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии19

Карты, счета, 2 баланса

Время на прочтение18 мин
Количество просмотров12K
Как знают держатели дебетовых банковских карт Райффайзенбанка, карта является лишь инструментом доступа к счету: она не имеет собственного баланса, по ней доступны только те средства, которые есть на текущем счете клиента. В этой статье мы расскажем об архитектуре технического решения, которое позволяет картам и счетам в нашем банке использовать единый баланс. И также вы узнаете о том, как был организован проект, который позволил нам эту архитектуру реализовать.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии23

Раздача халявы: нетормозящие треды в Java. Project Loom

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

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


Объясняем работу Project Loom на коробках с пиццей! Налетай!


Всё это снимается и пишется специально для Хабра.




Читать дальше →
Всего голосов 94: ↑82 и ↓12+70
Комментарии143

PE (Portable Executable): На странных берегах

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


Эта статья представляет из себя рассказ о том как устроены исполняемые файлы (в точку! Это именно те штуки, которые получаются после компиляции приложений с расширением .exe). После того, как написан код, подключены библиотеки, подгружены к проекту ресурсы (иконки для окон, какие-либо текстовые файлы, картинки и прочее) всё это компонуется в один единственный исполняемый файл, преимущественно с расширением .exe. Вот именно в этот омут мы и погрузимся.
*Статья находится под эгидой «для начинающих» поэтому будет изобиловать схемами и описанием важных элементов загрузки.
На палубу
Всего голосов 37: ↑32 и ↓5+27
Комментарии22

3 минуты, позволяющие улучшить любую встречу

Время на прочтение4 мин
Количество просмотров41K
У вас часто бывает, что вы забегаете на встречу (стендап, ретро, еженедельную встречу с коллегами, f2f с начальником — нужное подчеркнуть), а ваши мысли остаются где-то за пределами комнаты?

От банального «а выключила ли жена утюг, когда мы выходили из квартиры» до «что же хотел сказать босс последним письмом». Рой мыслей в голове может быть инспирирован как давно произошедшими событиями, так и предыдущей встречей.
Читать дальше →
Всего голосов 63: ↑54 и ↓9+45
Комментарии46

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

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

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →
Всего голосов 87: ↑82 и ↓5+77
Комментарии41

Словесная ролевая игра — самый старый формат полностью свободного мира в играх

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


Я опять хочу погрузить вас в мир странного опыта, который дают люди из игровой сферы. Прошлый раз был командир крупного альянса из Eve, а сегодня — Хаст и Тео, которые ведут коммерческие настольные словесные ролевые игры.

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

Это увлечение носит массовый характер в Америке и Европе, потому что куда интереснее сериалов и сетевых игр в правильных руках. В России это больше 25 лет был любительский «кухонный» формат, но вот уже пару лет как появились профессиональные Мастера. То есть ведущие, которые зарабатывают только этим себе на жизнь. Ранее такого извращения не наблюдалось.

Из опыта этих людей можно много почерпнуть для гейм-дизайна и вообще полезного. Но куда интереснее просто залезть и посмотреть, как устроен этот мир гиков.
Читать дальше →
Всего голосов 95: ↑94 и ↓1+93
Комментарии282

Информация

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