Search
Write a publication
Pull to refresh
2
0
Сергей Викторыч @SpyDeX

ПО (разработка, разработка и ещё раз разработка)

Send message

Как мы учились рекомендовать фильмы и почему не стоит полагаться только на оценки

Reading time8 min
Views18K


Представьте, что вы хотите провести вечер за просмотром фильма, но не знаете, какой выбрать. Пользователи Яндекса часто оказываются в такой же ситуации, поэтому наша команда разрабатывает рекомендации, которые можно встретить в Поиске и Эфире. Казалось бы, что тут сложного: берём оценки пользователей, с их помощью обучаем машину находить фильмы, которым с высокой вероятностью поставят 5 баллов, получаем готовый список фильмов. Но этот подход не работает. Почему? Вот об этом я сегодня и расскажу вам.
Читать дальше →

Объективность рейтинга публикации

Reading time2 min
Views7.1K
Здравствуйте, уважаемые хабровчане. В данном посте описано моё наблюдение касательно корпоративного блока и субъективное мнение об объективности рейтинга статей на хабре. Статья — под катом.


Дисклеймер: данный пост не несет цели кого-либо обвинить, все это — субъективные мысли автора.
Добро пожаловать

Как сотрудники Apple и Google объединёнными усилиями помогают чиновникам от здравоохранения отслеживать коронавирус

Reading time9 min
Views1.7K

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

Один из наиболее амбициозных проектов в истории компании Apple запустили менее, чем за месяц, а работало над ним всего несколько сотрудников.

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

Альтернативная форма тернарного оператора Python

Reading time1 min
Views14K
Дисклеймер: описанный в статье прием не рекомендуется к приенению. Он описан лишь для демонстрации интересной возможности языка Python


Недавно я открыл для себя альтернативу стандартной конструкции "expression_on_true if predicate else expression_on_false", которую я не встречал в справочниках:

(expression_on_false, expression_on_true)[predicate]

image

Как это работает


  1. В круглых скобках объявляется кортеж из двух элементов.
  2. В квадратных скобках вычисляется значение предиката.
  3. Происходит обращение к кортежу по индексу 1 (если значение предиката True) или 0 (если значение предиката False)
Читать дальше →

Как создать децентрализованное приложение, которое масштабируется? Используйте меньше блокчейна

Reading time6 min
Views7.9K

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


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



Довольно часто в whitepaper'ах приложений, которые построены на блокчейне, можно найти параграф, в котором сказано: "блокчейн дорогой и не способен поддерживать требуемое число транзакций в секунду. К счастью, много умных людей работает над масштабированием блокчейна и к моменту запуска нашего приложения он станет достаточно масштабируем".


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


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


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

Читать дальше →

Y messenger: децентрализованный мессенджер на блокчейне*

Reading time4 min
Views11K

*Да, мы используем блокчейн, но только для хранения информации о пользователях, серверах, групповых чатах и каналах. Блокчейн не приспособлен для хранения чего-то вроде личных переписок.

Сегодня у многих пользователей на смартфонах установлено несколько мессенджеров. У каждого из них есть своя задача. Где-то мы общаемся с друзьями, где-то – с родственниками, где-то решаем рабочие вопросы. Возникает вопрос, почему вы решили доверять каждому из них? Кто дал вам гарантию что сообщения / документы / фотографии, которые вы отправили через тот или иной мессенджер не окажутся в публичном доступе? Если у вас есть сообщество в соц.сетях, кто вам сказал что завтра у вас не отнимут эту группу и вы не потеряете доступ к своей аудитории? Кто вам сказал, что после удаления переписки она действительно будет удалена и не всплывет в архивах через несколько лет? А ведь бывали случаи.

Вот тут приходим мы со своим Y messenger. Скорее всего вы не знаете никого из нашей команды и навряд ли знакомы с другими нашими продуктами, но я уверяю вас, что к концу статьи вы начнете доверять нам.
Читать дальше →

Проблема устаревших корневых сертификатов. На очереди Let's Encrypt и умные телевизоры

Reading time5 min
Views37K


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

Корневой сертификат — сердце центра сертификации. Он буквально встроен в вашу ОС или браузер, он физически присутствует на вашем устройстве. Его не поменяешь со стороны сервера. Нужно принудительное обновление ОС или встроенного ПО на устройстве.

Специалист по безопасности Скотт Хельме (Scott Helme) пишет, что основные проблемы возникнут у центра сертификации Let's Encrypt, потому что сегодня это самый популярный ЦС в интернете, а его корневой сертификат скоро «протухнет». Смена корня Let's Encrypt назначена на 8 июля 2020 года.
Читать дальше →

Загрузка браузером нескольких файлов

Reading time5 min
Views30K
Если нужно дать пользователю возможность загрузки нескольких файлов, традиционное решение на данный момент — использовать для этой цели Flash (реже — Java applet или ActiveX). В случае, если соответствующий плагин недоступен, пользователю, как правило, показывают стандартный HTML-элемент для загрузки файла.

Последнюю ситуацию можно улучшить, если использовать встроенную в браузеры возможность множественной загрузки файлов. Из всех браузеров сейчас данную возможность не поддерживает только Internet Explorer (впрочем, мы ещё не видели девятую версию, может там что-то изменится), остальные браузеры — Opera 9 и выше (а так же версии 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ такую возможность предоставляют.

Достаточно написать что-то вроде
Copy Source | Copy HTML
  1. <form enctype="multipart/form-data" method="post">
  2.    <input type="file" min="1" max="9999" name="file[]" multiple="true" />
  3.    <input type="submit" name="submit" />
  4. </form>
PHP оказался готов к такой конструкции (именно для него в параметре «name» стоят квадратные скобки), он просто разложит загружаемые файлы по элементам массива $_FILES, если только мы не используем «Оперу».

К сожалению, «Опера» (ещё с версии 3.5) отправляет, при использовании мультизагрузки, файлы в контейнере «multipart/mixed», который PHP не понимает.

Я попробовал исправить эту ситуацию.
Читать дальше →

Твой первый шаг в Data Science. Титаник

Reading time5 min
Views12K

Небольшое вступительное слово


Я считаю, что бОльшее количество дел мы бы могли совершать, если бы нам предоставляли пошаговые инструкции, которые скажут что и как делать. Сам же вспоминаю в своей жизни такие моменты, когда не мог начаться какое-то дело из-за того, что было просто сложно понять, с чего нужно начинать. Быть может, когда-то давно в интернете ты увидел слова «Data Science» и решил, что тебе до этого далеко, а люди, которые этим занимаются где-то там, в другом мире. Так нет же, они прямо здесь. И, возможно, благодаря людям из этой сферы тебе в ленту попала статья. Существует полно курсов, которые помогут тебе освоится с этим ремеслом, здесь же я помогу тебе сделать первый шаг.
Читать дальше →

Авторизация с помощью QR

Reading time3 min
Views28K
Приветствую тебя, уважаемый читатель.

Пришла ко мне как-то идея — сделать вход на сайт с помощью QR-кода. Поиск в сети дал несколько результатов:

  1. SQRL
  2. и другие — здесь уже провели поиск, поэтому не буду переписывать)


В начале 2012 года похожий эксперимент был даже у Google (для двухфакторной аутентификации), но не прижилось.



Всё это сложные хитрые клиент-серверные реализации и они, конечно, очень крутые. А вот ключевой момент моей yet another genius идеи:
Пользователь заходит на сайт в современном браузере (где поддерживаться камера и камера есть) и подносит QR-код к камере устройства. А в коде закодированы… правильно! — данные для входа (пара логин-пароль)… просто так, в незашифрованном виде, обычным текстом. Код считывается на стороне клиента javascript'ом, данные вставляются в форму тем же javascript'ом, форма авторизации отправляется javascript'ом. По большому счёту можно использовать и другие виды штрихкодов, но QR, как мне кажется, наиболее популярен (широко распространён) для подобных задач.

И да, применять это можно не только в вебе, но и в любых непонятных ситуациях, когда требуется ввести логин/пароль/что-то с клавиатуры, а у вас есть камера и QR-код.

Наверное идея звучит глупо. Она слишком проста. Но позвольте мне рассказать почему она имеет право на жизнь.
Читать дальше →

BTSync как средство бэкапа

Reading time6 min
Views25K
День добрый комрады. Спустя некоторое время, как я устроился системным администратором, я стал сталкиваться с такой бедой задачей:

Специфичный юзкейс, решаемый в данной статье


Подходит сотрудник с просьбой восстановить файл который вчера/сегодня/только-что удалили, а сейчас он кровь-из-носу понадобился. При этом дату создания файла он не помнит, а дату последнего изменения и знать не знает, ибо с файлом в разное время могли работать множество разных сотрудников. И восстановить нужно, разумеется, последнюю версию.
Либо файл вчера/сегодня/только-что случайно и фатально отредактировали/перезаписали. И восстановить нужно, соответственно, предпоследнюю версию.

Итак, исходные данные:
  • Имя файла и его адрес: известны хотя бы примерно
  • Дата создания искомой версии файла: не известна
  • Бэкап ежедневный, инкрементальный или равный ему по ресурсоёмкости. Полный и разностный не используются ввиду ограниченности объёмов дискового пространства в хранилище/приемнике бэкапов.
Читать дальше →

Попрощайтесь с информационной эрой: наступает эпоха репутации

Reading time4 min
Views28K


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

Мы испытываем фундаментальный сдвиг парадигмы в наших отношениях со знаниями. От «информационной эры» мы движемся к «репутационной», в которой у информации будет ценность, только если она уже отфильтрована, оценена и прокомментирована другими. В этом смысле репутация сегодня становится центральной опорой общественного разума. Это привратник, дающий доступ к знаниям, а ключи от ворот находятся у других. То, как сегодня выстраивается авторитет знаний, заставляет нас зависеть от неизбежно искажённых суждений других людей, большую часть которых мы даже не знаем.
Читать дальше →

История про блокчейн и немного про биткойны

Reading time9 min
Views18K
image

В 2011 году, после того как продал по $2 довольно крупную сумму битков, я начал писать свою криптовалюту. Точнее не сразу как продал, а когда увидел парой месяцев спустя, что курс вырос в 25 раз до $50.
Читать дальше →

Храните данные в облаке

Reading time11 min
Views32K
Привет, Хабр! Сегодня речь пойдет о сервисах синхронизации и обмена файлами и объектные облачных хранилищах. Облачные хранилища, представленные такими сервисами как SkyDrive или Dropbox, хорошо знакомы пользователям мобильных устройств и компьютеров. В последние годы они появляются во все большем количестве. Эти сервисы пользователям позволяют легко, быстро и в любое время получить авторизованный доступ к файлам через интернет.

По данным отчета Statista, в 2017 году личное облачное хранилище в мире использовали более 1,8 миллиарда человек. Очевидное преимущество хранения данных в облаке — независимость от устройств, доступ из любого места и с любой системы. Облачное хранилище — отличный способ защитить себя от чрезвычайных ситуаций. Оно позволяет получать доступ к своим данным с другого устройства, если основное было потеряно или украдено.

Читать дальше →

Применение сверточных нейронных сетей для задач NLP

Reading time9 min
Views65K
Когда мы слышим о сверточных нейронных сетях (CNN), мы обычно думаем о компьютерном зрении. CNN лежали в основе прорывов в классификации изображений — знаменитый AlexNet, победитель соревнования ImageNet в 2012 году, с которого начался бум интереса к этой теме. С тех пор сверточные сети достигли большого успеха в распознавании изображений, в силу того факта, что они устроены наподобие зрительной коры головного мозга — то есть умеют концентрироваться на небольшой области и выделять в ней важные особенности. Но, как оказалось, CNN хороши не только для этого, но и для задач обработки естественного языка (Natural Language Processing, NLP). Более того, в недавно вышедшей статье [1] от коллектива авторов из Intel и Carnegie-Mellon University, утверждается, что они подходят для этого даже лучше RNN, которые безраздельно властвовали областью на протяжении последних лет.

Сверточные нейронные сети


Для начала немного теории. Что такое свертка? Мы не будем на этом останавливаться подробно, так как про это написана уже тонна материалов, но все-таки кратко пробежаться стоит. Есть красивая визуализация от Стэнфорда, которая позволяет ухватить суть:

image
Источник
Читать дальше →

Тамагочи выпустили как приложение для Apple Watch

Reading time2 min
Views8.5K
image

Японский разработчик и издатель видеоигр Bandai Namco представил версию своей классической игры Tamagotchi в качестве приложения для Apple Watch.

Для самых молодых читателей, возможно, придётся пояснить – в 1996 году два японца, Акиро Йокои из WIZ и Аки Маита из Bandai придумали и стали продавать принципиально новую электронную игрушку, название которой образовано от двух слов – японского «тамаго», означающего «яйцо», и английского «watch» – наблюдать.

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

Считалка Иосифа Флавия: кого убить первым

Reading time4 min
Views81K
image

Давным давно, во времена римской империи, группу еврейских солдат окружила римская армия. Выбор невелик — сдаться или погибнуть. Хитрые евреи придумали систему, чтоб и живыми не сдаваться, и грех самоубийства не совершать. И так до тех пор, пока в живых не останется только один, а уж ему придется покончить с собой. В истории, которую я слышал, герой, Иосиф, хотел спасти себе жизнь и сдаться в плен, а не погибнуть. И поэтому он решил найти заветное место.

(Во время написания поста погибло дофига нарисованных солдатиков).

WebTorrent: торренты через браузер. Без плагинов, чистый JavaScript

Reading time2 min
Views536K


Теперь для скачивания и просмотра фильмов с торрентов не нужен отдельный торрент-клиент. Также как и для раздачи файлов по протоколу BitTorrent тоже не нужен отдельный клиент. Достаточно обычного браузера, поддерживаются Chrome, Firefox и Opera (десктоп и Android).

Всё это благодаря WebTorrent — гибриду BitTorrent и WebRTC. Скачивание и раздача происходят прямо через сайт. Встроенный плеер начинает показ фильма, как только скачано несколько процентов.
Читать дальше →

Создание и хостинг телеграм бота. От А до Я

Reading time15 min
Views182K
Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

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

P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.


Для начала стоит определиться, что же будет делать наш бот. Я решил написать банального простого бота, кторый будет парсить и выдавать нам заголовки с Хабра.
И так, начнём же.
Читать дальше →

MyDataSpace — сервис публикации данных

Reading time3 min
Views7.3K


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


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


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


MyDataSpace – это сервис публикации данных. Любой может опубликовать данные бесплатно (под свободной или своей лицензией) и любой же может получить доступ к ним через веб-интерфейс или API.

Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity