Search
Write a publication
Pull to refresh
119
0
Святослав @SvyatoslavMC

Product Manager

Send message

Visual Studio Coded UI Tests: теория и практика применения в нашей компании

Reading time13 min
Views13K

Picture 2

Автоматизированные тесты пользовательских интерфейсов — тема, к которой настороженно относятся даже опытные разработчики. При этом технология такого тестирования не представляет собой чего-либо экстраординарного, а в случае Visual Studio Coded UI Tests является расширением встроенной системы модульного тестирования Visual Studio Team Test. В этой статье я хочу остановиться как на теме UI-тестирования в общем, так и на нашем частном опыте применения Visual Studio Coded UI Tests в работе над статическим анализатором PVS-Studio.
Читать дальше →

Разработка нового статического анализатора: PVS-Studio Java

Reading time19 min
Views19K

Picture 3

Статический анализатор PVS-Studio известен в мире C, C++ и C# как инструмент для выявления ошибок и потенциальных уязвимостей. Однако у нас мало клиентов из финансового сектора, так как выяснилось, что сейчас там востребованы Java и IBM RPG(!). Нам же всегда хотелось стать ближе к миру Enterprise, поэтому, после некоторых раздумий, мы приняли решение заняться созданием Java анализатора.
Читать дальше →

«Те, кто готов променять свободу на безопасность, не достойны ни свободы, ни безопасности» (первоисточник)

Reading time9 min
Views108K
Впервые я услышал эту фразу, когда я был буйным студентом-революционером от генерал-майора Петрова на видеолекции про ДОТУ (Достаточно Общую Теорию Управления), с тех пор я её часто употребляю как «последний довод короля» в обсуждениях дел мирских. Но так как мир вошел в активную фазу постправды и фэйка с метастазами, я решил копнуть первоисточники и разобраться, в каком контексте эту фразу употребил старина Бэн, и что он этим хотел сказать/доказать читателю.

Предлагаю прочитать первоисточник и обсудить именно суть фразы, границу ее применимости. (А не личность Петрова, ДОТУ или качество перевода.) Если есть знатоки истории, буду благодарен, если обрисуете более широкий контекст происходящего в то время.

image

Ассамблея Пенсильвании: Официальное письмо Губернатору

Опубликовано в протоколе заседания Палаты представителей, 1755-1756 гг. (Филадельфия, 1756), с. 19-21.

[11 ноября, 1755]


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

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

Пенсия айтишника

Reading time6 min
Views90K
7 июня в СМИ появилась новость о том, что Правительство определит параметры пенсионной реформы на следующей неделе. За основу взят вариант увеличения пенсионного возраста до 65 лет для мужчин и до 63 — для женщин.



Напомню, что сейчас пенсионный возраст для женщин составляет 55 лет, для мужчин – 60. Таким образом, основным вариантом является выход на пенсию мужчинам на 5 лет позже, а женщинам на 8. IT-специалисты как и все работники по законодательству РФ формируют свои будущие пенсии. С выплат работникам работодатели обязаны отчислить страховые взносы, в том числе и на пенсионное страхование. В соответствии со статьями 425-426 Налогового кодекса РФ, до 2020 года общая ставка по страховым взносам равна 30%, из них на пенсионное страхование – 22%.

Согласно данным сервиса зарплат «Моего круга» медианная заработная плата IT-специалиста — 90 000 рублей. Давайте попробуем разобраться, как повлияет на нашу пенсию возможные изменения пенсионной системы.
Читать дальше →

Tesla частично открыла исходный код Model S/X 2018.12

Reading time3 min
Views17K


Всем известно, что автомобильное программное обеспечение Tesla создано на базе open source проектов, а именно на операционной системе Linux под лицензией GPL. Эта лицензия требует у разработчиков производных программ обязательно публиковать свой исходный код. Иначе это превращается в улицу с односторонним движением, когда разрешено только брать, но не отдавать. Но именно так до недавнего времени поступала Tesla.

