Рубрика «Программирование» - 911

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

to be or not to be? Книга по Java EE

Аннотация:

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java.
Книга, о которой мы хотим рассказать, представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этой фундаментальной книге также используется новейшая версия инструмента GlassFish, применяемого для развертывания и администрирования примеров кода.
Читать полностью »

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

Приведу пример: Если кодировать цифры согласными буквами, то каждое слово или предложение соответствует целому числу. Обычно выбирают следующий способ кодирования 1-р, 2-д, 3-т, 4-ч, 5-п, 6-ш, 7-с, 8-в, 9-м (потому что 9 это “много”). Тогда слова “добрый мой приятель” соответствуют числу 219513. Но это несколько неудобно, поскольку без специальной подготовки не получается быстро выкинуть ненужные буквы, тем не менее, “добрый мой приятель” забыть довольно сложно, что всегда позволит вам находясь в спокойной обстановке вспомнить число 219513. И это весьма заманчиво, поскольку само по себе число это является весьма абстрактным и может запросто перепутаться с другими такими же абстрактными числами.
Читать полностью »

Как часто вам присылают подобные отчеты об ошибке?

Traceback (most recent call last):
...
  File "...", line ..., in ...
    process(lst[index])
IndexError: list index out of range

Ох, если бы только узнать значение lst и index на тот момент...

python-catcher — автоматическая генерация HTML-трейсбеков с локальными переменными и исходниками, + загрузка в интернет — пользуйтесь на здоровье.

Красивые трейсбеки в Python

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

Введение

В данной статье пойдет речь о методе распознавания рукописного ввода путем математического анализа всех точек плоскости и перебора всех возможных комбинаций с целью отыскать наиболее лучшее наложение контрольных точек на ранее описанные фигуры. Поясню.
Рукописный ввод — это рисование мыслимым «пером» определенной фигуры. Рисование в компьютерных системах — это сохранение в графической памяти информации обо всех пикселях графического контекста. «Точка на плоскости» в математике — понятие абстрактное. В компьютерной же графике за этим понятием скрывается «пиксель». Данный алгоритм распознавания будет анализировать предоставленный ему набор точек( пикселей ) и пытаться в нем отыскать наиболее возможную и похожую фигуру. Фигура, в свою очередь, это каркас, содержащий лишь основные( контрольные ) точки, делающие фигуру уникальной.

Матчасть

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

image

A( x1;y1 )
B( x2;y2 )
C( x3;y3 )

расстояния между точками находятся по теореме Пифагора

a^ = b^ + c^ — 2*b*c*cos(ALPHA)
cos(BETA) = (b^+c^-a^) / 2*b*c

Зная косинус, величину угла легко можно вычислить.

Среди набора точек, которые подаются на вход алгоритма, необходимо «подставить» точки во всевозможные каркасы фигур( о них выше ) и выбрать наилучшее решение среди найденных. Делается это следующим образом:

  1. Мы берем первую и последнюю точки каркасов фигур. Уже две есть, осталось отыскать третью ( для нахождения величины угла ).
  2. Поиск третьей осуществляется перебором все последующих точек после первой. Решение включать точку в предполагаемый каркас фигуры принимается на основе двух анализов:
    • Попытка подставить точку в угол( в качестве третьей, заключительной ) и проверить его на соответствие величине того же угла в каркасе реальной фигуры.
    • Проверить отношение сторон получившегося угла с тем же отношением сторон угла в каркасе реальной фигуры.

Если эти два условия выполняются, то алгоритм принимает решение о включении точки из набора точек в мыслимый каркас( при этом увеличиваем величину похожести на текущую анализируемую фигуру ).

Если, допустим, у нас есть несколько анализируемых каркасов, например, «8» и «6». И результат алгоритма распознавания: «8»-80%, «6» — 90%, то решение принимается в пользу той фигуры, в каркасе которой присутствует больше контрольных точек, т.е в пользу восьмерки.

Процент сходства набора точек с точками в каркасе высчитывается просто: суммируются все точки, которые сошлись с теми же точками в каркасе и находится отношение. Допустим, если в каркасе N контрольных точек, а у нас сошлось M, то процент сходства — M / N * 100

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

Представляем Вашему вниманию 7-й и последний выпуск нашего (мы это портал Айти-событие.рф) «Дайджеста предстоящих IT-событий» на август 2013 года.
Дайджест предстоящих IT событий на август 2013 года

