Как стать автором
Обновить
21
0
Vasyl Liutikov @pingwinator

ios dev

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

Вы не умеете играть в Героев 3: 13 карт S-размера, которые вы не пройдете за вечер

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

Впервые Герои появились в моей жизни лет в 7. Как сейчас помню, зимние каникулы, тётя, старше меня на 16 лет (невероятно взрослая и крутая, слушает Металлику, у нее даже есть косуха), запускает с диска «Герои Меча и Магии III: Полное собрание». Я в предвкушении устраиваюсь сзади на диване, впереди лучшие часы для нас двоих. Для меня Геройский стрим (поиграть меня пустят только через пару лет), а для неё — несколько часов тишины.

За последние 15 лет моя игра в «Герои» не сильно менялась. Ну, сложность повыше, ну, компов побольше. Те же автосгенерированные карты, только сбоку. Если нападать, то на армию не сильно больше моей. Если магия, то жахнуть от души «Цепью молний», на крайний случай «Армагеддон», (если Черные Драконы есть). Но смысл один: строим Ратушу, захватываем Лесопилку, подбираем сундучок, скупаем прирост, отвоёвываем замок у компа. Приелось.

Сразу скачивать карту XXL-убийцу самооценки было стрёмно, а узнать, как играют тру-пацаны — интересно. Оказалось, некоторые картоделы давно уже создают карты-пазлы, с боями на подумать знание поведения ИИ, с использованием багов игры или просто на хитрую логистику. Таких карт-загадок меньше и они не очень популярны, но я нашла 13 шедевров Heroes Might and Magic III S-размера. (Будет очень много скриншотов).

Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^
Читать дальше →
Всего голосов 187: ↑178 и ↓9+220
Комментарии106

Минимизируем человеческий фактор в Swift

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

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

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

Использование Makefiles для проектов Swift

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

Использование Makefiles для проектов Swift

Make — это программное обеспечение для автоматизации сборки, которое можно использовать для автоматического выполнения различных команд. Если вы хотите что-то запустить, вам нужно указать свои команды (точнее: цели сборки) через Makefiles. В этом кратком туториале я покажу вам некоторые из моих лучших приемов для проектов на Swift. ?

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

Как настроить Gitlab CI/CD в связке с Fastlane для iOS-проектов на Mac mini

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

Всем привет! Меня зовут Ярослав Фоменко, я iOS-разработчик в компании Даблтап. Мы с моим коллегой по отделу с конца мая работаем над внедрением, улучшением и масштабированием CI/CD на наших проектах. В этой статье мы хотим поделиться гайдом по подготовке проекта в Xcode и настройке раннеров, скриптов и конфигов, а также расскажем, как нам помогает CI/CD.

О том, как и почему мы пришли к решению использовать Mac mini для CI/CD, можно почитать здесь.

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

Как работает Wine

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


Wine — это свободное программное обеспечение для запуска Windows-приложений на нескольких POSIX-совместимых операционных системах, включая Linux, macOS и BSD.

Если вы любите Linux, то наверняка когда-то запускали Wine. Возможно, для какой-то «важной» программы Windows, у которой нет аналога под Линуксом, или поиграться. Забавный факт: даже Steam Deck от Valve запускает игры через оболочку на основе Wine (она называется Proton).

За последний год я намучился с отладчиком, который позволяет одновременно дебажить и Wine, и Windows-приложение в нём. Разобраться во кишочках Wine оказалось очень интересно! Я-то раньше много им пользовался, но никогда не понимал механику целиком. Можно взять файл Windows — и просто запустить его в Linux без каких-либо изменений. Если вы хотите знать, как это сделано, добро пожаловать под кат.
Читать дальше →
Всего голосов 188: ↑187 и ↓1+230
Комментарии48

Наглядное руководство по SSH-туннелям

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

Прим. переводчика: автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для лучшего понимания того, как это работает, графически показывает потоки трафика.

Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.

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

Развёртывание Kubernetes-кластера на домашнем сервере

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

Дано: домашний сервер под управлением Debian 11 с установленным гипервизором Xen.

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

