Search
Write a publication
Pull to refresh
18
0
Журат Максим @ChessMax

User

Send message

$mol_func_sandbox: взломай меня, если сможешь!.

Reading time6 min
Views3.8K

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



https://sandbox.js.hyoo.ru/


А далее я расскажу как работает песочница и подкину несколько идей для взлома.

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

Шпаргалка по сортировке для Data Science

Reading time11 min
Views26K
image

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

Выбор библиотеки и типа алгоритма сортировки не всегда прост, а нововведения меняются в быстром темпе. На данный момент документация Pandas не соответствует коду (хотя лично мое PR-обновление сортировочных опций было самым последним).

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

UPD 17 июля 2019: В результаты оценки теста скорости теперь входят реализации GPU PyTorch и TensorFlow. TensorFlow также включает в себя результаты CPU как при tensorflow==2.0.0-beta1, так и при tensorflow-gpu==2.0.0-beta1. Интересные наблюдения: графический процессор PyTorch буквально летает, а GPU TensorFlow оказался медленнее CPU TensorFlow.

Контекст


Базовых алгоритмов сортировки существует множество. Одни из них имеют высокую производительность и занимают меньше места, другие хорошо работают с большим числом данных. Для некоторых алгоритмов важно взаимное расположение элементов данных. На диаграмме в начале статьи можно увидеть ситуацию по времени и объему для самых распространенных алгоритмов.
Читать дальше →

Async/await в Unity

Reading time7 min
Views49K
Салют, хабровчане. Совсем немного времени остается до старта курса «Разработчик игр на Unity», в связи с этим мы подготовили для вас еще один интересный перевод.




async в Unity уже и так работает без каких-либо плагинов или оборачивающих Task корутин, имитирующих асинхронное поведение проверяя завершение на каждом кадре. Но это все-равно своего рода магия. Давайте же немного углубимся в эту тему.

