Как стать автором
Обновить
287
0
Philipp Ranzhin @fillpackart

Король разработки

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

JavaScript в 3D: введение в Three.js

Время на прочтение10 мин
Количество просмотров46K
Привет, Хабр! Представляю Вашему вниманию перевод статьи «JavaScript in 3D: an Introduction to Three.js» автора Брета Кемерона (Bret Cameron).

Введение


Three.js это мощный инструмент. Он помогает использовать 3D дизайн в браузере с приемлемой производительностью. По началу Three.js может быть сложным, особенно если вы никогда не погружались в мир 3D программирования ранее.

У меня есть базовый опыт работы с игровым движком Unity и C#, но все равно многие концепции оказались новыми для меня. Я пришел к выводу, что сейчас совсем мало ресурсов для начинающих разработчиков, поэтому я и решил написать эту статью. В ней мы рассмотрим основные элементы Three.js сцены от полигональных сеток и материалов до геометрии, загрузчиков и много другого.
Всего голосов 20: ↑20 и ↓0+20
Комментарии14

Теория программирования: Вариантность

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

Здравствуйте, меня зовут Дмитрий Карловский и я… хочу поведать вам о фундаментальной особенности систем типов, которую зачастую или вообще не понимают или понимают не правильно через призму реализации конкретного языка, который ввиду эволюционного развития имеет много атавизмов. Поэтому, даже если вы думаете, что знаете, что такое "вариантность", постарайтесь взглянуть на проблематику свежим взглядом. Начнём мы с самых основ, так что даже новичок всё поймёт. А продолжим без воды, чтобы даже профи было полезно для структурирования своих знаний. Примеры кода будут на псевдоязыке похожем на TypeScript. Потом будут разобраны подходы уже нескольких реальных языков. А если же вы разрабатываете свой язык, то данная статья поможет вам не наступить на чужие грабли.


а вдруг там лис?

Читать дальше →
Всего голосов 47: ↑43 и ↓4+52
Комментарии62

ML.NET: впечатления от Model Builder и не только

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

Доброго времени суток и мое почтение, читатели Хабра!


Предыстория


У нас на работе принято обмениваться интересными находками в командах разработки. На очередной встрече, обсуждая будущее .NET и .NET 5 в частности, мы с коллегами заострили внимание на видении унифицированный платформы с этой картинки:
image
На ней показано, что платформа объединяет DESKTOP, WEB, CLOUD, MOBILE, GAMING, IoT и AI. Мне пришла в голову идея провести беседу в формате небольшого доклада + вопросов/ответов по каждой теме на следующих встречах. Ответственный за ту или иную тему предварительно готовится, вычитывает информацию об основных новшествах, пробует что-то реализовать с помощью выбранной технологии, а затем делится с нами своими мыслями и впечатлениями. В итоге все получают реальный отзыв об инструментарии из проверенного источника из первых уст — очень удобно, учитывая то, что самому попробовать и поштурмить все темы может быть не сподручно, банально руки не дойдут.


Поскольку я некоторое время активно интересуюсь машинным обучением в качестве хобби (и иногда использую для небизнесовых задачек в работе), мне досталась тема AI & ML.NET. В процессе подготовки я наткнулся на замечательные инструменты и материалы, к своему удивлению обнаружил, что про них очень мало информации на Хабре. Ранее в официальном блоге Microsoft писали про релиз ML.Net, и Model Builder в частности. Я бы хотел поделиться тем, как вышел на него и какие получил впечатления от работы с ним. Статья больше про Model Builder, чем про ML в .NET в целом; мы постараемся посмотреть на то, что предлагает MS среднему .NET-разработчику, но глазами подкованного в ML человека. Постараюсь при этом держать баланс между пересказыванием туториала, совсем уж разжевыванием для новичков и описанием деталей для ML-специалистов, которым почему-то потребовалось прийти в .NET.

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

Биорадиолокатор, картонный беспилотник и летающая сосиска — Никита Калиновский о хороших и плохих поисковых технологиях

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


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

Организаторы поставили колоссально сложную задачу — найти двух человек на территории в 314 км2 за 10 часов. Идеи были разные, но (спойлер) не справился никто. Одним из технических экспертов конкурса выступил Никита Калиновский. Я обсудил с ним участников, их решения, а также расспросил, какие еще идеи запомнились на протяжении всех этапов конкурса.

Если вы уже прочитали репортаж о финале, некоторые реплики встретятся вам и здесь. Это просто полное интервью с минимальным редактированием.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии0

«Моя мечта — видеть человека сквозь деревья» — основатель «Лиза Алерт» о современных технологиях поиска

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


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

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

Одним из экспертов конкурса был Григорий Сергеев, основатель поискового отряда «Лиза Алерт». Во время финала я расспросил его о решениях команд и применении технологий не в конкурсных условиях, а в реальных поисках.
Читать дальше →
Всего голосов 58: ↑55 и ↓3+52
Комментарии100

DeepFake своими руками [часть 1]

Время на прочтение4 мин
Количество просмотров38K
Не смотря на все прелести интернета, у него есть много минусов, и один из самых ужасных – это введения людей в заблуждение. Кликбейт, монтаж фотографий, ложные новости – все эти инструменты активно используются для обмана обычных пользователей в мировой сети, но в последние годы набирает обороты новый потенциально опасный инструмент, известный как DeepFake.

Меня данная технология заинтересовала недавно. Впервые о ней я узнал из доклада одного из спикеров на “AI Conference 2018”. Там демонстрировалось видео, в котором по аудиозаписи алгоритм сгенерировал видео с обращением Барака Обамы. Ссылка на подборку видео созданных с помощью этой технологии. Результаты меня сильно вдохновили, и мною было принято решение лучше разобраться с данной технологией, чтобы в будущем противодействовать ей. Для этого я решил написать DeepFake на языке C#. В итоге получил такой результат.

image

Приятного чтения!
Всего голосов 39: ↑35 и ↓4+31
Комментарии16

Как трое одноклассников стали партнерами Facebook — история Revealbot

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

Реклама может казаться неприятной, но это — денежное сердце ИТ-индустрии. Google, Facebook и другие гиганты живут именно за счет нее. Рекламироваться вынуждены даже блокировщики рекламы.

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

И создать продукт, который станет новым успешным словом в рекламе — это как создать еще одну соцсеть в 2019. Тем удивительнее, что российский стартап Revealbot смог это сделать. CEO Михаил Трофимов, CTO Михаил Салосин и CCO Искандер Мусаев рассказали мне свою историю — как у них получилось.

Revealbot получил на «Моём круге» среднюю оценку 4,9 от своих сотрудников, которые выше всего оценили комфортную рабочую атмосферу в команде, связь с топ-менеджментом и то, что компания делает мир лучше.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии2

«Освоить F# не сложнее, чем Entity Framework или WPF»: интервью со Скоттом Влашиным

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


Кого расспрашивать про F#, как не человека, посвятившего этому языку подробный сайт? Скотт Влашин создал ресурс «F# for Fun and Profit», знакомый многим хабравчанам: на Хабре переводили оттуда и серию статей «Функциональное мышление», и статью «Железнодорожно-ориентированное программирование».

А в ноябре он выступит в Москве на нашей конференции DotNext с докладом «The power of composition». И в преддверии этого выступления мы расспросили его про F# и вообще функциональное программирование.
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии13

C++ против C#

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


Всем известно, что нет ничего глупее споров «какой язык лучше». Например, лучше для чего? Разные языки успешны в разных нишах — и бессмысленно делать категоричные выводы, не учитывая это.

Но что получится, если обратиться к опытным специалистам, которые сами всё это понимают, и попросить их всё-таки устроить холивар «C++ vs C#»? Оказывается, можно узнать много любопытных деталей. Слово «кроссплатформенный» можно по-своему применить к обоим языкам, но что это значит на практике? Активно ли сейчас развивается С++? Ломал ли C# когда-либо обратную совместимость? Ответы могут быть очевидны для тех, кто уже глубоко погружён в оба языка сразу, но таких людей немного — а все остальные узнают что-то новое.

Со стороны C++ поучаствовал Сергей sermp Платонов — председатель программного комитета конференции C++ Russia. Сторону C# представлял Анатолий Кулаков — он входит и в ПК конференции DotNext, и в число лидеров DotNetRu. А ведущим дискуссии, в жизни которого сосуществуют оба этих мира, стал Дмитрий mezastel Нестерук.

Читать дальше →
Всего голосов 80: ↑62 и ↓18+44
Комментарии412

Поддержка аппаратно-специфичных инструкций в .NET Core (теперь не только SIMD)

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

Введение


Несколько лет назад, мы решили, что настало время поддержать SIMD код в .NET. Мы представили пространство имен System.Numerics с типами Vector2, Vector3,Vector4 и Vector<T>. Эти типы представляют API общего назначения для создания, доступа и оперирования векторными инструкциями, когда это возможно. Они, так же, обеспечивают программную совместимость для тех случаев, где аппаратное обеспечение не поддерживает подходящих инструкций. Это позволило, с минимальным рефакторингом, векторизовать ряд алгоритмов. Как бы там ни было, общность такого подхода делает его сложным в применении с целью получения полного преимущество от всех доступных, на современном аппаратном обеспечении, векторных инструкций. В дополнении, современное аппаратное обеспечение предоставляет ряд специализированных, не векторных, инструкций, которые могут значительно улучшать производительность. В этой статье я расскажу, как мы обошли эти ограничения в .NET Core 3.0.



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

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии14

Скрипт настройки Windows 10

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

image
Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 19041), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но постараюсь выделить самое важное.

Если кому-то интересно, то добро пожаловать под кат.

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

Компьютерное зрение видит эмоции, пульс, дыхание и ложь — но как построить на этом стартап. Разговор с Neurodata Lab

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


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

В начале месяца мы посетили офис Neurodata Lab. Основное направление для компании — распознавание человеческих эмоций. Мы постарались выяснить как это делается и зачем нужно.

Neurodata Lab получила на «Моём круге» среднюю оценку 4,6 и среднюю рекомендацию 95% от своих сотрудников, которые выше всего оценили такие критерии, как профессиональный рост, интересные задачи, хорошие отношения с коллегами и то, что компания делает мир лучше.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии28

На спор: прочитав до конца, вы поймёте, как и почему именно так работает GC

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

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


Другой вопрос, что мне субъективно не очень нравится, как объясняется его работа. Потому, предлагаю альтернативный подход, описанный в моей книге, .NET Platform Architecture.


Если мы с вами будем досконально разбираться, почему были выбраны именно эти два алгоритма управления памятью: Sweep и Compact, нам для этого придётся рассматривать десятки алгоритмов управления памятью, которые существуют в мире: начиная обычными словарями, заканчивая очень сложными lock-free структурами. Вместо этого, оставив голову мыслям о полезном, мы просто обоснуем выбор и тем самым поймём, почему выбор был сделан именно таким. Мы более не смотрим в рекламный буклет ракеты-носителя: у нас на руках полный набор документации.


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


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

Fighting complexity in software development

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

What's this about


After working on different projects, I've noticed that every one of them had some common problems, regardless of domain, architecture, code convention and so on. Those problems weren't challenging, just a tedious routine: making sure you didn't miss anything stupid and obvious. Instead of doing this routine on a daily basis I became obsessed with seeking solution: some development approach or code convention or whatever that will help me to design a project in a way that will prevent those problems from happening, so I can focus on interesting stuff. That's the goal of this article: to describe those problems and show you that mix of tools and approaches that I found to solve them.

Read more →
Всего голосов 21: ↑20 и ↓1+19
Комментарии2

Стажировки — это пушечное мясо, чтобы затыкать дыры, а не “бесценный опыт и карьерные перспективы”

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

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

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

Но когда пришло время оглашать цену, я специально заломил ее так, чтобы мне отказали. У меня не было четкого ответа, зачем я так поступил, но был миллиард сомнений и гнетущих мыслей. Я понял, что обучение на стажировках — верное зло.
Читать дальше →
Всего голосов 112: ↑90 и ↓22+68
Комментарии100

Как советские научные книги стали артефактом у физиков и инженеров в Индии

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


