Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Evil by Design: интерфейсы от Мефистофеля (часть первая)

Время на прочтение12 мин
Количество просмотров9.8K
Крис Ноддер, автор книги «Evil by Design», сразу вызывает доверие. Не столько своим послужным списком достижений в психологии UX дизайне и консалтинге, сколько явным умением цеплять и продавать. По сути, под стильной обложкой с демоненком — собрание техник манипулирования потребителем, многие из которых известны уже давно. Но, согласитесь, «руководство для дизайнера, который служит Злу, пробуждая в людях темные инстинкты» звучит гораздо увлекательнее. Давайте толкать потребителя на смертные грехи!



Почему смертные грехи? Потому что все они описывают обычное поведение среднего человека, выделяют те точки, на которые проще всего давить. Ведь если бы люди не впадали в искушение именно от этих качеств, не было бы резона их запрещать. Разбираясь, какие психологические особенности стоят за каждым из грехов, мы достигаем лучшего понимания человеческой натуры, а это — ключ к созданию хорошего дизайна. Ну а если кому-то любопытно, но совестно, то эту книгу можно читать и с точки зрения пользователя: чтобы противостоять аморальной игре на наших слабостях, нужно уметь распознавать соответствующие механизмы.

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

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Классификация музыкальных композиций по исполнителям с помощью Скрытых Марковских Моделей

Время на прочтение8 мин
Количество просмотров11K
image

Скрытые марковские модели (Hidden Markov Models) с давних времен используются в распознавании речи. Благодаря мел-кепстральным коэффициентам (MFCC), появилась возможность откинуть несущественные для распознавания компоненты сигнала, значительно снижая размерность признаков. В интернете много простых примеров использования HMM с MFCC для распознавания простых слов.

После знакомства с этими возможностями появилось желание опробовать этот алгоритм распознавания в музыке. Так родилась идея задачи классификации музыкальных композиций по исполнителям. О попытках, какой-то магии и результатах будет рассказано в этом посте.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии20

Разработка высоконагруженного WebSocket-сервиса

Время на прочтение10 мин
Количество просмотров63K
Как создать веб-сервис, который будет взаимодействовать с пользователями в реальном времени, поддерживая при этом несколько сотен тысяч коннектов одновременно?

Всем привет, меня зовут Андрей Клюев, я разработчик. Недавно я столкнулся с такой задачей – создать интерактивный сервис, где пользователь может получать быстрые бонусы за свои действия. Дело осложнялось тем, что в проекте были довольно высокие требования по нагрузке, а сроки были крайне невелики.

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

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

Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии58

Мульти-классификация Google-запросов с использованием нейросети на Python

Время на прочтение4 мин
Количество просмотров13K
Прошло уже достаточно времени с момента публикации моей первой статьи на тему обработки естественного языка. Я продолжал активно исследовать данную тему, каждый день открывая для себя что-то новое.

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

За основу был взят датасет размером ~32000 поисковых запросов, размеченных по 14ти классам: Автоистория, Автострахование, ВУ (водительское удостоверение), Жалобы, Запись в ГИБДД, Запись в МАДИ, Запись на медкомиссию, Нарушения и штрафы, Обращения в МАДИ и АМПП, ПТС, Регистрация, Статус регистрации, Такси, Эвакуация.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии6

Машинное зрение. Что это и как им пользоваться? Обработка изображений оптического источника

Время на прочтение12 мин
Количество просмотров100K
Машинное зрение — это научное направление в области искусственного интеллекта, в частности робототехники, и связанные с ним технологии получения изображений объектов реального мира, их обработки и использования полученных данных для решения разного рода прикладных задач без участия (полного или частичного) человека.

Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии17

Игры, в которых нужно писать код (часть 2)

Время на прочтение3 мин
Количество просмотров59K


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

Всего голосов 64: ↑64 и ↓0+64
Комментарии33

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

Время на прочтение6 мин
Количество просмотров52K
Улучшаем дизайн проекта с помощью тактически грамотных действий, а не таланта.

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

Возможно, в компании, в которой вы работаете, нет штатного дизайнера, и вам необходимо реализовать интерфейс для нового функционала. Или, может быть, вы решили подработать на побочном проекте, и хотели бы, чтобы он выглядел лучше, чем «ещё один bootstrap-сайт».