(Примечание: пока еще я не обладаю идеальным пониманием всех подкапотных тонкостей async/await в C#, по этому я буду стараться дополнять изложенное, по мере углубления моего понимания.)

Как получить 100% зрения и даже больше

Reading time12 min
Views67K
Практика показывает, что далеко не каждый человек знает, что такое острота зрения. Например, если вы узнаете, что курица видит на 300%, то есть точно лучше каждого из нас, и глаза у нее видят по-разному — то вы удивитесь.

В древние времена остроту зрения проверяли по созвездию Большой Медведицы в ночном небе. Это созвездие напоминает «ковш с ручкой» и практически всегда видно на ночном небе. Так рядом со второй звездой от конца «ручки ковша» (Мицар) находится малозаметная небольшая звезда Алькор («забытая, незначительная»). Способность видеть эту малозаметную звезду считалась традиционным способом проверки зрения, условной нормой. То есть, система была бинарная – «вижу» и «не вижу».


Эра починки зрения началась несколько столетий назад, использовать для этого лазер стали всего пару десятилетий назад и совершили технологический скачок до эндоскопической коррекции зрения ReLEX SMILE, о ней писала здесь.

В мире с 1985 года выполнено более 60 миллионов процедур по лазерной коррекции зрения! И все эти люди счастливы, что получили 100% зрение, спросите вы? А теперь самое интересное – нет, не все счастливы. И уж точно не у всех 100%.

Что может быть причиной не 100% зрения, почему люди «щурятся», как оценивать показатели приборов, которые измеряют параметры глаза, в том числе после лазерной коррекции, можно ли им доверять, как избежать багов при тестировании, какие исследования, зачем и когда необходимы, чтобы прояснить картину?

Поделюсь тем, что должен знать офтальмолог, и как правило, о чем не в курсе пациент.
Читать дальше →

Как бросить школу и перевести ребенка на удалёнку

Reading time7 min
Views38K
Привет, Хабр!

На днях моя дочь закончила 6й класс полностью в удалённом формате. Сразу несколько моих друзей обратились за обратной связью, потому что также задумываются о переводе детей на подобный формат обучения.

Пандемия внесла свои корректировки в привычный и давно изживший себя процесс обучения в современной (считай – еще советской) школе. И многие ГБОУ (ну и словечко) оказались к этому совершенно не готовы. Попытки организовать какие-то уроки в скайпе, зуме с треском провалились и детей отправили просто по домам учиться на усмотрение родителей.

Многие мои знакомые, которые год назад крутили пальцем у виска, когда я переводила ребенка на удаленку, стали задаваться вопросом, а так ли страшен чёрт.

Расскажу…


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

Миллион за месяц: как запустить стартап в Европе своими силами

Reading time10 min
Views17K
Всем привет!

Два месяца назад я и мой знакомый (для краткости, назовем его Илья) запустили свой стартап.
Пффф… Скажите вы. Каждый день кто-то что-то запускает. Кто-то запускает в одиночку. Некоторые кучкуются в команды. У кого-то есть деньги на разработку\маркетинг, кто-то предлагает долю, пост-оплату, опционы. Все крутятся как могут и ищут партнеров также.


У нас не было денег, был лишь опыт и 2 недели до первых продаж.

Под катом я расскажу о том, с чем мы столкнулись и как заработали миллион в кризис
Читать дальше →

Основы нейросетей в 100 строках кода (часть 1)

Reading time9 min
Views22K

В трёх частях этой статьи мы:


  • Напишем нейросеть с нуля на Python и обучим её алгоритмом градиентного спуска.
  • Применим её к датасету The Wisconsin Cancer Data-set и предскажем по 9 различным признакам, является ли опухоль доброкачественной или злокачественной.
  • Подробнее исследуем, как работает градиентный спуск и метод обратного распространения ошибки.
  • Рассмотрим основы и изучим более сложные идеи. В части 1 мы разберёмся с архитектурой нашей нейросети, в части 2 напишем её на Python и глубже посмотрим на обратное распространение и градиентный спуск, а в части 3 применим её к The Wisconsin Cancer Data-set.


Нейросеть — обучение без учителя. Метод Policy Gradient

Reading time12 min
Views41K

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


Настоящей статьей открываю цикл статей о том, как обучать нейронные сети без учителя.
(Reinforcement Learning for Neuron Networks)

В цикле планирую сделать три статьи по теории и реализации в коде трех алгоритмов обучения нейронных сетей без учителя. Первая статья будет по Policy Gradient, вторая по Q-learning, третья статья заключительная будет по методу Actor-Critic.

Приятного чтения.

Статья Первая — Обучение без учителя методом Policy Gradient
(Policy Gradient for Reinforcement Learning)


Введение


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

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

Алгоритму обучающемуся без учителя достаточно только давать обратный отклик на его действия или решения — хороши они были или нет.
Читать дальше →

#nodesigndev: дизайн руками разработчиков

Reading time3 min
Views6.2K
image

Недавно запустился сервис nodesign.dev, который собирает инструменты и материалы по дизайну (в основном UI). Идея заключается в том, что многим разработчикам приходится время от времени дизайнить какие-то элементы своих проектов, и у большинства нет релевантного дизайнерского опыта или художественного образования. Создатели сервиса решили помочь им и запустили одноимённое движение, призывающее разработчиков делиться друг с другом опытом, наработками и знаниями в области дизайна. Конечная цель — чтобы как можно больше небольших проектов без штатного дизайнера могли позволить себе хороший внешний вид и UX.
Читать дальше →

Парсер данных по произвольной грамматике в 400 строк

Reading time33 min
Views13K

Есть много существующих инструментов для парсинга файлов по заданной грамматике. Например, ANTLR или Yacc. Они используют конечные автоматы и генерируют большие файлы с исходным кодом для парсинга. Действительно ли это так сложно? Попробуем сделать сами.


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


Будем делать парсер для грамматик в ANTLR-like виде. Вот в таком:


C:
    | A1? A2* A3
    | B1? B2+ B3
;

Делать будем на языке PHP. А если получится нормально, перепишем на C++.

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

Колоноскопия. О деликатной теме без насмешек

Reading time10 min
Views89K
Я работаю медсестрой-анестезистом в кабинете эндоскопии почти 2 года. Этого времени хватило, чтобы понять, что не всегда врачи, колл-центр клиники и интернет дают всю точную информацию по подготовке к такому исследованию, как колоноскопия. Постаралась собрать все часто возникающие вопросы. Хочу поделиться с вами, буду рада, если кому-то окажется полезным.

Современный мир дает возможность многим работать из дома. Особенно сейчас, в «короновирусную» эпоху еще больше людей работают удаленно и перестали ездить на работу. Это значит, что в домашней обстановке в основном сидят, долго сидят и смотрят в монитор. Справедливости ради, надо сказать, что и офисная жизнь не располагает к подвижности. Про вред долгого смотрения в монитор я пока не готова рассказать, а вот долгое сидение точно приводит к проблемам с ЖКТ (желудочно-кишечный тракт). Плюс многие не пьют достаточное количество воды, не едят клетчатку, стрессуют, а это все приводит к некоторым проблемам, которые могут длиться годами. Рано или поздно многие приходят к необходимости сделать колоноскопию. Если хотите узнать про это деликатное исследование подробнее – добро пожаловать под кат. В статье есть описание многих физиологических тем, которых принято стесняться, кому-то может быть просто неприятно, также есть немного ужастиков, так что впечатлительным особам лучше воздержаться от чтения.
Читать дальше →

Объясните мне, как вы для себя разобрались в моделях типизаций — они же все размыты

Reading time7 min
Views40K


Когда я был начинающим, я мог писать простые приложения на C# и C++. Долго игрался с консольными прогами, пощупал десктопные, и в какой-то момент захотел сделать сайт. Меня ждал большой сюрприз — чтобы делать сайты, одного сишарпа мало. Надо ещё знать жс, хтмл, цсс и прочую фронтовую хрень. Я потратил около недели на эти вещи, и понял — не мое. Я мог написать какой то код на джаваскрипт, но он не содержал типов, и я никак не мог взять в толк — как к этому вообще подходить. Это какое-то игрушечное программирование. Ну и забросил к чертям.


Уже потом, работе на третьей, меня перевели в отдел, где делали веб. Я подумывал уволиться, но мне объяснили — там тайпскрипт, тайпскрипт — это такой сишарп для браузера.


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

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

Вариантность в программировании

Reading time6 min
Views124K

До сих пор не можете спать, пытаясь осмыслить понятия ковариантности и контравариантности? Чувствуете, как они дышат вам в спину, но когда оборачиваетесь ничего не находите? Есть решение!


Меня зовут Никита, и сегодня мы попытаемся заставить механизм в голове работать корректно. Вас ожидает максимально доступное рассмотрение темы вариантности в примерах. Добро пожаловать под кат.

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

Почему функциональное программирование такое сложное

Reading time15 min
Views93K

Я несколько раз начинал читать статьи из серии «Введение в функциональное программирование», «Введение в Теорию Категорий» и даже «Введение в Лямбда Исчисление». Причем и на русском, и на английском. Каждый раз впечатление было очень сходным: во-первых, много новых непонятных слов; во-вторых, много новых определений, которые возникают из ниоткуда; в-третьих, совершенно непонятно, как это использовать.


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


Попытки использовать как-то в работе изученные концепции разбивались о полное непонимание, как применить полученное глубокое знание. Ведь, напомню, что парадигму ФП (где-то удобнее, где-то не очень, но) можно использовать практически в любом ЯП, совсем необязательно для этого изучать условный Хаскель.

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

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

Reading time3 min
Views4.2K
image

Иногда “добрые люди” интересуются какую бы новую акцию придумать, чтобы повысить средний чек игроков, конвертировать неплатящих в платящих или, чем черт не шутит, увеличить LTV. Вопрошающие в большинстве случаев не идут дальше банальностей вроде “предложить больше ништяков за меньшие деньги” или “побрейнштормить”. А между тем, монетизационных концепций т.е. принципов на которых строится монетизация в играх, не так чтоб очень много. Я бы даже сказал — совсем немного и вместо того, чтобы придумывать что-то из головы, высматривать в остатках кофейной гущи или выкуривать из бабушкиного гербария, стоило бы присмотреться к уже существующим играм и совершить перенос их подхода к себе. Под “переносом” понимаю не тупое “сдирание”/копирование, как это обычно бывает, а адаптацию под свой конкретный случай.

О том, как это можно делать см. в продолжении статьи.
Читать дальше →

Телеграм-каналы о разработке игр: часть 2

Reading time2 min
Views13K
Привет! Я инди-разработчик и автор канала о разработке игр. Год назад я уже делал похожую подборку, но с тех пор набралось много не менее интересных геймдев-блогов.

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

Flutter и десктоп разработка

Reading time5 min
Views11K
Идея писать мультиплатформенные приложения уже далеко не нова. Flutter так же предоставляет возможность это делать. В этой статье я постараюсь описать два подхода запуска мобильного приложения на десктопе, которые я сам использую для разработки мобильных приложений. Я перестал запускать эмулятор и симулятор во многом потому, что появилась возможность обойтись без них. Тем, кому интересна идея, добро пожаловать под кат.
Читать дальше →

Реализация тумана войны из Civilization VI в Unity

Reading time17 min
Views13K

Эффект тумана войны из Civilization VI — отличный пример простой структуры вычислительного шейдера (compute shader). Если вы всегда хотели узнать об основах программирования таких шейдеров, то этот туториал для вас. Вы сможете понять его даже без знания шейдеров и программирования на C#; более опытные разработчики могут пропустить введение.

Анализ эффекта


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


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

Avalonia Tutorial: Реализация MVVM по шагам с примерами

Reading time13 min
Views61K

Avalonia — это?


Avalonia – это кроссплатформенный XAML фреймворк для платформы .NET. Для многих разработчиков на WPF/UWP/Xamarin данный фреймворк будет интуитивно понятен и прост в освоении. Avalonia поддерживает Windows, Linux, macOS, также заявлена экспериментальная поддержка Android и iOS. Развивается проект при поддержке сообщества и является open-source.

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

10 бесплатных курсов для начинающих специалистов от Microsoft

Reading time5 min
Views47K
Привет, Хабр! Сегодня мы продолжаем публиковать уже третью серию подборок бесплатных курсов для IT-специалистов. В этот раз у нас 10 курсов для начинающих специалистов. Среди них курсы по C#, Python, облаку Azure, Microsoft 365, Xamarin, Windows 10, Teams и другому. Присоединяйтесь!

Кстати!

  • Все курсы бесплатные (вы даже сможете попробовать платные продукты бесплатно);
  • 9/10 на русском языке;
  • Начать обучение можно мгновенно;
  • По окончании вы получите бейдж об успешном прохождении обучения.

Присоединяйтесь, подробности под катом!

Эта серия статей


Предыдущая серия статей, начало 2020 года


Более ранняя серия статей, 2019 год


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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer
Senior
Flutter
Flutter Bloc
MobX
Mobile
Development of mobile applications