Как стать автором
Обновить
-18
0
Roman Suvorov @kikiwora

 Software Engineer 🇺🇦🇪🇺

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

Сети для начинающего IT-специалиста. Обязательная база

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

Примерно 80% из нас, кто заканчивает университет с какой-либо IT-специальностью, в итоге не становится программистом. Многие устраиваются в техническую поддержку, системными администраторами, мастерами по наладке компьютерных устройств, консультантами-продавцами цифровой техники, менеджерами в it-сферу и так далее.


Эта статья как раз для таких 80%, кто только закончил университет с какой-либо IT-специальностью и уже начал мониторить вакансии, например, на должность системного администратора или его помощника, либо выездного инженера в аутсорсинговую фирму, либо в техническую поддержку 1-й/2-й линии.


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


За время своей трудовой деятельности в сфере IT я столкнулся с такой проблемой, что в университетах не дают самую основную базу касательно сетей. С этим я столкнулся сначала сам, когда, после окончания университета, ходил по собеседованиям в 2016 году и не мог ответить на простые (как мне сейчас кажется) вопросы. Тогда мне конечно показалось, что это я прохалтурил и не доучил в университете. Но как оказалось дело в образовательной программе. Так как сейчас, я также сталкиваюсь с данным пробелом знаний, когда обучаю новых сотрудников.


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


Именно поэтому я решил собрать основные темы в одну статью и объяснить их как можно проще «на пальцах».

Читать дальше →
Всего голосов 77: ↑66 и ↓11 +55
Комментарии 99

Разгоняем Google PageSpeed до 100 и больше

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

Простые и полезные советы, которые позволят вам максимально разогнать сайт без необходимости закапываться в метриках Google PageSpeed и Lighthouse.
Читать дальше →
Всего голосов 21: ↑17 и ↓4 +13
Комментарии 65

Google Analytics и GDPR: а нужно ли согласие пользователя?

Время на прочтение 3 мин
Количество просмотров 6.2K
После публикации о том, как быстро проверить cookies на соблюдение GDPR, наиболее обсуждаемым оказался вопрос необходимости получения согласия пользователей при использования на сайте Google Analytics.

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

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

Выжить в лобовом столкновении, и почему амнезия это не то, что вы думаете

Время на прочтение 11 мин
Количество просмотров 79K
Привет Хабр.

Не так давно я попала в автокатастрофу, и на своём личном опыте испытала, что такое переломанные кости, тяжёлая черепно-мозговая травма и потеря памяти. В статье я также хочу поговорить о заблуждениях о симптоме амнезии в современной массовой культуре. Область довольно запутанная и противоречивая, но мне всё же захотелось структурировать известные данные и поделиться личным опытом.
Читать дальше →
Всего голосов 301: ↑297 и ↓4 +293
Комментарии 165

Немного практики функционального программирования в Swift для начинающих

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


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

Функциональное Программирование: Определение


Прежде всего, Функциональное Программирование — это не язык или синтаксис, а скорее всего — способ решения проблем путем разбиения сложных процессов на более простые и последующей их композиции. Как следует из названия "Функциональное программирование", единицей композиции для данного подхода является функция; и цель такой функции — избежать изменения состояния или значений за пределами своей области действия (scope).

В Мире Swift для этого есть все условия, ибо функции здесь являются такими же полноправными участниками процесса программирования, как и объекты, а проблема изменяемости (mutation) решается на уровне концепции value ТИПОВ (структур struct и перечислений enum), которые помогают управлять изменяемостью (mutation) и четко сообщают о том, как и когда это может произойти.

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

В этой статье мы сфокусируемся на использовании встроенных в Swift (то есть «из коробки») элементов Функционального программирования и понимании того, как можно их комфортно использовать в вашем приложении.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 18

10 навыков и знаний необходимых начинающему iOS разработчику

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

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

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

В этой заметке я поделюсь информацией про то, какие навыки и знания я считаю важными для начинающего iOS разработчика, попробую объяснить зачем они нужны и дам ссылки на материалы для их изучения. 
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 15

Почитать на каникулах. Лучшие посты в нашем блоге за 2018 год

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


Привет! Грядут новогодние каникулы, а с ними и некоторое количество свободного времени Собрали подборку популярых статей из нашего блога. Внутри деление → бекенд, фронтенд, команда, мобильная разработка.

Приглядитесь, даже если почитываете наш блог время от времени.
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 0

Xcode и продвинутая отладка в LLDB: Часть 1

Время на прочтение 5 мин
Количество просмотров 14K
Добрый день, сегодня предлагаю вам ознакомиться с переводом статьи об отладке iOS приложений при помощи LLDB.

Одна из самых интригующих частей презентации WWDC 2018, Xcode и продвинутая отладка в LLDB была представлена инженерами Apple. Они дали несколько полезных советов о том, как использовать точки остановки (breakpoints) в Xcode и низкоуровневый дебаггер (LLDB) для оптимизации процесса отладки багов, где бы разработчик их не поймал.

