@Lucky715read-only
User
4 min
В новом выпуске дайджеста альтернативный магазин приложений для iOS и тонкости публикации в старом Google Play, фреймворк автотетсирования и кодлабы по Kotlin, спрайтовые персонажи и 6 подкастов за неделю, гиперточные карты и тонкости дейтинга.
Agones, создаем многопользовательский игровой сервер. Архитектура и установка
5 min
8.5KTutorial
Agones (от др.-греч. agōn — «соревнование») позволяет развернуть кластер игрового сервера используя Kubernetes с возможностью Auto-Scaling. Этот open-source проект был создан в 2018 году, уже набрал 2500 звезд, был на Google I/O 2019, и на Хабре, к великому удивлению, еще не был упомянут. В топике описан краткий экскурс в архитектуру и инструкция по запуску тестового сервера на локальной машине. Если интересно, добро пожаловать под кат, вперед!
+10
Дайджест свежих материалов из мира фронтенда за последнюю неделю №382 (22 — 29 сентября 2019)
4 min
11KПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
+27
Применение формальных методов валидации моделей для UI
9 min
4.1KПривет, Хабр! Представляю вашему вниманию перевод статьи «FORMALLY SPECIFYING UIS» автора Hillel Wayne.
Относительно недавно я наткнулся на статью про Инженерные методы в разработке ПО, где vasil-sd рассказал про формальную валидацию спецификаций к создаваемым программным продуктам. В качестве инструментария был использован Alloy. Одним из основных лейтмотивов в комментариях был — разобрать статью в контексте какого-нибудь современного веб проекта, потому что дорого\долго\сложно использовать формальные методы там, где все делают быстро\дешево. Так как автор ссылался на блог Hillel Wayne, где такие примеры были, я решил перевести что-то из его статей в качестве дополнения к основному тексту vasil-sd
Предупреждение:
От автора
Относительно недавно я наткнулся на статью про Инженерные методы в разработке ПО, где vasil-sd рассказал про формальную валидацию спецификаций к создаваемым программным продуктам. В качестве инструментария был использован Alloy. Одним из основных лейтмотивов в комментариях был — разобрать статью в контексте какого-нибудь современного веб проекта, потому что дорого\долго\сложно использовать формальные методы там, где все делают быстро\дешево. Так как автор ссылался на блог Hillel Wayne, где такие примеры были, я решил перевести что-то из его статей в качестве дополнения к основному тексту vasil-sd
Предупреждение:
- Все, что автор называет finite-state machine, я буду называть конечным автоматом или моделью конечного автомата.
- Часть терминологии я почерпнул из статьи, ранее мною упомянутой, об инженерном подходе к разработке. Тем не менее, тема для меня относительно новая, потому обоих авторов(как зарубежного, так и не очень) мог понять не так — не ругайтесь.
+17
Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен
10 min
46KTranslation
Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с комментариями на Hacker News, которые добавляют весомые контр-аргументы и дополняют точку зрения автора, его статья стала одним из самых интересных постов недели. В статье используется термин «дизайн кода» для сравнения с традиционной «архитектурой» — о нем подробнее можно прочитать здесь.
На мою долю выпало достаточно опыта в проектировании и создании крупномасштабных систем. Я принимал участие в переписывании распределенной системы платежей в Uber, проектировании и релизе Skype на Xbox One и выпуске в открытый доступ RIBs — мобильного архитектурного фреймворка, созданного в Uber. Все эти системы имели тщательно продуманный дизайн, прошли через несколько итераций, с ними связано множество совещаний, проведенных у маркерной доски, и других обсуждений. Затем придуманный дизайн сводился к дизайн-документу, который распространялся среди других разработчиков для сбора дополнительной обратной связи, который продолжался до тех пор, пока мы не переходили к разработке.
Все эти системы отличали большие масштабы: их создавали сотни разработчиков — или они использовали их в своих разработках — и сегодня они бьются в сердцах систем, которыми ежедневно пользуются миллионы людей. Причем, эти проекты создавались не с нуля. Система платежей должна была заменить две другие существующие платежные системы, используемые десятками других систем и дюжинами команд, и все это — без какого-либо ущерба для бизнеса. Переписывание приложения Uber было проектом, над которым одновременно работало несколько сотен инженеров — он включал в себя портирование всей существующей функциональности на новую архитектуру.
+59
Какой шум помогает концентрироваться и отдыхать, а еще — предотвращает потерю слуха при серьезных ДТП
4 min
31KНикто не любит шум, и на то есть причины. Одно только шумовое загрязнение от автомобильных магистралей наносит ущерб здоровью каждого третьего европейца. А по данным ВОЗ, каждый год жители крупных городов суммарно тратят 750 млрд долларов на лечение заболеваний, связанных с потерей слуха из-за шума того или иного происхождения. Но есть шумы, которые не только не вредят здоровью, но помогают его сохранить, а также сконцентрироваться и расслабиться.
+28
Как работает децентрализованный мессенджер на блокчейне
8 min
29KВ начале 2017 мы начали создавать мессенджер на блокчейне [название и ссылка есть в профиле] с обсуждения преимуществ перед классическими P2P-мессенджерами.
Прошло
Сегодня мы расскажем, как устроен мессенджер на блокчейне и как клиентским приложениям работать с его API.
Прошло
2.5
года, и нам удалось подтвердить свой концепт: сейчас доступны приложения мессенджера для iOS, Web PWA, Windows, GNU/Linux, Mac OS и Android.Сегодня мы расскажем, как устроен мессенджер на блокчейне и как клиентским приложениям работать с его API.
+24
Взгляд изнутри: аспирантура в EPFL. Часть 4.2: финансовая сторона
18 min
9.2KTutorial
Посещая любую страну, важно не путать туризм с эмиграцией.
Народная мудрость
Сегодня я хотел бы рассмотреть, пожалуй, самый животрепещущий вопрос – баланс финансов при учёбе, жизни и работе за рубежом. Если в предыдущих четырёх частях (1, 2, 3, 4.1) я, как мог, старался избегать этой темы, то в данной статье мы подведём жирную черту под многолетней статистикой баланса заработной платы и расходов.
Disclaimer: Тема деликатная, и очень немногие готовы её освещать открыто, однако я попробую. Всё, что изложено ниже – попытка рефлексии на окружающую действительность, с одной стороны, а также выставление некоторых ориентиров для стремящихся в Швейцарию – с другой.
+23
2. Типовые сценарии использования Check Point Maestro
7 min
4.4KСовсем недавно компания Check Point презентовала новую масштабируемую платформу Maestro. Мы уже публиковали целую статью о том, что это такое и как оно работает. Если коротко — позволяет почти линейно увеличивать производительность шлюза безопасности путем объединения нескольких устройств и балансировки нагрузки между ними. Удивительно, но до сих пор сохраняется миф, что эта scalable платформа подходит только для больших датацентров или для гигантских сетей. Это совершенно не так.
Check Point Maestro разрабатывался сразу для нескольких категорий пользователей (мы рассмотрим их чуть позже), среди который есть и средний бизнес. В этом небольшом цикле статей я постараюсь отразить технические и экономические преимущества Check Point Maestro для организаций среднего размера (от 500 пользователей) и почему этот вариант может быть лучше классического кластера.
+10
Два любопытных эксперимента над человеческим мозгом, о которых стоит знать
4 min
21KПервый эксперимент, даже серия экспериментов, была проведена советскими психиатрами в середине прошлого века. Название и авторы этой научной монографии за давностью лет уже стерлись у меня из памяти, поэтому перескажу основные моменты просто от себя.
Это исследование о делегировании разных функций левому и правому полушариям головного мозга. И любопытное там начинается сразу – с методологии исследования. Ибо это не какой-то софт с полями зрения от американских и британских психологов. Это истинный хардкор.
Дело в том, что в середине XX века ситуация с правами человека во всем мире была, мягко говоря, так себе. ГУЛАГ, расовая сегрегация, Гитлер, в конце концов. Ну, а если человек был психиатрический пациент – это, по сути, была подопытная свинка. Им делали электрошок, отрезали куски мозга, и всё это, практически без контроля со стороны гражданского общества.
Одним из методов лечения было оперативное вмешательство в мозг, с целью полного разрушения нервных связей между левым и правым полушарием. Вроде, они припадки так лечили, и, вроде как, даже получалось, не суть. Суть в том, что на выходе человек получался с головным мозгом, в котором два полушария совершенно не общаются между собой. Ему эти связи попросту рассекали скальпелем в ходе операции. И он потом с этим жил всю оставшуюся жизнь.
Это исследование о делегировании разных функций левому и правому полушариям головного мозга. И любопытное там начинается сразу – с методологии исследования. Ибо это не какой-то софт с полями зрения от американских и британских психологов. Это истинный хардкор.
Дело в том, что в середине XX века ситуация с правами человека во всем мире была, мягко говоря, так себе. ГУЛАГ, расовая сегрегация, Гитлер, в конце концов. Ну, а если человек был психиатрический пациент – это, по сути, была подопытная свинка. Им делали электрошок, отрезали куски мозга, и всё это, практически без контроля со стороны гражданского общества.
Одним из методов лечения было оперативное вмешательство в мозг, с целью полного разрушения нервных связей между левым и правым полушарием. Вроде, они припадки так лечили, и, вроде как, даже получалось, не суть. Суть в том, что на выходе человек получался с головным мозгом, в котором два полушария совершенно не общаются между собой. Ему эти связи попросту рассекали скальпелем в ходе операции. И он потом с этим жил всю оставшуюся жизнь.
+8
Как я провела лето ВКонтакте
7 min
19KЛето закончилось, а вместе с тем закончилось и большинство летних стажировок в IT-компаниях. В этом году мне повезло пройти летнюю стажировку ВКонтакте. Это были без преувеличения самые насыщенные два месяца в моей жизни, и мне очень хочется рассказать о том, как это было.
+5
Регистрируем свой ИТ-бизнес в Сингапуре: what should I do?
9 min
3.9KRecovery Mode
Здравствуйте, коллеги!
Мой прошлый материал был раскритикован по двум критериям: неверное авторство цитаты и ошибка, связанная с подбором картинки. Поэтому я решила, во-первых, провести воспитательную беседу с фотокором. А во-вторых, тщательно проверять используемые высказывания и, что немаловажно, при необходимости немного изменять их, дабы меня не обвиняли ещё и в незнании английского.
Именно поэтому планируемую изначально вторую часть заголовка «What can I do» (автор Алан Силсон, исполняет группа Smokie) пришлось переделать на «What should I do», так как «могу» и «должен» — глаголы совершенно разные, причём второй является гораздо более правильным в контексте темы статьи, чем первый. За всё остальное, включая практическую полезность материала, точность приводимых фактов и алгоритмов действия, я несу полную ответственность перед читателями.
+4
История одного удачного применения SRP в Legacy проекте
4 min
1.2KВ этой статье я расскажу на примере эволюции своего проекта историю перехода и видение контрактного программирования.
Сначала хотел назвать статью — «Контрактное программирование», постольку поскольку используемый подход заключается в разделении всей бизнес-логики на дата-контракты и сервис-клиенты использующие эти контракты и взаимодействующие друг с другом через эти структуры данных, таким образом, что одна и та же структура успешно обрабатывается в разных сервисах.
Что-то я буду описывать своим языком.
Сначала хотел назвать статью — «Контрактное программирование», постольку поскольку используемый подход заключается в разделении всей бизнес-логики на дата-контракты и сервис-клиенты использующие эти контракты и взаимодействующие друг с другом через эти структуры данных, таким образом, что одна и та же структура успешно обрабатывается в разных сервисах.
Что-то я буду описывать своим языком.
+8
Антипаттерны в React или вредные советы новичкам
7 min
12KПривет, Хабр.
Ровно год прошел с момента, как я начал изучать React. За это время я успел выпустить несколько небольших мобильных приложений, написанных на React Native, и поучаствовать в разработке web-приложения с использованием ReactJS. Подводя итог и оглядываясь назад на все те грабли, на которые я успел наступить, у меня родилась идея выразить свой опыт в виде статьи. Оговорюсь, что до начала изучения реакта, у меня имелось 3 года опыта разработки на c++, python, а также мнение, что во фронтенд разработке нет ничего сложного и разобраться во всем мне не составит труда. Поэтому в первые месяцы я пренебрегал чтением обучающей литературы и в основном просто гуглил готовые примеры кода. Соответственно, примерный разработчик, который первым делом изучает документацию, скорее всего, не найдет для себя здесь ничего нового, но я все-таки считаю, что довольно много людей при изучении новой технологии предпочитают путь от практики к теории. Так что если данная статья убережет кого-то от граблей, то я старался не зря.
Ровно год прошел с момента, как я начал изучать React. За это время я успел выпустить несколько небольших мобильных приложений, написанных на React Native, и поучаствовать в разработке web-приложения с использованием ReactJS. Подводя итог и оглядываясь назад на все те грабли, на которые я успел наступить, у меня родилась идея выразить свой опыт в виде статьи. Оговорюсь, что до начала изучения реакта, у меня имелось 3 года опыта разработки на c++, python, а также мнение, что во фронтенд разработке нет ничего сложного и разобраться во всем мне не составит труда. Поэтому в первые месяцы я пренебрегал чтением обучающей литературы и в основном просто гуглил готовые примеры кода. Соответственно, примерный разработчик, который первым делом изучает документацию, скорее всего, не найдет для себя здесь ничего нового, но я все-таки считаю, что довольно много людей при изучении новой технологии предпочитают путь от практики к теории. Так что если данная статья убережет кого-то от граблей, то я старался не зря.
+15
Автостопом по DevOps с Экспресс 42
4 min
4KDevOps уже у всех на слуху, но DevOps-трансформация для многих еще похожа на путешествие в неизведанный космос. Сегодня хочу рассказать о партнерстве, которое помогает нам самим исследовать эту вселенную и прокладывать надежный путь для других.
Все началось в 2015-м году, когда мы, Экспресс 42, совместно с Онтико воссоздали конференцию RootConf. Формально направление конференции значилось как «Профессиональная конференция по эксплуатации и DevOps», но фактически на докладах в основном обсуждали задачи системного администрирования.
В 2018-м стало понятно, что в мире, где Dev и Ops живут в одном общем процессе, конференция только про системное администрирование уже неактуальна. Тогда мы начали постепенно менять формат конференции. Теперь наша конференция обо всем, что касается DevOps — от Kubernetes, до обсуждения изменения процессов и эффективного обмена знаниями.
Сейчас мы совместно с Программным комитетом взяли курс на все, что связано с превращением аналоговых бизнес-процессов в цифру. В программе DevOpsConf этого года упор на то, как все превращается в код и управляется в виде кода. Сообщество созрело и я уже предвкушаю, какая сильная получится конференция. Но сегодня речь о пройденном пути, о планах поговорим в другой раз.
Все началось в 2015-м году, когда мы, Экспресс 42, совместно с Онтико воссоздали конференцию RootConf. Формально направление конференции значилось как «Профессиональная конференция по эксплуатации и DevOps», но фактически на докладах в основном обсуждали задачи системного администрирования.
В 2018-м стало понятно, что в мире, где Dev и Ops живут в одном общем процессе, конференция только про системное администрирование уже неактуальна. Тогда мы начали постепенно менять формат конференции. Теперь наша конференция обо всем, что касается DevOps — от Kubernetes, до обсуждения изменения процессов и эффективного обмена знаниями.
Сейчас мы совместно с Программным комитетом взяли курс на все, что связано с превращением аналоговых бизнес-процессов в цифру. В программе DevOpsConf этого года упор на то, как все превращается в код и управляется в виде кода. Сообщество созрело и я уже предвкушаю, какая сильная получится конференция. Но сегодня речь о пройденном пути, о планах поговорим в другой раз.
+17
Раскрытие номера телеграм v.2 — Социальная инженерия
4 min
17KПредисловие
Сам способ раскрытия номера — есть совокупность одной технической возможности самого клиента и применения социальной инженерии (СИ). Вообще, эту функцию уже описывали ранее на Хабре, аж в 2016 году — ссылочка.
Автор уже было уловил «месседж» и хотел рассказать зевавшим пользователям, что это небезопасно!, но критике его статейка поддалась слабо. Однако, я пошел дальше и решил показать, как эта «функция» действует в руках «хацкера».
Способ основан на социальной инженерии, поэтому придется общаться с пользователем, чей номер мы хотим узнать. Вся суть в том, что пользователь должен провернуть обычную манипуляцию, присущую мессенджерам, но, при этом, не должен заподозрить – зачем ему делать эту самую манипуляцию…
Что же должна сделать жертва, чтобы раскрыть свой номер? Рассмотрим пример.
+20
Книга «Безопасный DevOps. Эффективная эксплуатация систем»
7 min
8K Привет, Хаброжители! Приложение, запущенное в облаке, обладает множеством преимуществ, но в то же время подвержено особенным угрозам. Задача DevOps-команд — оценивать эти риски и усиливать защиту системы от них. Книга основана на уникальном опыте автора и предлагает важнейшие стратегические решения для защиты веб-приложений от атак, предотвращения попыток вторжения. Вы увидите, как обеспечить надежность при автоматизированном тестировании, непрерывной поставке и ключевых DevOps-процессах. Научитесь выявлять, оценивать и устранять уязвимости, существующие в вашем приложении. Автор поможет ориентироваться в облачных конфигурациях, а также применять популярные средства автоматизации. Требуется знание Linux и владение стандартными практиками DevOps, такими как CI, CD и модульное тестирование.
+15
Атрибуты C#: обо всех аспектах
19 min
42KЗдравствуй, читатель. В этой статье описаны атрибуты со всех сторон — начиная от спецификации, смысла и определения атрибутов, создания собственных и работе с ними, заканчивая добавлением атрибутов на рантайме и наиболее полезными и интересными существующими атрибутами. Если вам интересна тема атрибутов в C#, то добро пожаловать под кат.
+24
Apache, ViewState&Deserialisation
4 min
2.5KTutorial
В данной статье рассмотрим уязвимость на основе подмены сериализованного Java-объекта ViewState и метод её эксплуатации на примере web-приложения виртуальной машины с HackTheBox, использующей технологию Apache MyFaces.
+16
Как я создал фильтр, не портящий изображение даже после миллиона прогонов — часть 2
7 min
5.7KTranslation
В первой части этого поста я рассказал, как многократное применение стандартных halfpel-фильтров создаёт искажённые изображения, а затем показал новый фильтр, не имеющий данной проблемы.
Он был немного более размытым и это устроит не всех. Однако он был лучше своих альтернатив — на самом деле именно этот фильтр использовался в оригинальной версии Bink 2. Из-за постоянной нагрузки на работе мне никогда не удавалось вернуться к нему снова и исследовать его подробнее.
Но теперь, когда я нашёл время для возврата к этому фильтру и написания статьи о нём, мне наконец стоит задаться вопросом: существует ли менее размывающий фильтр, который всё же сохраняет свойство «бесконечной стабильности»?
Предупреждение о спойлерах: правильный ответ — «вероятно, нет» и «определённо, есть». Но прежде чем мы дойдём до того, почему на этот вопрос есть два ответа и что они означают, давайте получше подготовим испытательный стенд.
+26
Information
- Rating
- Does not participate
- Registered
- Activity