Рубрика «Песочница» - 165

Недавно на хабре появилась неплохая статья про вычисление N-ного числа фибоначи за O(log N) арифметических операций. Разумный вопрос, всплывший в комментариях, был: «зачем это может пригодиться на практике». Само по себе вычисление N-ого числа фибоначи может и не очень интересно, однако подход с матрицами, использованный в статье, на практике может применяться для гораздо более широкого круга задач.

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

loop 1000000000
  loop 1000000000
    loop 1000000000
      a += 1
      b += a
    end
  end
end
end

Незамедлительно выведет a = 1000000000000000000000000000, b = 500000000000000000000000000500000000000000000000000000, несмотря на то, что если бы программа выполнялась наивно, интерпретатору необходимо было бы выполнить октиллион операций.
Читать полностью »

Добрый день, читатели!

Я хотел бы поделиться решением проблемы проигрывания аудио из приложений iOS. Мы столкнулись с этим в процессе разработки очередного приложения: нам хотелось запускать и останавливать воспроизведение музыки и звуковых эффектов в разных местах, зачастую находящихся в разных классах приложения.

Класс для проигрывания аудио из приложений iOS

Обычно “болванка” необходимого функционала для этого копируется и адаптируется под конкретный сценарий использования. Мы делали это не раз и решили, что пришло время для более элегантного решения. Таким решением оказалось сделать “синглтон”, который был бы не только доступен из разных мест в приложении, но и сэкономил бы ресурсы системы в случае использования одного и того же аудио несколько раз.
Читать полностью »

Возникла нужда сделать универсальный парсер.

Задача

Имеется n сайтов (интренет магазинов), таких как ebay, buy. Нужно получить данные такого вида:

  • Title / Название продукта
  • Picture / Изображение продукта
  • Price / Цена

Всё должно в примерннотаком порядке:

  1. Подаём ссылку, например: www.buy.com/prod/mxl-condenser-microphone-and-pop-filter-bundle-mxl-2008-pf001/224516871.html
  2. В ответ получаем наши данные, тайтл, картинку, и цену. С возможностью редактирования
  3. Постим данные в наш сайт

Проблема

Данные должны также успешно парсится с любого интрнет магазина, при этом 100% результат должен получаться не меньше чем в 6 случаях из 10.

Варианты решения задачи

  • PHP parser по шаблону
  • JS parser с поиком слоёв рядом находящихся
  • Что-то другое

Читать полностью »

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

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

Начну с небольшого отступления. Ко мне как то напрямую обратился разработчик программного обеспечения, с просьбой проконсультировать по некоторым вопросам защиты решения, дальнейшего распространения и т.д. Предложения о том, чтобы взять в команду на обучение, проконсультировать и т.п. приходят с завидной регулярностью, но обычно я, отвечая на них деликатно говорю о нехватке времени (что соответствует истине), но не в этот раз… Завязалась непринужденная беседа в результате которой я задал собеседнику простой, как могло показаться вопрос:

Читать полностью »

Приходилось ли Вам когда-нибудь ломать голову над тем как вернуть из хранимой процедуры PostgreSQL сложную конструкцию с хитрой иерархией, и при этом не писать в приложении огромный костыль для парсинга древовидной структуры, утолканной силами разработчика в плоскую реляционную таблицу? Если ответ положительный, то прошу под кат…

Читать полностью »

Если вы уже знаете, что такое Maven и хотите собрать простое модульное веб приложение (если нет- можно прочитать топик о нем и основы). Тема данного топика- как сконфигурировать pom.xml, добавить отдельный модуль к проекту, подключить плагины, развернуть приложение на сервере Apache Tomcat.
Читать полностью »

В процессе работы над одним огромным проектом на Zend Framework, возникла необходимость миграции баз данных и перемещение между версиями, т.е. кроме update, был необходим так называемый downdate. Немного погуглив натолкнулся на интересную статью Роба Алана (в дальнейшем Автор) «Akrabat_Db_Schema_Manager: Zend Framework database migrations». Данная статья не является переводом оригинала, а скорее синтезом его и возникшей проблемы. Об этом и пойдет разговор.
Читать полностью »

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js