Статья состоит из трех частей, мы пройдемся по основным тезисам, что были сказаны на WWDC. Я создал демо проект специально для того, чтобы тщательнее разобраться как использовать различные типы точек остановки (breakpoints) совместно с LLDB для поимки и отладки багов в вашем приложении.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 0

Routing слой в iOS-приложениях

Время на прочтение 4 мин
Количество просмотров 17K
Случалось ли с вами, что вы открыли Storyboard и от увиденного вас начинают переполнять положительные эмоции?

В этот момент, возможно, вы задумываетесь, что хорошо продуманная навигация между экранами (в дальнейшем Routing) в крупных проектах может стать крайне значимой задачей, решение которой поможет экономить время и нервы всем, кто будет участвовать в проекте.
Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 25

Методы наименьших квадратов без слёз и боли

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


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

Итак, начнём. Давайте представим, что у меня есть триангулированная поверхность со сканом моего лица (на картинке слева). Что мне нужно сделать, чтобы усилить характерные черты, превратив эту поверхность в гротескную маску?



В данном конкретном случае я решаю эллиптическое дифференциальное уравнение, носящее имя Симеона Деми Пуассона. Товарищи программисты, давайте сыграем в игру: прикиньте, сколько строк в C++ коде, его решающем? Сторонние библиотеки вызывать нельзя, у нас в распоряжении только голый компилятор. Ответ под катом.
Читать дальше →
Всего голосов 54: ↑54 и ↓0 +54
Комментарии 58

CoreBluetooth на практике

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

Перевод статьи Practical CoreBluetooth for Peripherals


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

Об авторе: Йоав Шварц — ведущий iOS разработчик в Donkey Republic, системе байкшеринга в Копенгагене, стремящийся изменить отношение к велотранспорту. Далее речь пойдет от лица автора.

В этой статье я расскажу о практических приемах работы с CoreBluetooth. Сначала о Bluetooth Low Energy (BLE) потому, что не все знакомы с этой технологией, потом о CoreBluetooth, фреймворке от Apple, который даёт нам возможность взаимодействовать с устройствами BLE. Также я поведаю о некоторых приёмах в разработке, о которых сам узнал, пока занимался отладкой, плакал и рвал на голове волосы.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 7

Под капотом Graveyard Keeper: Как реализованы графические эффекты

Время на прочтение 5 мин
Количество просмотров 55K
Всем привет! Целых 4 года я не писал на Хабр. Последняя моя серия постов была о различных инструментах и приемах, которые мы применяли на нашей прошлой игре (разрабатывая ее на Unity). С тех пор игру ту мы благополучно выпустили, а также выпустили и новую. Так что теперь можно немного выдохнуть и написать несколько новых статей, которые могут быть кому-то полезны.


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

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

Для начала, кратко перечислю из чего собирается картинка в нашей игре:
Читать дальше →
Всего голосов 179: ↑178 и ↓1 +177
Комментарии 98

10 физических фактов, которые вы должны были узнать в школе, но, возможно, не узнали

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

1. Энтропия измеряет не беспорядок, а вероятность


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

Я бы сказала, что тесто. Но это состояние с большей энтропией. А если вы выберете вариант с яйцом на муке – как насчёт воды и масла? Энтропия выше, когда они разделены, или после того, как вы их яростно потрясёте, чтобы смешать? В данном примере энтропия выше у варианта с разделёнными веществами.

Энтропия определяется как количество “микросостояний”, дающих одно и то же “макросостояние”. В микросостояниях содержатся все детали по поводу отдельных составляющих системы. Макросостояние же характеризуется только общей информацией, вроде “разделено на два слоя” или “в среднем однородное”. У ингредиентов теста есть много разных состояний, и все они при смешивании превратятся в тесто, однако очень мало состояний сможет при смешивании разделиться на яйца и муку. Поэтому, у теста энтропия выше. То же работает для примера с водой и маслом. Их легче разделить, тяжелее смешать, поэтому у разделённого варианта энтропия выше.
Читать дальше →
Всего голосов 78: ↑68 и ↓10 +58
Комментарии 343

2ГИС вам на руку. Как мы добавили карту на Apple Watch

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


Apple Watch быстро завоевали популярность и стали самыми популярными часами в мире, опередив Rolex и остальных производителей. Идея создания приложения для часов витала в офисе 2ГИС с 2015 года.


До нас полноценное приложение с картой на часах выпустила только сама Apple. Приложение Яндекс.Карт отображает лишь виджеты пробок и время в пути до дома и работы. Яндекс.Навигатор, Google Maps, Waze и Maps.Me вообще недоступны на часах.


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


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


UPD.: https://github.com/teanet/DemoWatch

Про чудо-часы
Всего голосов 77: ↑77 и ↓0 +77
Комментарии 48

Эксперт Positive Technologies обнаружил возможность раскрытия ключей шифрования в Intel ME

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


Изображение: Unsplash

Intel устранила серьезную уязвимость в прошивке Intel ME. Эксперт Positive Technologies Дмитрий Скляров обнаружил ошибку в работе механизмов обеспечения безопасности MFS — файловой системы, которую ME использует для хранения данных. В результате эксплуатации этой уязвимости злоумышленники могут манипулировать состоянием MFS и извлечь некоторые важные секреты.
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Комментарии 34