Легко опустить руки и сказать: «Я никогда не смогу сделать это должным образом, я не художник!», Но, оказывается, есть уйма ловких приёмов, которые вы сможете использовать, чтобы поднять свою работу на другой уровень, не имея опыта в графическом дизайне.

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

1. Для создания иерархии используем цвет и вес вместо размера



Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии28

Как найти компанию спонсора визы в США. Tips and Tricks

Время на прочтение9 мин
Количество просмотров89K

image


Статья для тех, кто хочет переехать работать в США. На Хабре есть несколько хороших статей про поиск работы в Америке. Тут я постараюсь добавить к ним собственный опыт и поделиться несколькими приемами, которые помогли мне получить долгожданный джоб оффер.


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

Читать дальше →
Всего голосов 48: ↑39 и ↓9+30
Комментарии73

Чеклист фронтенд-разработчика

Время на прочтение12 мин
Количество просмотров70K
Глеб Летушов, редактор-фрилансер, адаптировал для блога Нетологии чеклист с Github от David Dias. Этот чеклист уже переводили, но так как на Хабре его нет, мы решили, что он пригодится. В чеклисте собран полный список элементов, которые необходимо проверить перед запуском и публикацией сайта.



Список основан на многолетнем опыте фронтенд-разработчиков, а дополнения собраны из общедоступных источников.
Читать дальше →
Всего голосов 30: ↑24 и ↓6+18
Комментарии21

Как я сделал AI для выявления фейковых новостей с точностью в 95% и чуть не рехнулся

Время на прочтение6 мин
Количество просмотров55K
Краткий пересказ: мы сделали программу, определяющую надежность новостей с точностью 95% (на валидационной выборке) при помощи машинного обучения и технологий обработки естественного языка. Скачать ее можно здесь. В условиях реальной действительности точность может оказаться несколько ниже, особенно по прошествии некоторого времени, так как каноны написания новостных статей будут меняться.

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



С этим можно поспорить, но, на мой взгляд, самый сложный этап в создании собственной модели машинного обучения — сбор материалов для обучения. Когда я обучал модель для распознавания лиц, мне пришлось несколько дней собирать фотографии каждого из игроков лиги НБА в сезоне 2017/2018. Теперь же я и не подозревал, что мне придется провести погруженным в этот процесс несколько мучительных месяцев и столкнуться с очень неприятными и жуткими вещами, которые люди пытаются выдать за настоящие новости и надежную информацию.
Читать дальше →
Всего голосов 53: ↑46 и ↓7+39
Комментарии44

Добываем Wi-Fi соседа стандартными средствами MacOS

Время на прочтение5 мин
Количество просмотров364K
Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой пост про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и остаётся топ1 постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне найти багу у Билайна и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.


Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
Читать дальше →
Всего голосов 163: ↑151 и ↓12+139
Комментарии249

Планируем проект внедрения и доработки информационной системы в MS Project — быстро и красиво

Время на прочтение15 мин
Количество просмотров65K
В последнее время мне приходится много работать как с менеджерами проектов так и с заказчиками, и я все больше убеждаюсь, что основой хорошего проекта внедрения и доработки информационной системы служит план проекта, разработанный в MS Project. Его можно показать заказчику, для того что бы наглядно продемонстрировать сроки и скоуп проекта, его можно включить в договор в качестве графика работ, его можно использовать для планирования ресурсов на проекте, с помощью него можно аргументировать те или иные сроки проекта, а так же можно считать внутреннюю и внешнюю стоимость, оценивая ресурсы на специальном представлении.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии11

5 тенденций развития микросервисов в 2018 году

Время на прочтение7 мин
Количество просмотров12K
image

2017 год стал важным годом для DevOps, поскольку число игроков в экосистеме существенно выросло, а количество проектов с CNCF утроилось. Глядя на год вперед, мы ожидаем, что инновации и рыночные изменения ускорятся еще больше. Ниже мы рассмотрели тенденции в области микросервисов в 2018 году: сервисные связки(так называемые “меши”), event-driven архитектуры, нативная безопасность контейнеров, GraphQL и Chaos инженерия.

1. Сервисные связки популярны!


Сервисные связки или “меши”, выделенный уровень инфраструктуры для улучшения связи между сервисами, в настоящее время наиболее обсуждаема в контексте облачности. По мере того, как контейнеры становятся более распространенными, топологии сервисов становится все более динамичными, требуя улучшеной функциональности сети. Сервисные связки могут помочь управлять трафиком через обнаружение сервисов, маршрутизацию, балансировку нагрузки, проверку работоспособности и наблюдаемость(observability). Сервисные связки пытаются укротить непоколебимую сложность контейнера.

Очевидно, что сервисные сетки становятся все более популярными, поскольку балансировщики нагрузки, такие как HAProxy, traefik и NGINX, начали перестраиваться и представлять себя как плоскости данных(data planes). Мы пока не видели широкомасштабного развертывания, но мы знаем о компаниях, которые уже используют связки на живых серверах, в “продакшене”, так сказать. Кроме того, сервисные связки не являются эксклюзивными для микросервисов или сред Kubernetes, и также могут применяться в среде VM и без сервера. Например, в Национальном Центре Биотехнологической Информации(NCBI) нет контейнеров, но используется Linkerd.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии2

Как делать заметки как программист

Время на прочтение5 мин
Количество просмотров73K

Когда я был мал — писал ужасные конспекты: они представляли из себя тетради с грязным текстом и плохой структурой. Практически бесполезные.


Потом, когда я открыл для себя MOOC видео курсы, продолжил использовать те же антипаттерны, что и в школьные времена, но уже не так безобразно: с помощью VimWiki и позже — с Jupyter.


Записи всё еще были плохо структурированы. Посмотрите на это: у меня даже мотивации не хватает на то, чтобы просто открыть и посмотреть на то, что там внутри:


image


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


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

Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии70

Как вернуть украденный домен через арбитраж WIPO. Пошаговая инструкция

Время на прочтение6 мин
Количество просмотров14K
Итак, у вас украли домен. Вы обнаружили это или утром, когда проверяли почту на смартфоне, или вечером, когда увидели на своем сайте чужую рекламу, потом зашли в админку, решив, что сайт взломали, но рекламного кода там не оказалось, и вы поняли, что DNS переписаны на другой сервер…

Вы испытываете целую гамму чувств. Ярость, потому что собираетесь немедленно наказать мошенников. Страх, потому что за те несколько часов, которые, как вы думаете, сайт пробудет в их руках, они могут наполнить его хламом, который попадет в индекс поисковых систем. Недоумение, потому что не понимаете, как им удалось это сделать.


Вы сразу пишите в техпродержку регистратора и получаете ответ, что жалоба получена и будет рассмотрена в установленные сроки.
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии52

Эффективное использование WebAPI: self hosting REST-сервисов

Время на прочтение5 мин
Количество просмотров43K
С выходом ASP.NET WebAPI у разработчиков появилась возможность быстро создавать REST-сервисы в удобном виде, с одной стороны полностью реализуя принципы REST, а с другой используя всю мощь платформы ASP.NET.

Про возможности и применение WebAPI написано уже достаточно много статей, например, вы можете узнать о интересной функции самодокументирования API сервиса через ApiExplorer.

Существует еще одна замечательная возможность WebAPI, про которую написано не так много — это возможность WebAPI осуществлять самостоятельный хостинг сервиса (self hosting). В этой статье на примере разбирается, как создавать и запускать REST selfhosting-сервисы на базе WebAPI.

Self hosting REST-сервиса


Для предоставления доступа к API сервиса не всегда является целесообразным разворачивать его на базе сервера IIS. Если сервис не является частью какого-либо веб-приложения, имеет смысл запускать его на базе собственной инфраструктуры.

Другим вариантом использования механизма self hosting может быть запуск сервисов на платформах, которые не содержат сервер IIS либо на которых запуск IIS осложнен или излишен.

Так или иначе, WebAPI позволяет вам создавать сервисы независимые от IIS, доступ к которым может быть получен без установки веб-приложения на веб-сервер .
Читать дальше →
Всего голосов 17: ↑12 и ↓5+7
Комментарии36

Как я возвращал украденный домен популярного сайта

Время на прочтение13 мин
Количество просмотров47K
В 2008 году создал сайт, который, спустя время, превратился в водно-моторное сообщество, объединяющее тысячи любителей моторных лодок и катеров. В сезон, посещаемость ресурса превышала 10 000 человек в сутки и кто-то решил, что сайт ему нужнее.

