Архив за 12 января 2016 - 5

В ноябре прошлого (уже) года, Hola объявила конкурс по программированию почтовых фильтров на js, и недавно опубликовала его результаты.

Я разделил второе место с Ильей Макаровым, и сейчас я расскажу…

Как это было

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

Еще летом прошлого года исполнительный директор Nokia Раджив Сури (Rajeev Suri) подтвердил, что компания планирует вновь заняться выпуском мобильных телефонов. По условиям подписанного с Microsoft соглашения, компания не имела права заниматься этим до 1 января 2016.

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

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

Samsung готовит новые аппараты Galaxy J1 и J5

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

В норвежской школе киберспорт вводится в качестве дополнительный дисциплины - 1

Сейчас в большинстве школ мира установлены компьютеры, на которых прилежные ученики познают премудрости информатики. Конечно, некоторые успевают поиграть, если есть свободная минутка и техническая возможность, но уроки информатики в школах — это серьезно, никаких игр обычно нет. А вот Garnes Vidaregåande Skole, школа из Бергена, Норвегия, собирается обучать своих учащихся киберспорту. Соответствующие занятия стартуют в августе.

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

Еще один выстрел в ногу

imageКонцерн General Motors запустил собственную программу поиска багов и уязвимостей за «вознаграждение», сообщает securityledger.com. Изюминкой новой BB стало то, что деньги за найденные уязвимости концерн выплачивать не будет.

Предназначена программа для «White hat»-хакеров и специалистов по информационной безопасности, которым GM предоставит доступ к своему программному обеспечению. Запущена «Bug Bounty» в целях повысить интерес «White hat»-хакеров и других экспертов к работе над внутренним ПО компании. Фактической же «наградой» за участие станет отсутствие судебных исков к специалистам, нашедшим уязвимости.
Читать полностью »

$350 — именно столько просит Creative за новую портативную акустическую систему Sound Blaster Roar Pro. Устройство с габаритами 202 х 115 х 57 мм и массой 1,1 кг может похвастаться пятью излучателями.

АС Creative Sound Blaster Roar Pro стоит $350

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

Начало

Однажды мне пришлось заняться разработкой Web-приложения для корпоративного использования на Python+Django. И самым первым вопросом, который пришлось решать — это прозрачная авторизация на сайте или Single Sign-On (SSO).

На предприятии широко используется служба каталогов на базе Microsoft Active Directory, и к настоящему моменту практически все корпоративные приложения позволяют использовать windows-авторизацию и не вводить постоянно логины/пароли, поэтому новое приложение просто должно было удовлетворять существующему положению вещей и реализовывать указанную выше возможность для «прозрачной» авторизации пользователей.

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

Итак мы имеем:

  • Служба каталогов Microsoft Active Directory,
  • Имя домена Windows: company.ru
  • Имя контроллера домена Windows 2012 Server: DC-1
  • IP Address контроллера домена Windows 2012 Server: 192.168.7.110
  • Сервер для работы нашего приложения: CentOS7, Apache, Python 3.5.1, Django 1.9.1
  • Hostname Linux Server с CentOS7: srv-app
  • IP Address Linux Server с CentOS7: 192.168.7.105
  • URL Приложения на Django: srv-app.company.ru

Нужно сделать:

  • Пользователь, зарегистрированный в Active Directory при открытии любой страницы сайта на srv-app.company.ru должен автоматически, без запроса логина/пароля, быть авторизован Django. При авторизации, в профиль пользователя в Django должна быть перенесена некоторая информация о нем из Active Directory (first_name, last_name, mail; флаги is_active, is_staff, is_supersuser должны быть установлены на основании членства пользователя в соответствующих группах Active Directory).
  • Пользователю, не зарегистрированному в Active Directory вход на сайт должен быть запрещен.

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

  • Настройка прозрачной аутентификации при доступе к приложению сервером Apache с использованием Kerberos.
  • Авторизация в Django c использованием доступа к контроллеру домена по протоколу LDAP для получения необходимой информации об авторизующемся пользователе.

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

image

Зима — это по истине прекрасное время года. Но именно зимой я всегда задумываюсь о том, что встаю и ухожу на работу, а затем и возвращаюсь с работы, не видя солнечного света. Сегодня мне захотелось визуализировать данные о восходе и заходе солнца и соотнести их со столь привычным для многих распорядком дня (рабочие часы и время бодрствования). Для работы мы будем использовать Python (pandas + matplotlib). Посмотрим, что из этого получилось.
Читать полностью »

В большинстве реляционных баз данных, к сожалению, нет поддержки наследования, так что приходится реализовывать это вручную. В этой статье я хочу кратко показать, как реализовать такой подход к наследованию, как «single table inheritance», описанный в книге «Patterns of Enterprise Application Architecture» by Martin Fowler.

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

В этой статье будет использоваться следующая структура наследования моделей:

Car
|- SportCar
|- HeavyCar

Таблица `car` имеет следующую структуру:

CREATE TABLE `car` (
    `id` int NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `type` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
);

INSERT INTO `car` (`id`, `name`, `type`) VALUES (1, 'Kamaz', 'heavy'), (2, 'Ferrari', 'sport'), (3, 'BMW', 'city');

Модель Car можно сгенерировать с помощью Gii.
Читать полностью »

image Когда дело касается авторских прав, в дискуссиях бесконечно звучит одна и та же мысль: «работа автора должна быть оплачена». Только вот заявление это, мягко говоря, идет вразрез с существованием Википедии и опытом владельцев трех миллиардов смартфонов, а, значит, вряд ли попадает в категорию истины.

Неоднократно повторяющиеся утверждения о том, что «работа автора должна быть оплачена», невольно наталкивают на не менее острый вопрос – а «как авторам будут оплачивать их труд»?

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

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


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