Для удобства навигации все события разделены на 4 категории:

  • I. Девелоперские
  • II. Стартаперские
  • III. Маркетинговые
  • IV. Разное


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

Изменение калькуляторов расчета на сайте без программистов
Привет!

В данной статье расскажем, какое применение мы нашли для технологии Excel Services, входящей в состав сервера SharePoint, для построения калькуляторов банковских продуктов.
В 2011 году мы разрабатывали сайт банка ВТБ24, одной из важных задач, которую должен решить новый сайт, было предоставление удобного инструмента для создания и обслуживания калькуляторов и заявок, связанных с продуктами банка. Например, для продукта кредитования «АвтоСтандарт» банк предоставляет пользователю сайта возможность самостоятельно рассчитать с помощью калькулятора, сумму выплат, и в случае, если все устраивает, можно отправить заявку.
Читать полностью »

Вчера я провел опрос программистов на тему А на каком ноутбуке вы программируете большую часть времени?, в результате получилось много информации к размышлению.

Самый популярный размер экрана ноутбука

На чем работают программисты
Как видно из графика, большинство людей устраивает ноутбук с диагональю 15" и меньше. Горб приходится на 13-15", причем, далеко не все эти ноутбуки имеют разрешение более 1366x768. Доля ноутбуков с диагональю более 15" составила всего 15%. 14" — это тоже очень популярный размер, просто моделей с такой диагональю на рынке очень мало.

Конечно, от области работы очень сильно зависит минимально требуемый размер экрана. Если использовать сложные IDE, много сопутствующих программ, в том числе для общения и организации работы в команде, если приходится заниматься версткой и эффектами — тут обязательно нужен либо большая диагональ ноутбука (читай много пикселей), либо дополнительный внешний экран. Для работы с javascript, php, для работы индивидуально зачастую достаточно небольшого экрана, и, конечно же, маленькие шустрые ноутбуки привлекают к себе внимание.

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

RESTful сервис для продажи ж/д билетов

Предыстория

Будучи студентом я периодически ездил домой на поезде. Так как в мои края ездило всего лишь два прицепных вагона, о билетах приходилось заботиться заранее. Естественно, это было крайне неудобно и я, молодой и зеленый, быстро написал небольшое приложение на Qt Framework, которое ходило не сервер УЗ и проверяло наличие билетов. Как только появлялся заветный билет, приложение отправляло смс.

Шли годы, появился Android, а затем и Necessitas – порт Qt для Android. Недолго думая, я взялся за портирование приложение на платформу Android. Работа была быстро сделана и результат был опубликован в Google Play. И тут меня ожидало разочарование… Огромное количество ошибок в Necessitas, не родной интерфейс Android, сложность установки и еще куча других причин сделали свое дело. Оценки получались в основном негативными и руки у меня быстр опустились. Обиженный на весь мир я удалил приложение с Play и на какое-то время забыл…
Читать полностью »

Доброе время суток! Я занимаюсь разработкой MMORPG. В игре асинхронной загрузкой файлов занимается файловая система встроенная в движок, остальная логика обрабатывалась в основном потоке. Но помимо загрузки файлов есть и другие тяжеловесные операции, например инициализация персонажа, которая включает в себя распарсивание XML данных, композиция текстур и т.д. И я столкнулся с необходимостью разгрузить основной поток игры для повышения fps.
Вооружившись гуглом и прочитав несколько последних статей на Хабре о потоках, решил попробовать свои силы и написать свой велосипед ThreadPool. Основной моей целью было написать простой в использовании и расширяемый пул потоков, с возможностью асинхронного вызова функций с любым количеством аргументов и получения возвращаемого значения. Предлагаемые на Хабре решения меня не устроили в силу многих проблем, от которых я постарался избавиться в своем решении – использовать минимум шаблонной магии и отказаться от абстрактных классов и наследования. Я хочу поделиться своим опытом с вами.

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

Редактирование конфигов в Python

Вам когда-нибудь приходилось парсить и программно вносить изменения в чужие конфигурационные файлы? А в файлы с ненормальными форматами вроде того, что у NSD или BIND9? А если формат предусматривает переносы строк, смысловые отступы и сохранение комментариев, задача быстро покидает категорию тривиальных.

Вот почему я делюсь с вами библиотекой python-reconfigure.
Читать полностью »


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