Архив сентября 2017 - 115

image

Элон Маск и остальное руководство компании SpaceX планируют произвести первый запуск ракеты-носителя тяжелого класса Falcon Heavy в ноябре этого года. В рамках подготовки к этому запуску компания проводит программу испытаний ключевых компонентов и узлов будущей ракеты, первые из которых были начаты в мае этого года. А буквально на днях специалисты компании успешно завершили испытания всех трех первых ступеней будущей ракеты.

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

Постановка задачи

Цифровые и аналоговые датчики, подключенные к Arduino, генерируют большие объёмы информации, которая требует обработки в реальном масштабе времени [1].

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

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

«Почему ж всё так плохо?» — каждый раз я задаюсь этим вопросом, когда приходится иметь дело с очередным кодом, продуктом или API, созданными для внутренних нужд в непрофильной организации.

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

И деньги ничего не решают: ужасный код и ужасные продукты пишут как маленькие бедные ВУЗы, у которых денег хватает только на рабский труд аспирантов, так и крупные и богатые компании, включая IT-компании, включая зарубежные: несколько раз сталкивался с кодом, который писали зарубежные подрядчики и каждый раз от него хотелось рыдать и биться головой об стену.

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

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

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

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

Наследование является одним из основных принципов ООП. В то же время, значительное количество корпоративных приложений имеют в своей основе реляционные базы данных

Главное противоречие между объектно-ориентированной и реляционной моделями заключается в том, объектная модель поддерживает два вида отношений («is a» — “является”, и «has a» — “имеет”), а модели, основанные на SQL, поддерживают только отношения «has a».

Иными словами, SQL не понимает наследование типов и не поддерживает его.

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

Всего таких стратегий 4:

1) Использовать одну таблицу для каждого класса и полиморфное поведение по умолчанию.

2) Одна таблица для каждого конкретного класса, с полным исключением полиморфизма и отношений наследования из схемы SQL (для полиморфного поведения во время выполнения будут использоваться UNION-запросы)

3) Единая таблица для всей иерархии классов. Возможна только за счет денормализации схемы SQL. Определять суперкласс и подклассы будет возможно посредством различия строк.

4) Одна таблица для каждого подкласса, где отношение “is a” представлено в виде «has a», т.е. – связь по внешнему ключу с использованием JOIN.

Можно выделить 3 главных фактора, на которые повлияет выбранная вами стратегия:

1) Производительность (мы используем “hibernate_show_sql”, чтобы увидеть и оценить все выполняемые к БД запросы)

2) Нормализация схемы и гарантия целостности данных (не каждая стратегия гарантирует выполнение ограничения NOT NULL)

3) Возможность эволюции вашей схемы

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

Привет, уважаемые читатели. В этой статье попробуем разобраться что такое итерируемый объект, итератор и генератор. Рассмотрим как они реализованы и используются. Примеры написан на Python, но итераторы и генераторы на мой взгляд фундаментальные понятия, которые были актуальны 20 лет назад и еще более актуальны сейчас, при этом за это время фактически не изменились.

Итерируемый объект, итератор и генератор - 1
Читать полностью »

В прошлой статье мы говорили об истории развития Microsoft Data Protection Manager. Сегодня предлагаем пойти дальше. Вы узнаете о том, как он работает технически, с заглядыванием на страшного зверя VSS.

DPM: Почему он похож на лук? - 1
Читать полностью »

Окончательная отмена роуминга перенесена ФАС на 2018 год - 1
Фото: Газета.ру

Федеральная антимонопольная служба (ФАС) России приняла решение продлить обсуждение отмены внутрисетевого роуминга с операторами «большой четверки». Окончательное решение должно быть вынесено до конца 2017 года, сообщает «Прайм».

Руководитель ФАС Игорь Артемьев заявил, что окончательная отмена роуминга ожидается в 2018 году. Если вложиться в указанный период времени не получится, то операторов заставят выплатить крупные штрафы. «Мы хотим в этом году закончить всю эту историю (с роумингом — прием. ред.), иначе мы примем самые большие санкции, какие есть в нашем распоряжении», — сказал Артемьев. Сумма штрафов, по словам главы ведомства, может достигать миллиардов рублей.
Читать полностью »

Производитель сериалов и кино Yellow Black and White инвестирует в онлайн-видеосервис Start для русскоговорящих зрителей за границей более 1 млрд рублей. Об этом сообщает «Коммерсантъ» со ссылкой на гендиректора Егора Яковлева. Запуск сервиса запланирован на октябрь.

Кинотеатр будет показывать российские кино и сериалы на разных устройствах, контент будет доступен с субтитрами на нескольких языках по подписке. Стоимость подписки в настоящее время неизвестна. Издание отмечает,Читать полностью »

Как Вы вирус назовете? - 1

Petya, Misha, WannaCry, Friday 13th, Anna Kournikova… Имена компьютерных вирусов, вызвавших настоящие эпидемии в сети, долго остаются на слуху. Их постоянно повторяют СМИ, как правило, не вдаваясь в технические подробности и путая модификации между собой.

А вы когда-нибудь интересовались, как и кто дает имена вирусам? Ведь компьютерных зловредов много, их миллионы, и все надо как-то называть. Под катом — краткий экскурс в нейминг вирусов, троянов и прочей компьютерной нечисти.
Читать полностью »

→ Часть 1: Как работает JS: обзор движка, механизмов времени выполнения, стека вызовов

Перед вами — второй материал из серии, посвящённой особенностям работы JavaScript на примере движка V8. В первом шла речь о механизмах времени выполнения V8 и о стеке вызовов. Сегодня мы углубимся в особенности V8, благодаря которым исходный код на JS превращается в исполняемую программу, и поделимся советами по оптимизации кода.

Как работает JS: о внутреннем устройстве V8 и оптимизации кода - 1
Читать полностью »


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