В 2012 году на северо-востоке Москвы случился пожар. Загорелось старое здание с деревянными перекрытиями, огонь быстро перекинулся на соседние дома. Пожарные расчеты не могли подобраться к месту — все парковки вокруг были заставлены машинами. Огонь охватил полторы тысячи квадратных метров. Подобраться к гидранту тоже не удавалось, поэтому спасатели использовали пожарный поезд и даже два вертолета. Один сотрудник МЧС погиб в огне.

Как выяснилось позже, пожар начался в доме издательства «Мир».

Вряд ли это название что-то говорит большинству людей. Издательство и издательство, очередное привидение из советских времен, которое уже лет тридцать ничего не выпускало, но почему-то продолжало существовать. В конце нулевых оно было на грани банкротства, но каким-то образом возвращало долги, кому бы и что оно там ни было должно. Вся его современная история — это пара строк в Википедии о чехарде между всякими государственными МГУП ШМУП ФМУП, которые пылятся в папочках Ростеха (если верить Википедии, опять же).

Но за бюрократическими строчками нет ни слова о том, какое огромное наследие «Мир» оставил в Индии и как повлиял на жизнь нескольких поколений.
Читать дальше →
Всего голосов 242: ↑239 и ↓3+236
Комментарии182

Быть технофобом бессмысленно, даже если технофобия оправдана

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


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

Иногда мне кажется, мы мыслим также, только чуть менее осознанно. Идея, что прогресс не остановить, вселяет в нас непоколебимый оптимизм. Раз не остановить, то все идет, как идет, и впереди сплошные бесконечные успехи. Надо расслабиться и грести по течению. Даже тревожные сценарии отзываются в уголке сознания романтическим восторгом. «Машины станут умными и всех перебьют? Класс! Как в кино!» Относится к этому с серьезным пессимизмом — почти безумие.

Понятно, что реальность всегда скучнее выдумок, а алармисты и луддиты обычно умирают раньше, чем прогресс оправдывает их страхи. Но если верить некоторым футурологам, мы еще на своем веку можем стать свидетелями больших точек невозврата, к которым с радостью несемся на полной скорости.
Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии96

Мечтают ли сервисные компании о своих продуктах. Разговор с Maxilect

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


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

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

Я поговорил с Максимом Коротковым, основателем Maxilect о его опыте между двумя этими путями. После неудачного опыта со своим продуктом он основал сервисную компанию, при этом не хочет растить ее даже до 200 человек, хоть это и влияет на прибыль напрямую. Почему — в нашем разговоре.
Maxilect попал в рейтинг лучших работодателей в ИТ «Моего круга» со средней оценкой 4,81. Сотрудники выше всего оценили компанию по таким критериям, как: современные технологии, используемые в работе, адекватное вознаграждение труда, профессиональный и карьерный рост и связь с топ-менеджментом компании.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии5

Я провел сто собеседований, отказал сотне людей — и только потом научился собеседовать

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

Не желал бы я вам попасть ко мне на собеседование года два назад. Я провел их около сотни, и за все время взял может человек четырех. Не знаю почему, но эйчары считали, что это круто. Слава строгого интервьюера шла впереди меня. Знакомые звали меня собеседовать для чужих команд, и даже для чужих компаний, о которых вы слышите каждый день. И везде — не проходил никто.
Читать дальше →
Всего голосов 253: ↑228 и ↓25+203
Комментарии431

В Москве протестируют беспилотный трамвай. Мы поговорили с разработчиками автопилота

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


На днях «Ведомости» рассказали, что скоро в Москве начнут тестировать беспилотный трамвай. Сейчас его испытывают в депо, но через пару месяцев планируют запустить на маршруте №17 — пока без пассажиров и с водителем в кабине.

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

Скорее всего, полностью беспилотным трамвай станет только через несколько лет. Как пишут «Ведомости», к 2021-2022 годам.

Разработка идет на базе модели «Витязь М», которую выпускает «ПК Транспортные системы», а самим автопилотом занимается компания Cognitive Technologies. Руководитель ее департамента разработки беспилотных транспортных средств Юрий Минкин рассказал нам о проекте подробнее.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии119

Информация

В рейтинге
Не участвует
Откуда
Иваново, Ивановская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность