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

Привет!
Пишем настоящий Pointer Analysis для LLVM. Часть 1: Введение или первое свидание с миром анализа программ - 1
Эта статья станет вступительной в моем небольшом цикле заметок, посвященном такой технике анализа программ, как pointer analysis. Алгоритмы pointer analysis позволяют с заданной точностью определить на какие участки памяти переменная или некоторое выражение может указывать. Без знания информации об указателях анализ программ, активно использующих указатели (то есть программ на любом современном языке программирования — C, C++, C#, Java, Python и других), практически невозможен. Поэтому в любом мало-мальски оптимизируещем компиляторе или серьезном статическом анализаторе кода применяются техники pointer analysis для достижения точных результатов.

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

По мнению аналитиков IHS, в следующем году поставки изогнутых дисплеев для смартфонов вырастут на 135% и составят около 139 млн единиц. Как ожидается, изогнутые дисплеи составят 3,8% от суммарных поставок экранов для смартфонов.

В этом году первые модели с такими дисплеями выпустили Vivo и Xiaomi, которые набирают популярность не только в Китае, но и в остальных регионах мира. Различные источники подтверждают, что обе модели Samsung Galaxy S8 также будут иметь только изогнутые дисплеиЧитать полностью »

Источник поделился слайдами, которые, судя по всему, будут показаны во время онлайн-трансляции New Horizon, которую AMD проведёт сегодня в полночь. Таким образом, кое-какую информацию о новых процессорах компании мы знаем уже сейчас.

Во-первых, предположения касательно именованияЧитать полностью »

Приветствую вас, фотогики!

Портретная фотосъёмка, по-хорошему, является искусством. А искусство — штука субъективная.
Но для фотосъёмки мы пользуемся техническими устройствами, а значит неизбежно «скованы» законами, которым эта техника подчиняется. И о них хотелось бы поговорить, т.к. мифов тут полным полно…
Портрет девушки

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

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

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

Всем привет! Недавно я уже писал статью про интеграцию своего бота с IBM Watson, а в этой статье рассмотрю интеграцию с Google Cloud Vision для распознавания котиков и более подробно опишу внутренности своего бота.
Читать полностью »

В нынешнем году на рынок вышло несколько моделей гарнитур виртуальной реальности, которые в итоге стали самыми популярными. Аналитики Canalys прогнозируют, что по итогам текущего года мировые поставки таких устройств превысят 2 млн, а к 2020 году объём продаж вырастет до 20 млн. Отметим, что в это число входят только те гарнитуры VR, которые оснащены собственными дисплеями.

Лидером рынка шлемов VR, согласно отчёту, является Sony. Несмотря на задержки с началом поставок, компании удалось реализовать более 800 000 своих гарнитур.

Как мы уже сообщали, из-за осеннего взрыва ракеты Falcon 9 и длительного расследования его причин компании SpaceX пришлось скорректировать график запусков. В итоге было объявлено, что следующий старт перенесен на начало января 2017.

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

Для начала я приведу небольшой тестовый проект из трёх классов, проанализирую его покрытие с помощью гема SimpleCov, а напоследок немного поразмышляю о том, как анализ покрытия может приносить пользу проекту, и какие есть недостатки у Coverage в Ruby.

Анализ покрытия кода тестами в Ruby - 1

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

# Мама очень заботится о своём сыне, и не разрешает ему гулять,
# если он не надел шарф. А ещё она заботится о его успеваемости, поэтому если
# сын не сделал домашнюю работу, гулять ему она тоже не разрешит.
class Mother
  def permit_walk?(child)
    child.scarf_put_on && child.homework_done
  end
end

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

image Привет, Хаброжители! Совсем недавно мы перевели бестселлер Сэнди Метц.

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

Внимательно изучив это руководство, вы сможете: • Понять, как писать на Ruby качественный код в духе ООП • Решать, что должно входить в состав класса Ruby • Не допускать тесной связи между объектами в тех случаях, когда требуется разграничить функциональность • Определять гибкие интерфейсы между объектами • Освоить утиную типизацию • Эффективно задействовать наследование, композицию и полиморфизм • Разрабатывать экономные тесты • Доводить до совершенства любой legacy-код Ruby.
Читать полностью »


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