Получив доступ в админ-панель моего регистратора (r01.ru), вор перенес домен к другому (internet.bs) на свой аккаунт. База данных и файлы обманным путем были получены у хостера.

Я потерял проект, над которым работал около 9 лет. Вернуть домен получилось лишь через 8 месяцев.
Читать дальше →
Всего голосов 149: ↑149 и ↓0+149
Комментарии117

App.Config и Custom Configuration Sections

Время на прочтение5 мин
Количество просмотров125K
Данная статья может показаться банальной, но иногда что-то полезное забывается, а читать на импортном языке лень и книжки под рукой нет. Поэтому я, обратившись к гуглу, нашел хорошее описание процесса создания обработчика конфигурационной секции файла app.config в .net приложениях, перевел его, дополнил замечаниями (курсив) и комментариями и решил опубликовать.

Я уверен, что многим из вас приходилось использовать файл конфигурации App.Config для хранения инициализирующих или конфигурационных данных приложения. И я так же уверен в том, что многим из вас хотелось создать в данном файле свои собственные структуры для хранения настроек. Но в итоге приходилось использовать встроенные возможности секции <appSettings> и получать значения, используя конструкцию вида:


ConfigurationManager.AppSettings["MyKey"]


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

Итак, для того что бы загрузить свою структуру данных из файла App.Config нам потребуются следующие классы:
  1. ConfigurationSection — Этот объект вернет нам пользовательскую секцию.
  2. ConfigurationElementCollection — Это собственно коллекция элементов, которые мы определим в пользовательской секции.
  3. ConfigurationElement — Это сам элемент, описывающий какую-от определенную вами сущность.


Приступим к реализации.
Всего голосов 31: ↑26 и ↓5+21
Комментарии15

Практика написания тестов. Лекция Яндекса

Время на прочтение33 мин
Количество просмотров81K
С праздниками, друзья! Если вы не против научиться на каникулах чему-то новому, прочитайте лекцию Кирилла Борисова — разработчика систем авторизации Яндекса. Кирилл объясняет, как построить процесс тестирования Android-приложений, знакомит с современными инструментами и спецификой их использования.


— Прежде чем двинуться вперед, давайте устроим небольшой соцопрос. Кто из вас знает, что такое тесты? Кто пишет тесты? А кто знает, зачем он пишет тесты?
Всего голосов 38: ↑38 и ↓0+38
Комментарии24

DPI мобильных операторов: от бесплатного интернета до раскрытия номера и местоположения

Время на прочтение11 мин
Количество просмотров180K
Системы глубокого анализа трафика (Deep Packet Inspection, DPI) — программно-аппаратные комплексы для классификации проходящего интернет-трафика по типу данных (веб-страница, документ, аудио, видео), протоколу (HTTP, BitTorrent, VoIP/SIP) и конкретным программам (Skype, WhatsApp), зачастую обладающие дополнительной функциональностью. Системы DPI распространены и используются по всему миру продвайдерами проводного и беспроводного доступа.

Мобильные операторы используют системы глубокого анализа трафика, прежде всего, для приоритизации разного контента в интернете (QoS), чтобы можно было одновременно скачивать большой файл и смотреть видео на YouTube, и чтобы один пользователь сотовой сети, активно использующий интернет, не создавал проблем другим пользователям. Операторы используют DPI примерно с начала двухтысячных, с приходом UMTS (3G), чтобы более-менее честно разделять беспроводной канал ограниченной пропускной способности.

Мобильные операторы используют и другие возможности DPI, например, ускорение TCP и HTTP-трафика (TCP PEP, Performance-enhancing Proxy), для ускорения интернета в мобильных сетях и идентификации пользователей веб-сайтами. Если попытаться зайти в личный кабинет оператора с телефона, на многих операторах он откроется сразу, без необходимости ввода логина и пароля. Или, что можно было встретить лет 5 назад, простой заход на подозрительный веб-сайт или клик по рекламному баннеру из Android-игры оборачивался автоматической подпиской на платную услугу, о чем можно было узнать из СМС-сообщения.
Читать дальше →
Всего голосов 196: ↑194 и ↓2+192
Комментарии121

Информация

В рейтинге
Не участвует
Откуда
Хабаровск, Хабаровский край, Россия
Зарегистрирован
Активность