Развёртывание Debian и Xen, а также миграция с Hyper-V на Xen нескольких Windows-виртуальных машин описана в моей статье Миграция домашнего сервера с Hyper-V на Xen Project на Debian. В ней также описана конфигурация моей сети.

В данной статье я исхожу из того, что читатель имеет представление о том, что такое Kubernetes, как он работает, из каких компонентов состоит и знаком с необходимой терминологией. Многие идеи и код я брал из статьи Разворачиваем среду для работы с микросервисами. Часть 1 установка Kubernetes HA на bare metal (Debian), но местами адаптировал под свои нужды и окружение. Задача данной статьи дать читателям готовое решение, требующее минимальных усилий для повторения и, вместе с тем, не требующее дополнительных инструментов (вроде Ansible или Terraform), а также показать новичкам некоторые моменты работы с Linux, Kubernetes и используемыми пакетами. Повествование разбито на несколько шагов, каждый из которых заключается в запуске скрипта и нескольких ручных командах.

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

Различия между Docker, containerd, CRI-O и runc

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

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

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

Как я собрал домашний кластер Kubernetes на базе Raspberry Pi

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

Здесь есть поклонники Kubernetes? Я уже довольно давно пользуюсь им как на работе, так и в других местах, где занимаюсь частными проектами, но иногда мне нужно место, где можно быстро и без особых затрат разработать и протестировать новые функции или просто, как говорят, "поиграть с программой", скопировать данные в резервное хранилище, обменяться файлами или сделать что-либо подобное.

Я всё подсчитал и понял, что общая стоимость кластера получается ниже, чем стоимость облачных предложений аналогичной вычислительной мощности с таким же количеством нод. В преддверии старта нашего курса по DevOps, делимся с вами описанием сбора собственного домашнего кластера Kubernetes.

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

Практическое руководство по TypeScript для разработчиков

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

Представляю вашему вниманию перевод статьи "Working With TypeScript: A Practical Guide for Developers".


Что такое TypeScript?


TypeScript — это популярный статический типизатор (static type checker) или типизированное надмножество (typed superset) для JavaScript, инструмент, разработанный Microsoft и добавляющий систему типов к гибкости и динамическим возможностям JavaScript.


TypeScript развивается как проект с открытым исходным кодом, распространяется под лицензией Apache 2.0, имеет очень активное и высокопрофессиональное сообщество, а также огромное влияние на экосистему JavaScript.


Установка TypeScript


Для того, чтобы начать работу с TypeScript, нужно либо установить специальный интерфейс командной строки (command line interface, CLI), либо воспользоваться официальной онлайн-песочницей или другим похожим инструментом.

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

Как настроить быстрый персональный VPN в Azure

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

Всем привет! Я расскажу о том как в течении 10 минут создать личный VPN сервер в нужном регионе.

Очевидно, что для настройки потребуется доступ к Azure. Я сделал такой доступ через Azure Benefit (google 'how to activate azure benefit for msdn subscribers'). В марте-апреле этого года данная штука активировалась для жителей нашей страны, а вот в этом месяце с этим как мне сказали уже есть проблемы. В таком случае - обращайтесь к друзьям с доступом к Azure.

В статье будет максимально простая инструкция с большим количеством картинок.

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

Что нужно знать про Postman: максимально коротко о Mock Servers, Flow и Visualize

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

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

В этой статье я решил сделать краткий обзор функциональности Visualize, Mock Servers и Flow.

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

Простой способ обнаружить retain cycle в UIViewController

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

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

Apple предлагает отличный инструмент для отладки утечек памяти. Часто для этого используется метод print в deinit.

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

OAuth в мобильных приложениях

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

Привет! Меня зовут Максим, я занимаюсь мобильной разработкой в KTS.

Ни один сервис не обходится без логина. Часто в мобильных приложениях требуется интегрировать вход через сторонние соцсети — например, зайти через Google или VK. А при обучении мобильной разработке используются открытые API, где для авторизации используется OAuth.

