Начинается разработка OpenJDK 10

Сегодня Mark Reinhold объявил об открытии репозиториев mercurial для Java 10, и разработчики, имевшие статус committer и выше в проекте Java 9, получили возможность размещать багфиксы и мелкие улучшения, которые не предполагается вносить в Java 9. Всем разработчикам (например, мне) обновили статус на страничке переписи OpenJDK.

Крупные изменения вносить пока не рекомендуется во избежание конфликтов. Изменения в Java 9 ещё не завершены и некоторое время придётся их переносить в Java 10. При отсутствии конфликтов процедура будет автоматизирована, так что тем, кто продолжает вносить исправления в Java 9, скорее всего не придётся лишний раз беспокоиться.

Читать дальше →
Начинается разработка OpenJDK 10
Source: habrahabr

Как приручить дракона. Краткий пример на clang-c

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

Как и следовало ожидать, почти ничего особенного не нашлось, однако одно объявление меня заинтересовало. В нём были такие строки:
«Кого мы возьмем «не глядя» или уровень выполняемых задач:

Вы скачали любой open source проект, собираемый при помощи gcc (объем исходного кода более 10 мегабайт) и для самого большого файла cpp смогли построить AST дерево при помощи clang с –fsyntax-only;

Вы скачали любой open source проект, собираемый при помощи Visual C++ (объем исходного кода более 10 мегабайт) и для самого большого файла cpp смогли построить AST дерево при помощи clang с –fsyntax-only;

Вы смогли написать утилиту, которая выделит все места деклараций и использования локальных переменных, а также все функции, не определенные в данном файле
»


Ну что же, подумал я, какое-никакое, а развлечение на вечер.


Читать дальше →
Как приручить дракона. Краткий пример на clang-c
Source: habrahabr

SystemJS 0.20 — Совмещая с браузерными модулями

Это перевод поста в блоге Гая Бедфорда — основного разработчика таких замечательных инструментов, как JSPM — менеджера пакетов для браузеров и NodeJS, который работает на основе его же детища SystemJS — асинхронного загрузчика JS модулей любых известных форматов, способного расправляться в том числе с циклическими зависимостями, и который, в свою очередь, основан на его же детище под названием es-module-loader, полифиле для загрузки ES модулей. Как я понимаю, автор довольно сильно переписал SystemJS в данном релизе, и об этом будет интересно почитать хабраюзерам.

SystemJS 0.20 только что зарелизился — это полная его переработка, а также коррекция спецификации проекта, в то время как ES модули уже находятся прямо здесь, в браузерах.

SystemJS изначально был разработан ещё в 2013-м году для проекта jspm, в то время когда RequireJS был лидирующим загрузчиком модулей. Параллельно, быстрыми темпами, развивался ES6, и модули ES6 всё ещё казались нематериальным сном. Идея была простой и убедительной: модули приходят в браузеры, так что вы должны иметь возможность загружать любой модуль в любое время из браузера, что дало бы очень простой процесс разработки.

Читать дальше →
SystemJS 0.20 — Совмещая с браузерными модулями
Source: habrahabr

[Из песочницы] Arduino на автомойке

Наверное многие уже видели автомойки самообслуживания. Можно ли создать такой аппарат на Arduino?

… следующая волна экономических бедствий… будет результатом быстрой поступи автоматизации, которая упраздняет многие хорошие рабочие места уровня среднего класса (Б. Обама)

Читать дальше →
[Из песочницы] Arduino на автомойке
Source: habrahabr

Простой вариант системы видеонаблюдения в помещении с использованием датчика движения и Python на платформе Raspberry

Доброго времени суток, хабровчане!

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

Читать дальше →
Простой вариант системы видеонаблюдения в помещении с использованием датчика движения и Python на платформе Raspberry
Source: habrahabr

[Перевод] Как соответствовать ожиданиям заказчика

imageПредставляю Вашему вниманию еще одну статью Стюарта Рейнса. В этот раз он делится своим опытом, как успешно заключать Соглашения об Уровне Обслуживания (Service Level Agreement, SLA).


Оригинал см. «How to Meet Customer Expectations» опубликован 13.12.2016 в блоге blog.sysaid.com


Сложность материала — начальный уровень.


Материал может быть интересен для осознания подхода, проповедуемого ITSM к работе с Заказчиками и Пользователями, а также может нанести не поправимую пользу тем, кто только ознакомился с теорией процесса Управления Уровнем Обслуживания и желает ее применить на практике, либо тем кто безуспешно пытался это сделать и сейчас ищет что-то новый в этом.


Но опять призываю Вас быть аккуратными в своих выводах. Описанное в статье это идеальная ситуация, когда и Поставщик, и Заказчик Услуг искренне заинтересованы в сотрудничестве ради ценности Услуги. На практике такое встречается, скажем так, не всегда, при чем с обеих сторон.
Читать дальше →
[Перевод] Как соответствовать ожиданиям заказчика
Source: habrahabr

[Перевод] Разработка архитектуры нового приложения для пассажиров Uber

— Здравствуйте. Скажите, сколько стоит сделать приложение типа Uber?


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


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


Теперь у нас есть аргумент в защиту нашей позиции. Разработчики Uber опубликовали в блоге компании заметку про опыт переноса приложения с одной архитектуры на новую, собственную. Это очень масштабное мероприятие подтверждает, что Uber — далеко не элементарное приложение. Мы не могли пройти мимо этого материала и не перевести его.


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


Читать дальше →
[Перевод] Разработка архитектуры нового приложения для пассажиров Uber
Source: habrahabr

[Из песочницы] Маппинг в C# на примере сериализатора для AMF

Приветствую, друзья. Сегодня речь пойдёт о реализации маппинга на C#, а так же о применении сей реализации в решении реальных задач на примере отправки данных AMF на сервер. Всё нижеизложенное не претендует на какие-либо эталоны реализации алгоритмов и паттернов проектирования кода, это лишь описание одного из множества, далеко не всегда очевидных для новичков, решений.


В процессе изучения статьи, Вы узнаете как реализовать собственные атрибуты и как их применять, познакомитесь с методами расширений типов и применением рефлексии на практике, узнаете об основах MSIL в целом и OpCodes в частности, а так же о том, как можно сериализовать объекты в AMF с помощью потоков.
Читать дальше →
[Из песочницы] Маппинг в C# на примере сериализатора для AMF
Source: habrahabr

Первый настоящий конвертер кампаний Директа в Adwords

Вопрос переноса и конвертации рекламных кампаний из Яндекс Директа в Google Adwords предо мной встал практически сразу, как я начал заниматься контекстной рекламой. И как показывает практика — не у меня одного есть такая потребность. Почему именно из Директа в Adwords, а не наоборот? Да всё просто — создавать кампанию в excel для Директа гораздо проще.

Что мы имеем на текущий момент из инструментов для такой задачи:

  1. Табличный конвертер в Google Docs от сообщества Adwords.
  2. Файл Excel с настроенными макросами (похож по функционалу на предудущий) ссылка
  3. Бесплатный конвертер от агентства «Точно»
  4. И наш новый сервис Synapse-transfer.ru

Читать дальше →
Первый настоящий конвертер кампаний Директа в Adwords
Source: habrahabr

[Перевод] Понимание процесса визуализации

Браузеру предстоит пройти много шагов, прежде чем HTML ответ от сервера будет преобразован в пиксели на экране. Последовательность этих шагов, необходимая для первого отображения страницы, называется «Процесс визуализации» (ориг. Critical Rendering Path).

Читать дальше →
[Перевод] Понимание процесса визуализации
Source: habrahabr