Архив за 15 августа 2016 - 4

Adobe AIR + Starling + растеризация векторной графики - 1

Прошло некоторое время с тех пор, как я начал делать игры для iOS и Android на Adobe AIR. Сегодня хочу поделиться способом создания игр под различные разрешения экранов — этот подход я успешно применяю в своих проектах.
Читать полностью »

59% новостей, размещенных в соцсетях, не были прочитаны дальше заголовка. К такому выводу пришли авторы исследования активности пользователей Twitter.

В июне 2016 года коллектив авторов, среди которых сотрудники Колумбийского университета, отдела исследований Microsoft и ряда других научных организаций, опубликовали исследование, Читать полностью »

Полтора года назад адепты функционального программирования основали сообщество RuHaskell и с тех пор периодически собираются, и проводят митапы. Ну как периодически — уже два раза собирались. Мы тут, в «Лаборатории Касперского», вообще очень поддерживаем это начинание. Во-первых, потому что это интересно, во-вторых, потому что мы используем Haskell в процессе разработки наших решений, а в-третьих, потому что некоторые участники сообщества у нас работают. А потому мы решили собрать третий митап этого сообщества на нашей территории. 18 августа все заинтересованные могут прийти в наш московский офис (Ленинградское шоссе, д.39А, стр.2), послушать умных людей, обсудить Haskell, поделиться опытом, позадавать вопросы и пообщаться. Разумеется, предварительно следует зарегистрироваться вот на этой страничке.

Митап Haskell-программистов в «Лаборатории Касперского» (в смысле — ждем) - 1


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

В последнее время участились статьи и обсуждения на тему прощания с ООП и поиски смысла, который Алан Кэй изначально вкладывал в это понятие.

Несколько высказываний Кэя для тех, кто пропустил

I made up the term “object-oriented”, and I can tell you I didn't have C++ in mind

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.

I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is “messaging”.

The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be.

Late binding allows ideas learned late in project development to be reformulated into the project with exponentially less effort than traditional early binding systems (C, C++, Java, etc.)

I’m not against types, but I don’t know of any type systems that aren’t a complete pain, so I still like dynamic typing.

В связи с этими обсуждениями, часто всплывает мысль о том, что Erlang/Elixir очень хорошо удовлетворяют критериям, которые Кэй предъявлял к понятию «объектно-ориентированный». Но далеко не все знакомы с этими языками, поэтому возникает непонимание как функциональные языки могут быть более объектно-ориентированными, чем популярные C++, Java, C#.

В этой статье я хочу на простом примере с exercism.io показать как выглядит ООП на Elixir.

Описание задачи

Напишите небольшую программу, который хранит имена школьников, сгруппированные по номеру класса, в котором они учатся.

В конце концов, вы должны быть в состоянии:

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

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

Работа с фреймворком итеративной обработки графов Giraph на примере RBM - 1
The Indifferent by xetobyte

Всем привет. В предыдущей статье мы рассказали, как создавать свои приложения под фреймворк Giraph (надстройка над системой обработки данных Hadoop), и обещали подробно рассмотреть, как работать с Giraph, на примере алгоритма обучения Restricted Boltzmann Machine. Итак, в какой-то момент группа сегментации аудитории департамента рекламных технологий Mail.Ru Group столкнулась с необходимостью подобрать инструмент для быстрого анализа графов, и по целому ряду причин (читайте ниже) наше внимание привлекла система Apache Giraph.
Читать полностью »

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

Проектирование

Начало хорошего кода — это всегда проектирование. Программисты, которые не умеют утихомирить страсть к написанию кода, этим опуская проектирование, пишут обычно быстро, но не качественно. Я это знаю, так как сам имел ту же проблему. Проектирование дает возможность взглянуть на систему, которой еще фактически нету, продумать правильную структуру приложения и данных, увидеть тонкости, риски, подумать о производительности и безопасности. При этом проектирование это не только прерогатива начала проекта. Проектирование — это неотъемлемая часть, при разработке любой «Feature».
Читать полностью »

Исследователи рекомендуют срочно отключить протокол WPAD на Windows

Уязвимость в WPAD позволяет получать доступ к данным, защищенным при помощи HTTPS и VPN - 1Web Proxy Auto-Discovery Protocol (WPAD) — это протокол автоматической настройки прокси, который используется клиентами (браузером) для определения места (URL) расположения конфигурационного файла с использованием технологий DHCP и/или DNS. При совершении запроса браузером вызывается функция FindProxyForURL из PAC-файла, куда передается URL и хост. Ожидаемый ответ — список прокси, через которые будет осуществляться выход на этот адрес.

WPAD включен по умолчанию в Windows, поддерживается он и другими операционными системами. Но этот протокол подвержен ряду уязвимостей, что показали специалисты по информационной безопасности Алекс Чапман (Alex Chapman) и Пол Стоун (Paul Stone) на Defcon. Злоумышленники, используя эти уязвимости, могут получить данные жертвы (история поиска, доступы к аккаунтам, фото, документы и т.п.), несмотря на HTTPS или VPS соединения. Тип атаки, который применяется в этом случае — man-in-the-middle.
Читать полностью »

Конечная цель создания резервной копии – обеспечить возможность восстановления данных в случае сбоя, и сегодня я вкратце расскажу, как с этим способен справиться новый Veeam Agent for Linux. Возьмем в качестве «подопытного кролика» тот же бэкап, создание которого было описано в предыдущем посте, и посмотрим, как из него можно восстановиться. За сим добро пожаловать под кат.

Восстановление из резервной копии с помощью Veeam Agent for Linux - 1

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

Несколько лет назад Тренер Luxoft Agile Practice — Вячеслав Москаленко столкнулся с проблемой, что многие Скрам-команды не оценивают все истории в Бэклоге Продукта. А зря, ведь оценка дает нам прозрачную картину реального прогресса и возможность управлять ожиданиями наших заказчиков, не дожидаясь финишной прямой нашего проекта, когда уже поздно что-то менять.

Как планировать и оценивать проекты в Agile? - 1 «Вот так и родилась у меня мысль создать игру, через которую я смог бы заинтересовать команду начать оценивать все истории в относительных попугаях. И тогда мне пришла идея с закрашиванием пустых фигурок на флип-чарт бумаге.

Когда я в первый раз провел игру-раскраску на одном из мастер-классов местной ПМ-тусовки, даже не ожидал, что достаточно консервативные менеджеры проведут так весело время и получат объяснение „Что такое относительный стори поинт? В чем его ценность?“. С тех пор я провел эту игру на многих тренингах и нескольких конференциях, включая SECR-2015 и Agile Days Russia 2016».
Читать полностью »

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

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


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