Лучше, чем говорят: три необходимых вещи, чтобы следующий MacBook стал одним из лучших ноутбуков Apple

Время на прочтение 9 мин
Количество просмотров 31K
Это какая-то, наверное, особая форма слоупочества, но в середине весны, практически на пороге ожидавшегося тогда в июне релиза нового поколения MacBook, я запрыгнул в последний вагон поезда, из которого остальные уже собрались выходить — и стал обладателем «Макбука» пока ещё нынешнего поколения. Того самого, который без вентилятора, с одним портом USB-С на все случаи жизни и очень плохим паблисити после релиза.

Сама идея MacBook — тонкого, лёгкого и без встроенного пылесборника — меня захватила. Но негативные отзывы сразу настраивали интересоваться уже следующим поколением. Поэтому я даже не вспомнил про «Макбук», когда мне потребовался новый рабочий компьютер. Им стал 15-дюймовый MacBook Pro — мудрейший выбор для удалённо работающего человека, как мне казалось.


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

Выбор оказался ужасным. Для меня Pro 15" стал личным провалом. До такой степени, что, за 2 месяца до предполагаемого релиза следующего поколения (не случившегося ни тогда в июне, ни вчера, 12 сентября) — я купил розовый MacBook. В конце концов, чего мне опасаться его маломощности, когда самая ресурсоёмкая моя задача, обычно, браузер? (Спойлер: за пять месяцев поводов жаловаться на его мощность так и не возникло).
Читать дальше →
Всего голосов 97: ↑50 и ↓47 +3
Комментарии 371

Гид по ручному тестированию приложений: преимущества, этапы и методологии

Время на прочтение 12 мин
Количество просмотров 91K
Детально разбираем то, как проводить ручное тестирование, когда оно лучше автоматизированного, что нужно уметь тестировщику и как он может построить свою карьеру от джуниора до тест- лида. Гид подготовлен совместно с руководителем отдела тестирования компании Agima Дариной Гордеевой.



Привет! Меня зовут Дарина Гордеева. Работаю в компании AGIMA руководителем отдела почти 3 года. В области тестирования и обеспечения качества более 6 лет. За это время прошла путь от джуниора до руководителя отдела, занимаясь тестированием железа, а также мобильных и веб-приложений, автоматизацией и настройкой процессов QA. Сегодня я расскажу вам про особенности, возможности и скрытые проблемы ручного тестирования.
Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 3

Обзор OnePlus 6. Когда китайцы сделали все то же самое, что и в прошлый раз

Время на прочтение 5 мин
Количество просмотров 16K
В России многие любят китайские смартфоны. Как правило, при их покупке пользователь также приобретает ворох проблем в виде неотлаженного ПО и несбалансированной конфигурации. Впрочем, счастливые исключения есть — это, конечно же, телефоны Xiaomi и OnePlus. И если у первых есть решения самого разного ценового сегмента, то устройства OnePlus это всегда «топ или около того» на момент выпуска.


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

Безопасность начинается с домашнего машрутизатора

Время на прочтение 6 мин
Количество просмотров 21K
Автор статьи — архитектор решений безопасности (Security Solutions Architect) в подразделении CERT

В последнее время много внимания привлекла вредоносная программа VPNFilter, особенно после публичного объявления ФБР 25 мая и ряда объявлений от производителей устройств и компаний в области безопасности. Рассмотрим зловред VPNFilter: какие уязвимости он использует и как, оценим его влияние на интернет. Я также излагаю рекомендации для производителей устройств интернета вещей (IoT), в том числе домашних маршрутизаторов, которые стали целью VPNFilter. Поскольку в статье подчёркивается приоритетность нескольких критических уязвимостей, я повторю рекомендации, сделанные в марте 2017 года в статье о ботнете Mirai.

История уязвимостей


Статья в блоге Cisco о VPNFilter содержит подробные данные об устройствах, подверженных этой уязвимости, которая затронула «по крайней мере 500 тыс. сетевых устройств во всём мире». VPNFilter в некотором смысле похож на Mirai, поскольку тоже нацелен на устройства IoT, в частности, на домашние маршрутизаторы. Кроме того, сейчас известно, что ботнет Mirai использовал четыре 0day-эксплойта, кроме обычного подбора стандартных пар логин-пароль для компрометации устройств IoT. Недавно была обнаружена новая версия ботнета Mirai, тоже нацеленная на домашние маршрутизаторы.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 6

Учим Искусственный Интеллект играть в игру

Время на прочтение 6 мин
Количество просмотров 12K
Доброго времени суток, дорогой читатель!

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



Примечание: данная статья не объясняет термин "нейронная сеть" и всё, что с ним связано, а также не предоставляет базовую информацию об обучении сети методом трассировки. Рекомендуем кратко ознакомиться с этими понятиями до прочтения статьи
Читать дальше →
Всего голосов 27: ↑22 и ↓5 +17
Комментарии 6

Информация

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

Специализация

iOS Software Engineer
Middle
От 5 000 $
SWIFT
SwiftUI
Agile
TDD
Redux