Pull to refresh
39
0
Евгений Желтоножский @Randl

Программист

Send message

Автоматическое дифференцирование «на пальцах»

Reading time6 min
Views34K
В компании Intel разрабатывают не только ПО для «внешних» потребителей — пишутся и программы, которые используются только внутри Intel. Среди них довольно много средств для численного моделирования различных физических процессов, протекающих при изготовлении процессоров — ведь именно последние и являются основной продукцией Интела. В этих программах, конечно, широко используются различные методы вычислительной математики и физики.
Вот некоторое время назад мне понадобилось программно решать одно уравнение методом Ньютона. Казалось бы, все просто, но для этого надо уметь вычислять производную левой части уравнения. Эта левая часть у меня была довольно сложная — даже просто вычисление ее значений в программе было разбросано по нескольким функциям, — и перспектива вычислять производную на бумажке меня не радовала. Перспектива воспользоваться каким-нибудь пакетом символьных вычислений меня радовала не больше — перенабирать все формулы, содержащие к тому же несколько частных случаев, далеко не очень приятно. Вариант вычислять производную численно как разность значений функции в двух соседних точках, деленную на соответствующее приращение независимой переменной, чреват потерей точности и вообще необходимостью подбирать подходящее приращение этой переменной.
Подумав некоторое время, я применил следующий подход. Потом я узнал, что он называется «автоматические дифференцирование», для него существует довольно обширная литература на английском, и ряд библиотек — но на русском я нашел только некоторые научные статьи про применение этого метода, и пост на Хабрахабре, в котором все рассказывается через смесь дуальных и комплексных чисел, и понять который с ходу, на мой взгляд, тяжело. С другой стороны, для понимания и практического применения автоматического дифференцирования не нужны никакие дуальные числа, и этот подход я тут и изложу.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments61

Паттерны ООП в метафорах

Reading time17 min
Views565K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Total votes 214: ↑201 and ↓13+188
Comments86

Сколько английских слов вы знаете?

Reading time5 min
Views351K
Оценка количества выученных и запомненных слов иностранного языка прежде всего интересна для понимания того, насколько далеко человек продвинулся в «пассивном» восприятии информации: тексты, речь, фильмы, и т.д. Предлагаю ознакомиться с несколькими способами, которые я применял, найденные в сети и «самопальные». Внизу — парочка тестов для оценки vocabulary, методика для поиска важных слов, которые пока не зацепились в мозгу, несколько рассуждений и немного ссылок.

Читать дальше →
Total votes 85: ↑81 and ↓4+77
Comments100

Построение ИИ для игры в японские шахматы сёги

Reading time11 min
Views25K
Не так давно я уже писал небольшой пост о разработке ИИ для игры в т.н. мини-сёги, но опрос показал, что хабрасообществу будет интересен и более полный пост о разработке. Кому интересно, прошу под кат.
Читать далее...
Total votes 46: ↑44 and ↓2+42
Comments9

Разминаем мозг регулярными выражениями — Regex Tuesday Challenge

Reading time4 min
Views69K
Я хочу предложить вам поломать голову вечерок-другой над интересными задачками, на регулярные выражения, которые Callum Macrae выкладывает на своем сайте на GitHub каждый Вторник.

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

Тесты используют JavaScript Regex движок вашего браузера, который обладает всеми основными возможностями PCRE.  Подробнее можно посмотреть тут (англ.) , в колонке ECMA в таблице.

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

UPD: В регулярных выражениях ECMAScript нету ретроспективных проверок.

Читать дальше →
Total votes 71: ↑70 and ↓1+69
Comments41

Если у меня есть 30 тысяч рублей, во что их можно вложить?

Reading time3 min
Views82K


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

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

Так куда можно вложить штуку баксов?
Total votes 85: ↑44 and ↓41+3
Comments105

Типичный день под присмотром Алисы

Reading time6 min
Views135K
Недавно вышла новая версия комплекса MajorDoMo, о котором на Хабре была обзорная статья, и я решил, что было бы хорошо показать на живом примере, как оно работает. Возьмём самый обычный будний день и посмотрим, как Умный дом себя вёл в его течении.

Картинка для привлечения внимания

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments112

Хабрасорсинг 2

Reading time1 min
Views7.5K
Попробуем повоторить? С предыдущего хабрасорсинга прошло уже пара месяцев.
В этот раз предлагаю его преурочить к новогодним праздникам когда у многих синхронизировались выходные и возможно появилось желние в чем либо себя проявить.
Для меня предыдущий топик подарил пару контактов в “записную книжку” и возможность немного проявить себя в проекте zen comment.
Так же родилось ряд идей:
  • Кроссплатформенная игра mmo tower defense + netstorm в сеттинге steampunk — наброски мыслей
  • Сервис поиска единомышленников (не фриланс-биржа)


Предлагаю всем желающим откликнуться и предлагать как свои проекты так и изъявить желание поучаствовать в каком нибудь проекте.

Ну и конечно всех с наступающим.
Total votes 27: ↑20 and ↓7+13
Comments31

Механика казуальных игр

Reading time16 min
Views15K
На хабрахабре периодически предпринимаются попытки описания процесса игроделания с самых разных сторон — от воплощения 3D-графики до создания сетевых протоколов. Эти темы, безусловно, важны, однако довольно узкие. В данной статье я попробую использовать более широкий подход — рассмотрю принцип создания игрового движка для т.н. казуальных игр. Описываемая механика вполне подойдет для создания всяческих пакманов, арканоидов, платформеров и пр. Описание процесса будет на примере примитивного scrolldown шутера (из ностальгических чувств к Zybex и Xevious) — летаем по полю, сбиваем метеориты. Инструмент — Qt.
Читать дальше →
Total votes 63: ↑56 and ↓7+49
Comments38

Тестирование — это не поиск ошибок!

Reading time5 min
Views154K
Многие считают, что тестирование ПО — это поиск ошибок. Иногда я говорю тестировщикам: «не старайся найти как можно больше ошибок, старайся пропустить как можно меньше!», и меня не понимают: а в чём разница?

А разница огромная! В этой статье я хочу рассказать, в чём она заключается, и какие инструменты необходимо использовать для настоящего полезного тестирования.
Читать дальше →
Total votes 148: ↑142 and ↓6+136
Comments71

013.jpg или Принцессы не какают

Reading time20 min
Views255K
Вот уже совсем скоро конец света, дорогие мои айтишнички. Чтобы вы не боялись закрывать сегодня глазки, я расскажу вам добрую сказочку. О том, что даже после самого тёмного кончика светика, после самого дремучего апокалипсика, когда даже электрончики откажутся строем ходить по проводкам, для вас, дорогие айтишнички найдётся работёнка… Принцессы? Принцессы будут. И драконы тоже. Какая ж сказка без принцесс и драконов? Так что не боимся, закрываем глазоньки и слушаем волшебную сказочку...
image
— Именем Князя Питерского, давайте сюда декларацию. Что везем? Откуда?
— Из Новосибирска. 256 мегабайт сертифицированных данных для Интернета Его Высокопревосходительства. Научные, метеорологические, новости, деловая и частная корреспонденция, — доложила я, зная, что таможня шутить не любит.
— Открывайте, посмотрим.
— Что, все 256 мегабайт смотреть будете?
Открывайте, разберемся...
Total votes 375: ↑288 and ↓87+201
Comments54

Тульпа — карманная шизофрения для гиков или реальный воображаемый друг

Reading time9 min
Views1.5M
Скажите, вы бы хотели иметь друга? Любого человека или другое существо, которое будет вашим самым лучшим другом, обладая той внешностью, которая вам нравится, и тем характером который вам необходим, которое не надо будет делить с ее или его друзьями, родителями, собачкой, игрушками или учебой.
А секретаря, который всегда с вами, имеет прямой доступ к вашей памяти, напомнит, подскажет, и подаст нужную идею, напарника для мозгового штурма?
Тогда добро пожаловать под кат.



Тульпа — это стабильная самовнушенная осознанная визуализация, способная к самостоятельным мыслям и действиям, обладающая собственным сознанием. Что характерно, создается она совершенно осознанно, путем целенаправленных действий в течении долгого времени, и позволяет задавать начальный характер и форму по вашему усмотрению.
Это ты сейчас с кем разговаривал? Расшифруй определение.
Total votes 161: ↑83 and ↓78+5
Comments565

Комфортное освещение для работы и отдыха

Reading time5 min
Views350K
Мне редко встречались пространства с продуманным искусственным освещением, часто лампы светят в глаза, помещение недостаточно освещено и цвета предметов выглядят тусклыми или искажаются. Кроме того, освещение часто дает страшные тени на лицах. Я постарался разобраться в причинах и сделать приятное освещение.

Эта заметка содержит описание общих принципов создания комфортного освещения и фактическую реализацию бюджетного освещения жилой мастерской.



Читать дальше →
Total votes 67: ↑57 and ↓10+47
Comments95

Computer Language Benchmarks Game — хватит самодурства

Reading time1 min
Views6.1K
Появился сервис лет 10 назад назывался «Computer Language Shootout». Сейчас он называется The Computer Language Benchmarks Game. Сервис давал хоть какую-то возможность бегло оценить производительность реализаций языков программирования. Тема, конечно, пикантна. Время идёт, интерес к теме не падает. Есть одно «но». Cервис и раньше-то был весьма специфичен, но теперь дело совсем худо.
Читать дальше →
Total votes 101: ↑70 and ↓31+39
Comments48

Комикс Xkcd на 13 гигапикселов

Reading time1 min
Views68K


Вчерашний комикс Xkcd Click and Drag — это настоящий квест, на прохождение которого может уйти целый день. Комикс целиком занимает 165.888 x 79.872 px, то есть 13 гигапикселов. Если распечатать его с разрешением 300 dpi, то получится плакат 14 х 6,75 метра.
Читать дальше →
Total votes 145: ↑136 and ↓9+127
Comments81

Подделываем вашу подпись при помощи шарнирного механизма. Теорема Кемпе

Reading time5 min
Views222K
В этом посте я расскажу про программу, которая подделывает любую подпись при помощи шарнирного механизма. Программа основана на теореме Кемпе, доказанной в середине 19-го века.

Читать дальше →
Total votes 388: ↑382 and ↓6+376
Comments125

Конспекты для ленивых

Reading time2 min
Views239K
Все началось с того, что возникла необходимость переписать огромное колличество конспектов за довольно небольшой срок. Время поджимает, лени не уменьшается, а делать надо. Благо конспекты были в электронном варианте, решилась я на хитрость — создать свой рукописный шрифт и распечатать конспекты.
Читать дальше →
Total votes 151: ↑130 and ↓21+109
Comments134

Как начать писать игры

Reading time9 min
Views348K
Оригинал: Starting out on Game Programming

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

Вы только что закончили ваш первый курс по С++ и хотите начать делать игры. Кто-то указал вам на этот сайт и вы, возможно, поэкспериментировали немного с руководством. Вы изучили несколько лаконичных примеров, но не нашли руководства о том, как сделать целую игру. И на то есть причина.

Руководства хороши для обучения чему-то шаг за шагом, например тому, как перемещать изображение точки по экрану. Для того чтобы собрать игру воедино, вам нужны навыки решения возникающих проблем, приобретаемые лишь с опытом. Это не то, чему можно научиться из руководств. Лучший способ научиться делать игры — это начать их делать.
Дальше
Total votes 134: ↑119 and ↓15+104
Comments51

Хабракамп

Reading time2 min
Views14K
Хабракамп — это пост на Хабре, где в комментариях первого уровня IT-специалисты пишут темы, в которых они хорошо разбираются. Темы должны быть специфичные — nginx на 100 000 юзеров в день и настройка bind неинтересны и описаны везде, а nginx на 100 000 000 пользователей в день или настройка гео-DNS для распределенного сервиса интересно. Пользователи в ответ к комментариям пишут своим вопросы специалистам.
Обсуждение Хабракампа в Q&A: habrahabr.ru/qa/19034/
Просьба на первом уровне не задавать вопросы, а писать только специалистам об их сфере деятельности.
Для специалистов это шанс получить некоторое количество кармы, если им лень писать статьи, а для остальных — возможность задать вопросы, ответы на которые сложно найти в Google.
Не ленимся плюсовать тему, чтобы она вышла в топ.
Не забываем плюсовать карму тем кто ответил на ваши вопросы.

Читать дальше →
Total votes 266: ↑214 and ↓52+162
Comments1236

Information

Rating
Does not participate
Location
Хайфа, Хацафон, Израиль
Works in
Date of birth
Registered
Activity