В мае 2018 года процесс сдвинулся с мёртвой точки: Tesla опубликовала значительную часть кода софтверного релиза Model S/X 2018.12. Это системный образ платформы Tesla Autopilot, системный код для аппаратного обеспечения и код информационно-развлекательной системы на базе Nvidia Tegra, которая работает в автомобиле.
Репозитории на Github:

https://github.com/teslamotors/buildroot
https://github.com/teslamotors/linux
Читать дальше →

Второе поколение AMD Ryzen: тестирование и подробный анализ

Reading time57 min
Views57K


С окончанием 2017 года, в котором процессор Ryzen стал одним из самых успешных продуктов AMD, возник закономерный вопрос: что же дальше? В начале 2018 года были озвучены планы: Ryzen второго поколения должен появиться в середине года, после чего выйдет второе поколение Threadripper, на 12-нм процессе GlobalFoundries. Это еще не следующая новая микроархитектура AMD, которая, как мы знаем, будет Zen 2 на 7 нм техпроцессе. Это выпуск компонентов с некоторыми улучшениями, плюс возможность использовать производственный процесс, который позволяет поднять лимит частоты и производительности. Сегодня AMD запускает четыре процессора, мы протестировали их все.
Читать дальше →

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Reading time9 min
Views273K

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.


Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.


Читать дальше →

Использование std::optional в С++17

Reading time11 min
Views97K


Давайте возьмём пару от двух типов <YourType, bool> — что вы можете сделать с композицией подобного рода?


В этой статье я расскажу вам про std::optional — новый вспомогательный тип, добавленный в C++17. Это обёртка для вашего типа и флаг показывает, инициализировано ваше значение или нет. Давайте посмотрим, где это может быть полезно.


Вступление


Добавлением логических флагов к другим типам вы можете достичь то, что называется "Nullable типы". Как было сказано ранее, флаг используется для обозначения того, доступно значение или нет. Такая обёртка выразительно представляет объект, который может быть пустым (не через комментарии :).

Читать дальше →

Вознаграждаем за уязвимости четвёртый год подряд

Reading time8 min
Views11K

Специалисты в IT-безопасности, которые умеют находить уязвимости и эксплуатировать их, всегда стоят перед выбором — что, в итоге, с этими знаниями и умениями делать? И надо признать, что довольно большое количество таких специалистов выбирает путь ответственного раскрытия информации о найденных проблемах и уязвимостях. Именно с такими людьми компании должны уметь и хотеть взаимодействовать. Речь идет о Bug Bounty — объявляемых компаниями программах поиска уязвимостей в их продуктах и сервисах за денежное вознаграждение.
Читать дальше →

Нарушение циркадных ритмов коррелирует с депрессией, биполярным расстройством и невротизмом

Reading time3 min
Views21K
Сон очень важен для мозга. Как и у других животных и растений, человеческий организм функционирует в соответствии с циркадными ритмами — циклическими колебаниями интенсивности биологических процессов, связанными со сменой дня и ночи. Циркадные ритмы имеют эндогенное происхождение, то есть вызваны внутренними факторами, а не внешним воздействием. Даже если животное надолго поместить в кромешную темноту, циркадные ритмы никуда не исчезнут, а циклические колебания биологических процессов продолжат соблюдаться в соответствии с биологическими часами примерно каждые 24 часа.

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

Что технарю нужно знать о гуманитариях?

Reading time8 min
Views40K


Начнем с того, что разделение на физиков и лириков придумали в 60ые для смеха, типа западников и славянофилов, или патриотов и либералов, спартак или динамо — классическая “двухпартийная система” наглядно показанная в серии Южного Парка про клизму и бутерброд. Еще древние римляне называли этот принцип “разделяй и властвуй”.

В итоге разным командам дали разные книжки, а про чужие говорили «скучно, вам не понять, да и понимать НЕ НАДО», а понять меж тем легко, главное посмотреть сквозь другие очки, сменить парадигму. Ведь ни одна из парадигм не истина, а вот бинокулярное зрение сильно облегчает жизнь. А тут, дали людям разные очки, одним плюс, другим минус, гуманитариям шестеренок в часах не рассмотреть, а для технарей через 200 метров вся природа абстракция.

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

Читать дальше →

Исследования показывают: люди, у которых «чересчур много интересов» имеют больше шансов на успех

Reading time13 min
Views30K


Самый исчерпывающий кейс, объясняющий, почему в современной «экономике знаний» почти каждый должен стать энциклопедистом.

«Мастер на все руки, а толком ничего не умеет».

Предостережение против универсализма сохранилось в многовековой истории десятков языков. «У него каких только ножей нет — и ни одного острого», — предупреждают китайцы. А в Эстонии есть поговорка «девять ремесел, и голод — десятое».

Однако, многие из наиболее неординарных личностей — как живших в прошлом, так и наших современников — были универсалами: таковы Илон Маск, Стив Джобс, Ричард Фейнман, Бенджамин Франклин, Томас Эдисон, Леонардо да Винчи и Мария Кюри — список далеко не полон.

В чем же здесь дело?

Если попытка универсализма — путь к посредственности, то почему наиболее исчерпывающее исследование о самых видных ученых в истории показало, что 15 из 20 были энциклопедистами? Ньютон. Галилей. Аристотель. Кеплер. Декарт. Гюйгенс. Лаплас. Фарадей. Пастер. Птолемей. Гук. Лейбниц. Эйлер. Дарвин. Максвелл — все энциклопедисты.

Если пытаться делать все сразу так неэффективно, то почему основатели пяти крупнейших компаний в мире – Билл Гейтс, Стив Джобс, Уоррен Баффетт, Ларри Пейдж и Джефф Безос – все энциклопедисты (а также придерживаются «правила пяти часов»)? Эти легендарные люди – просто гениальные исключения? Либо это люди, которым мы могли бы (и должны) подражать, чтобы достичь успеха в современной «экономике знаний»?

Если стремление к универсализму – неэффективная карьерная стратегия, то почему более 10 академических исследований выявили корреляцию между количеством интересов/компетенций, которые удалось развить человеку, и его творческим потенциалом?

Переведено в Alconost
Читать дальше →

Статический анализ в видеоигровой индустрии: топ-10 программных ошибок

Reading time11 min
Views17K


Если вы занимаетесь разработкой ПО в сфере видеоигровой индустрии и задаётесь вопросом о том, что ещё можно сделать, чтобы повысить качество продукта \ упростить процесс разработки, и при этом не используете статический анализ — самое время начать. Сомневаетесь? Что ж, я попробую вас в этом убедить. Если же вам просто интересно посмотреть на ошибки, которые допускают разработчики из сферы видеоигровой индустрии, то, опять же, вы попали по адресу — специально для вас отобраны наиболее интересные.
Читать дальше →

Кто мутит воду? Большое подробное сравнение-тест бытовых фильтров для очистки воды

Reading time10 min
Views443K


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

Проверка исходного кода свободного графического редактора Krita 4.0

Reading time17 min
Views15K
Не так давно состоялся релиз новой версии свободного графического редактора Krita 4.0. Самое время проверить этот проект с помощью PVS-Studio.

Picture 1

Читать дальше →

Проверяем исходный C#-код Unity

Reading time17 min
Views15K

Picture 5

Недавно произошло долгожданное для многих событие — компания Unity Technologies разместила исходный C#-код игрового движка Unity для свободного скачивания на GitHub. Представлен код движка и редактора. Конечно, мы не могли пройти мимо, тем более, что в последнее время мы пишем не так много статей о проверке проектов на C#. Unity разрешает использовать предоставленные исходники только в справочных целях. Именно так и поступим. Испытаем последнюю на данный момент версию PVS-Studio 6.23 на коде Unity.
Читать дальше →

Почему в 2018 году я использую метод разработки, которому уже 30 лет

Reading time6 min
Views31K
image

