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

TornadoНедавно я запустил сайт backgrounddating.com и написал об этом здесь, на Хабрахабре. Разумеется, я уже тогда рассказал о некоторых технических деталях реализации этого проекта, но об одной из возможностей сайта я бы хотел написать отдельно, тем более, что документации (как на русском, так и на английском) на эту тему в Интернете пока что довольно мало. Итак, речь пойдёт о чате в реальном времени между двумя пользователями. Задача состоит в том, чтобы любой пользователь мог отправлять другим пользователям сообщения, и, если у получателя сообщения открыт чат с этим пользователям, то он сразу же видел входящие сообщения (а в ином случае он мог прочитать сообщения позже: то есть при открытии чата загружается история последних сообщений).

Если вам нужно, чтобы пользователи могли общаться не только вдвоём, а группами из любого количества человек, то сделать это можно почти что элементарно: описанная реализация, по сути, рассчитана на такое расширение функциональности.

Сразу уточню, что это не единственный способ реализовать подобное. Вы можете использовать другой асинхронный веб-сервер (например node.js), можете использовать другую очередь сообщений (или вообще её не использовать, если вам подходят особенности такого варианта: с пользователями одного канала обязательно общается один и тот же worker веб-сервера). Я даже не утверждаю, что этот вариант самый лучший (но в данном случае он подошёл лучше всех). В конце концов, мы здесь вообще не будем рассматривать костыли (long polling, Flash) для старых браузеров (а это почти все версии IE, например), не поддерживающих веб-сокеты, и даже не будем рассматривать возможность подключаться из тех браузеров, которые уже поддерживают протокол WebSocket, но не стандартизированную версию (RFC 6455), а одну из устаревших. О том, как можно включить поддержку устаревшей версии «draft 76» (она же «hixie-76»), смотрите в документации Tornado.
Читать полностью »

Думаю, что любая группа разработчиков рано или поздно сталкивается с такой, казалось бы, примитивной задачей как

  • вики, учет задач, тикетов, дефектов;
  • система управления версиями/репозиторий;
  • файловый сервер.

Большое файловое хранилище для маленькой такой компании
И если в случае первого и второго предлагается множество прекрасных средств, в частности для багтрекинга существуют известные каждому Redmine, Trac, а для управления версиями Subversion, Git, Mercurial, то для грамотной организации файлового хранилища приходится в очередной раз изобретать велосипед.
Читать полностью »

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

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

Выделено 4 главных цели мониторинга и исследований (которые принято считать потенциальными угрозами)

— искусственный интеллект;
— изменение климата;
— ядерное оружие;
— биотехнологии.Читать полностью »

Уже давно многие наши клиенты или потенциальные клиенты спрашивали «а можно подключить сервер только с трафиком в MSK-IX?» или «а сколько будет стоить, если я буду трафик лить только на MSK-IX? Это будет дешевле?», но тогда такого тарифа у нас не было. Да и технической возможности не было. И вот, пару недель назад, мы наконец-то запустили тариф с доступом только к сетям MSK-IX, W-IX и DataIX. О технических деталях и преимуществах нового тарифа мы бы хотели рассказать в этой статье.

Кому интересны только факты, может почитать про преимущества, а потом решить для себя читать или нет остальную статью.
Читать полностью »

Представьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое.

Начинает он с одного выпадающего окошка, тестирует анимацию, выставляет ease out 100% и наслаждается полученным результатом. Но вскоре он понимает, что для того, чтобы управлять менюшкой, хорошо бы знать закрыто оно сейчас или нет. Мы-то с вами тут программисты опытные, все понимаем, что нужно добавить флаг. Не вопрос, флаг есть.

var opened = false;

Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:

var opened = false;
var animating = false;

function onClick(event) {
  if (animating) return;
  if (opened) close();
  else open();
}

Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:

if (enabled && opened && !animating && !selected && finishedTransition && !endOfTheWorld && ...) { ... }

Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.

Знакомьтесь, это Вася.

Простые стейт машины на службе у разработчика
Читать полностью »

На рассвете рыбаки племени Лови-Рыбу-На-Копье выстроились в круг на окраине деревни. Хмурые лица были раскрашены по-боевому, зубы зачернены, сети заштопаны, копья наточены и украшены самыми красивыми перьями страусов. Жвачка из листа эвкалипта приятно бодрила языки и маскировала запахи.
— Подождииите меняяяя!!!, — к кругу, тряся пачкой пергаментов, подбежал жрец.
— Вы опять все забыли!, — утираясь юбкой из листьев с прошлогодней пальмы кокоса, жрец попытался подсунуть одному из стоявших в кругу часть пачки. Парня передернуло, и он отступил на шаг.
— Вот, это Стратегия. Тут нарисовано, куда вы должны поражать копьем рыбу, и куда потом складывать добычу. И какими перьями ее маркировать, чтобы потом раздать всем по заслугам. И в чем ее нести домой. И какой рыбы нам надо! А это, — жрец выдернул отдельный лист, особенно раскрашенный и с рисунками, — вот, Миссия. Повесьте ее на самое главное копье — вождю!!! Вы должны знать, ради чего идете за рыбой!!! Оууууй…
Раздался легкий стук и жрец боком осел к подножию пальмы. Вождь спрятал дубинку за спину.
— Еще один заболевший тяжелой формой Бинго-Булшит. Ты и ты, — показал на двоих с краю, — верните его колдуну, пусть подлечит своего ученичка. Нагоните нас позже.
Двое отделились, подхватили жреца. Вождь переворошил копьем пергаменты.
— Посмотрим, что он притащил. Как лечить раны… как готовить и сохранить пищу… карты залива с рыбными местами — это верните колдуну, в библиотеку. Остальное сожжем. Да бросьте уже эту дрянь, еще тоже заразитесь, небось сам делал, пергаменты еще не высохли. Все, двигаем. Рыба ждать не будет. ...

Недавно мне, как руководителю отдела тестирования, пришлось создавать парочку никому не нужных документов. Шеф с подозрительным блеском в глазах потребовал, чтобы у отдела была Миссия, а еще была разработана Стратегия. Отмахнувшись от чудного видения, в котором фигурировал шеф и атака на соседей всем отделом, сделала для него выборку из тестовых планов, сопроводила пояснительной запиской, в которой расписала, в каком объеме и в зависимости от чего принимается решение, что включить в тесты и где их выполнять. Миссия отдела с тех пор висит в красивой рамке, раз в год мы ее печатаем заново, меняя дату. Больше вопросов у него не возникало, да и сами эти документы больше никто не просил обновлять. Хотя понятно, что решение об объемах тестирования принимается каждый раз при выкатке новой версии, и оно зависит от множества вещей, а версия ставится от 3 до 20 раз в неделю.

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

Сегодня мы запускаем серию ежемесячных дайджестов IT событий на предстоящий месяц. Мы — это портал «Айти-Событие.рф», освещающий мероприятия в сфере информационных технологий, робототехники и телекома на территории России, Украины и Белоруссии.

Дайджест IT событий до конца 2012 года
Читать полностью »

Один давний опрос показал, что на Хабре многие имеют бороду. Читая новостные сайты, наткнулся на одну интересную статью, в которой автор исследует взаимосвязь бороды и сферы деятельности сотрудников технических компаний.Читать полностью »

Компания Abee, чьи интересные, хотя и дороговатые корпуса из алюминия за последнее время несколько раз Читать полностью »

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

Для профилей пользователей стала доступна статистика по соцдему аудитории - пол, возраст, города проживания (скриншотЧитать полностью »


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