Поэтому разработчикам мобильных приложений приходится работать с OAuth. В сети по этой теме есть разрозненные материалы. 

Этой статьей я попробую закрыть нюансы OAuth в мобильных приложениях: на какие моменты стоит обратить внимание, какие способы реализации выбрать. А также поделюсь опытом настройки OAuth в Android-приложении с использованием библиотеки AppAuth.

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

Многострадальный C++ и системы сборки

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

Очередная статья на тему "автор жалуется как ему всё не нравится".В C++ есть вещи, которые меня бесят не только в языке и новых стандартах, но и его компиляторах и системах сборки.

Читать далее
Всего голосов 49: ↑18 и ↓31-13
Комментарии138

Анатомия асинхронных фреймворков в С++ и других языках

Время на прочтение20 мин
Количество просмотров43K
Привет! В этой статье я расскажу об устройстве асинхронных движков с корутинами и без них. Для начала сосредоточимся не на конкретном движке, а на том, почему во всех популярных языках программирования появились корутины и чем они так хороши. Это может быть интересно не только C++-разработчикам, но и всем, кто занимается разработкой сетевых приложений или интересуется архитектурой современных фреймворков.

Пройдёмся по разным архитектурам построения серверов — от самой простой синхронной к более интересным, посмотрим на типичную архитектуру корутинового движка, а после окунёмся в дебри C++ и взглянем на самое страшное на примере нашего фреймворка userver.

Пишем синхронный сервер


Представьте, что у вашего сервиса очень маленькая нагрузка — 100 rps, и вам дали задачу написать простой сервер, понятный каждому второму школьнику. У вас получится что-то наподобие следующего:

void naive_accept() {
  for (;;) {
    auto new_socket = accept(listener);

    std::thread thrd([socket = std::move(new_socket)] {
      auto data = socket.receive();
      process(data);
      socket.send(data);
    });

    thrd.detach();
  }
}
Читать дальше →
Всего голосов 56: ↑53 и ↓3+63
Комментарии32

Dart, Flutter и кроссплатформа: небольшой разбор на практике

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

Кто-нибудь пробовал использовать Dart / Flutter как на клиенте на нескольких платформах, так и в качестве сервера? Кто-то, конечно. пробовал, хотя далеко не каждый за этим приходил к Flutter. Я на своём pet-проекте провёл такой эксперимент, и хотел бы поделиться результатами и выводами.

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

Flutter vs Native: почему мы переходим с первого на второй

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

Привет, Хабр! Меня зовут Сергей, я занимаюсь мобильной разработкой 13 лет и недавно стал руководителем разработки мобильного приложения «Пункты выдачи заказов» в Ozon. Невольно став сместителем существующего строя в проекте (фреймворки, технологии, подход), я стал часто слышать вопрос: «Почему вы отказались от Flutter?».

Слышал я этот вопрос прежде всего от разработчиков моей команды и соискателей на наши вакансии, потом во время доклада на эту же тему на конференции Panda Meetup, в конце концов, даже менеджер нашего проекта подошёл с вопросом: «Ну а всё же почему?». Настолько людей захватывает эта тема, что я решил поделиться развёрнутым ответом.

Читать далее
Всего голосов 46: ↑30 и ↓16+23
Комментарии117

Память в Swift (куча, стек, ARC)

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

Для хранения объектов Swift использует две структуры данных: стек и кучу. Управление распределением памяти подразумевает выделение памяти под объект (аллокацию) и ее последующее высвобождение (деаллокацию).

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

Знакомимся с программированием на ассемблере x86

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

Архитектура x86 лежит в сердце процессоров, на которых уже более трех десятилетий работают наши домашние компьютеры и удаленные серверы. Умение читать и писать код на низкоуровневом языке ассемблера – это очень весомый навык. Он позволяет создавать более быстрый код, использовать недоступные в Си возможности машин и выполнять реверс-инжиниринг скомпилированного кода.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+45
Комментарии15

Информация

В рейтинге
Не участвует
Откуда
Stuttgart, Baden-Württemberg, Германия
Зарегистрирован
Активность