Создавать игры сложно


И самая сложная часть создания игр — это препродакшен. Это заявление может показаться обескураживающим. Все мы слышали о очень тяжёлых периодах продакшена игр и часто видели лёгкие, простые и интересные периоды препродакшена. Почему же я утверждаю, что препродакшен сложнее? Потому что один из аспектов, способных отравить продакшен — это выполняемый во время него препродакшен. Как бы ни был сложен препродакшен, гораздо сложнее (и намного дороже) выполнять его на этапе продакшена. Позвольте объяснить: в идеальном мире никто не брался бы за производство коммерческой игры, которую ждёт провал. Если вы намереваетесь создать игру с целью извлечения прибыли, и вы знаете, что игра прибыль не принесёт, то к продакшену вы не перейдёте.

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

В момент соединения всех частей (то есть создания первой играбельной версии) вы понимаете, действительно ли ваша команда шла к исходной цели. Это совершенно неподходящий момент, если вы проработали над игрой несколько лет.
Читать дальше →

Нужно ли менеджеру уметь программировать

Reading time5 min
Views30K
На прошлой неделе стартовал уже седьмой набор в Школу менеджеров Яндекса. В этот раз мы решили дополнить программу техническими лекциями и впервые добавили в тестовое задание технический вопрос. В этом посте я поделюсь своим мнением о том, почему без умения программировать менеджеру будет сложнее знать и развивать свой продукт.



Все понимают, что для работы над продуктом, особенно в IT, знания технологий так или иначе необходимы. Для менеджера не должны быть новыми слова «бэкенд», «верстка», «база данных». Чтобы отлавливать баги или видеть точки роста в продукте, нужно не просто постоянно им пользоваться, но и понимать, как он устроен. К разработчикам лучше приходить с формулировками «на мобильном интернете долго отдаётся вёрстка» или «при таком сценарии не загружается часть данных», а не говорить «вот тут что-то тормозит, посмотри». Таким образом менеджер перекладывает генерацию и проверку гипотез о том, что же происходит в проблемном месте, на разработчика, у которого «такая же точно нога, но не болит».

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

Менеджеру нужно уметь думать, а не программировать

Reading time9 min
Views38K
Вчера на Хабре вышла интересная статья о том, должен ли менеджер уметь программировать. Одна из наших менеджеров прошла огонь, воду, программирование, тестирование и проектную работу, поэтому решила написать ответ. По традиции таким сотрудникам мы даём свободный микрофон. Спойлер статьи: менеджер должен соображать, а не изображать. В общем, слово коллеге.

Читать дальше →

Исходный код System Shock выложен в открытый доступ под GPL

Reading time3 min
Views10K
image

Исключительно хорошая новость: исходный код культовой игры System Shock (в версии для PowerMac) официально выложен под GNU General Public License v3.0. Игра была выпущена в 1994 году и написана на C.

Как известно, автор оригинальной игры, студия Looking Glass Studios, прекратила свое существование в 2000 году из-за кризиса издателя Eidos Interactive — выходцы из студии в дальнейшем создали новые знаменитые серии Deus Ex и BioShock. Права на серию System Shock выкупила Night Dive Studios, которая в данный момент занимается ремейком оригинала (чья разработка была заморожена месяц назад и релиз был отложен на 2020 год, несмотря на успешный Kickstarter, собравший 1,35 миллиона долларов) и полноценным продолжением System Shock 3, в разработке которого принимает участие автор оригинала, Уоррен Спектор, вернувшийся ради этого в игровую индустрию.

Забрать исходный код можно по ссылке на Github. Для успешной компиляции потребуется PowerMac или его эмулятор (например, SheepShaver), Metrowerks CodeWarrior 10 Tools и игровые данные оригинальной игры.

Как обычно, не обошлось без интересных находок — например, уже нашли отсылку к игровому дизайнеру, работавшему в Looking Glass Studios, Симус Блэкли (Seamus Blackley).
Читать дальше →

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity