Метка «упрощение»

Математические выражения в .NET (разбор, дифференцирование, упрощение, дроби, компиляция)
Мне со школьных времен был интересен алгоритм вывода аналитических производных и упрощения выражений. Данная задача была актуальна впоследствии и в вузе. Тогда-то я реализовал ее, только получилось все не так, как хотелось: вместо кода IL у меня просто генерировался C# код в текстовом виде, сборки не выгружались, ну и к тому же не было возможности вывода производных в аналитическом виде. Однако потом я решил все-таки реализовать такую библиотеку, так как интерес остался. Стоит отметить, что таких библиотек в интернете большое количество, но нигде я не нашел именно этапа компиляции выражений в IL код, т.е. по сути везде выполняется интерпретация, которая не столь эффективна, в отличие от компиляции. Ну и к тому же я это разрабатывал чисто для себя, для изучения новых технологий, особо не надеясь, что результат моих трудов может где-нибудь потребоваться.
Читать полностью »

Когда-то у нас было вот так:

Что мы сделали с личным кабинетом

А теперь стало так:

Что мы сделали с личным кабинетом

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

Для начала расскажу, почему приняли решение делать с нуля. Это была возможность полностью перебрать архитектуру. Старый личный кабинет работал на уже как минимум 10-летней давности ПО, который не масштабировался и обладал определенными ограничениями

Техническая часть

Использовалась 32-битная платформа, что накладывало определенные ограничения на размер используемой оперативной памяти, а использование legacy API, который зачастую уже не поддерживался производителем, негативно сказывалось на стабильности работы Java-приложений.Читать полностью »

Почему мне упорно кажется, что новый XCOM — это портированная настольная игра
Старая и новая базы: на новой есть комната с голографическим глобусом

Когда-то давным-давно благодаря доброму дяде Обрящикову из Тулы я завалил пару экзаменов. Кажется, ещё в школе. Потом первая UFO пару раз возвращалась на DOS-эмуляторе, что стоило мне минимум одной сессии. Новый XCOM убил всего пару выходных, но сделал это очень чётко и грамотно.

Уже потом я узнал, что на форумах идут жаркие споры о том, что ремейк мог бы быть и получше: в новой игре мало бойцов отряда, не очень богатая тактика, странный инвентарь, одна база… И тут я понял, что всё это время играл в настолку. Серьёзно, если бы мне вдруг захотелось перенести первую UFO в настольный вариант, я бы сделал ровно то же самое, что сделали Firaxis с новой XCOM. Тем более, что у них есть прекрасный опыт — «Цивилизация Сида Мейера» — уже несколько лет одна из самых продаваемых стратегий на западном рынке.

Поэтому давайте чуть-чуть пройдёмся по механикам и посмотрим, что же было сделано. Читать полностью »

Добрый день, коллеги!

Когда-то давно, еще не не имея полноценного аккаунта на Хабре, я написал статью в песочницу, надеясь получить инвайт. Инвайта я не получил, и думал, что статья ушла в никуда. Сегодня, просматривая логи Google App Engine, я обнаружил ссылку с сайта, на котором, как оказалось, размещена моя статья из песочницы. Оставляя за скобками вопрос о корректности такой публикации, хочу поблагодарить неизвестных мне добрых людей с сайта ajc.su/ за то, что сохранили для меня мою статью. :) Но, собственно, по теме.

Первый раз идея посетила меня, когда у меня возникла необходимость снять квартиру. Я просматривал объявления на Циане и отзванивался по наиболее интересным. После пары-тройки звонков я понял, что надо как-то упорядочивать обзвон — сохранять не только номера, но и адреса, а заодно и описания квартир. В этот момент я осознал, что при всем развитии Интернета контактную информацию по-прежнему приходится обрабатывать руками — в лучшем случае копировать поблочно и где-то сохранять. При том, что контакт — это объект, аналогичный, к примеру, календарю. Но если кнопки «Добавить событие в календарь» на многих сайтах уже есть, то вот кнопку «Добавить контакт в записную книжку» я пока еще не видел. Я решил восполнить этот пробел, и результатами своих размышлений и наработок хочу поделиться.
Читать полностью »

Я сегодня думал над тем, как можно упростить довольно привычное действие: позвонить по телефону, который написан на сайте. И в голову пришла такая идея — почему бы не делать так, чтобы при наведении курсора мыши на номер телефона отображалась всплывающая подсказка с QR-кодом, который можно тут же считать с помощью телефона, и сразу звонить, не переписывая номер вручную.

Скриншот страницы

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

JavaScript / Simplify.js — JavaScript-библиотека для упрощения ломаных линий
Рад представить вашему вниманию еще одну крохотную, но полезную open-source-утилиту своего авторства — Simplify.js.Simplify.js — очень быстрая реализация упрощения ломаных линий на JavaScript. Изначально написав ее для Leaflet (библиотеки для интерактивных карт), после небольшого эксперимента по оптимизации захотелось выпустить ее в качестве отдельной библиотеки без зависимостей, которую можно использовать как в браузере, так и на серверных платформах, таких, как Node.js, и применять и для 2D, и для 3D-точек.
Подобное упрощение позволяет на несколько порядков уменьшить количество точек в ломаной линии (например, представляющей длинный маршрут на карте илиЧитать полностью »