Новости информационных технологий - 28094

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

Уже сложно найти проект, в котором отсутствуют юнит-тесты. Их использование многим кажется избыточным, ведь это трата времени, которое с тем же успехом можно потратить на написание другого кода и “не, ну я точно знаю, что там все правильно”. Но, как мы убеждаемся, в долгосрочной перспективе тесты экономят больше времени, чем отнимают. Облегчается сопровождение кода, рефакторинг становится безопасным, отслеживается правильность любых изменений. Причем, чем выше покрытие — тем сильнее чувствуется полезность тестов.

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

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

Солнечная система на LibCanvas

Вчера был отличный топик, "История одного хабраспора", о создании «галактики» на HTML5 Canvas, который сам по себе да своими комментариями вдохновил меня на ответный код. Думал, до окончания документации, не писать новых вещей на Хабру, но, как видите, сорвался) Спасибо kibizoidus за это.

В топике вы увидите описание процесс создания галактической системы на последней версии LibCanvas. Быстро, оптимизированно, кратко.
Читать полностью »

image

Многие представители Хабрасообщества уже заказали себе миниатюрный ПК Raspberry Pi, и некоторые даже получили свой заказ. На Хабре не раз и два появлялись статьи с описанием того, что можно сделать из этого устройства. Теперь появилось еще больше возможностей, поскольку открылся официальный каталог приложений для Raspberry Pi. Каталог получил соответствующее название — Pi Store, и в нем можно найти бесплатные приложения для Raspberry Pi (пока их только 29, но постепенно количество увеличивается).

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

Политика обязательной регистрации под настоящим именем, последовательно проводимая компанией Facebook, противоречит законодательству Германии — утверждает Тило Вайхерт, возглавляющий комиссариат по защите данных (ULD) земли Шлезвиг-Гольштейн. 17 декабря ULD издал предписание, требующее немедленно разрешить использовать псевдонимы на сайте Facebook. Если корпорация не будет следовать этому предписанию, её может ожидать штраф в 20 000 евро.
Читать полностью »

Алгоритм ACOR

Привет, хабра. Хочу поделиться имеющийся у меня информацией по методам оптимизации, а именно по оптимизации методом колонии муравьев. В данной статье представлен алгоритм ACOR (Ant Colony Optimization for continuous domain). В будущем планирую представить еще несколько алгоритмов колонии муравьев. Может быть кому-нибудь пригодиться в университете или по работе.
Читать полностью »

В прошлой статье рассматривалась работа с ContactListener. Вот только примеры, которые я использовал, были не совсем верно выбраны. В Box2D есть намного более удобные средства для фильтрации столкновений, а именно – фильтры. О них и напишу в этот раз.

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

Я работаю программистом более 5 лет (web), и хотел бы поделиться методикой, которая экономит силы, время и помогает автоматизировать процесс проектирования.

Методика основана на объектно-ориентированном проектировании, но несколько необычна. Зато имеет очевидные плюсы:
— в идеале, программирование по CORE сводится к описанию задачи (код близок к бизнес-логике)
— чётко разделяет систему на слабосвязанные компоненты
— легко автоматизируема, позволяет генерировать осмысленный код

Почему методика называется CORE и как это расшифровывается? Отчасти потому, что у меня тяга к красивым названиям. По буквам:
Context — контекст вычислений (что инициировало вычисления)
Object — объект, который производит вычисления
Request — действие, которое нужно совершить, чтобы объект смог продолжить вычисления
Event — событие, которое происходит с объектом

Плюсы по сравнению со стандартными способами разработки:
— ускорение стадии проектирования за счёт формализованной схемы проектирования
— ускорение стадии разработки за счёт умной генерации кода
— автоматизация создания юнит-тестов
— неглючная реализация бизнес-логики практически любой сложности
— простая поддержка кода
— простота совместного владения кодом

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

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

В Китае начались продажи смартфона Oppo Ulike 2, показанного на иллюстрациях. Наиболее интересной особенностью устройства вполне можно считать фронтальную камеру, разрешение которой равно 5 Мп. Есть и тыловая камера разрешением 8 Мп.

Смартфон Oppo Ulike 2 получил фронтальную камеру разрешением 5 Мп

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

В сети знаменитой криптографической валюты Bitcoin наметился исход майнеров. Запрограммированное снижение вознаграждение в ноябре этого года от 50 BTC до 25, ополовинило доходы и сделало коммерческую выгоду сомнительной.
Больше всего это ударило по майнерам «средней руки», которые честно оплачивали счета за электроэнергию и приобрели недавно большую часть вычислительных мощностей.

В итоге, многие вынуждены уходить в альтернативные (форки) криптовалюты. Мощность сети BTC при этом продолжает падает. Такой параметр, как сложность завтра снизится с 3,370,181 до 2,980,398, почти на 12%

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

Сетевой рендеринг на гибридном кластере
Однажды в DEPO Computers поступил запрос рассчитать решение для 10 дизайнеров-проектировщиков, работающих в 3ds Max. Подобрать требовалось не только рабочие станции, но и рендер-сервер для визуализации полученных результатов. С графическими станциями проблем не возникло, но вот рендер-сервер никак не хотел вписываться в бюджет. Объем работ по рендерингу предполагался не большой, но скорость выполнения расчета требовалась высокая. Я порекомендовал заказчику использовать распределенные вычисления на всех рабочих станциях средствами сетевого рендеринга, но заказчика не устроил этот вариант. Он сообщил, что при запуске расчета, все сетевые машины загружаются на 100%, и возможность локальной работы практически исключается. При этом доступные средства, позволяющие отрегулировать нагрузку на сетевые машины участвующие в расчете, довольно сложны и не всегда могут решить поставленную задачу.

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


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