Pull to refresh
0
0
Артём @surrealmix

User

Send message

Новостной агрегатор за две недели

Reading time8 min
Views18K

18 ноября Telegram запустил соревнование по кластеризации данных: Data Clustering Contest. Нужно было за две недели сделать свой новостной агрегатор. Ограничения, которые были установлены в этом соревновании отпугнули кучу людей, но не меня и моих коллег. Я расскажу от том, каким путём мы прошли, какие выборы сделали и с какими сложностями столкнулись. Решение, которое мы заслали в соревнование обрабатывало 1000 документов за 3,5 секунды, занимало 150 Мб, заняло 6 место на публичном голосовании и 3 место в итоговых результатах. Мы допустили много ошибок, из-за которых не заняли место повыше, большинство из них сейчас исправлены. Весь код и все модели можно найти в репозитории. Все скрипты для обучения моделек перенесены на Colab.


Топ из публичного голосования
Топ из публичного голосования

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments4

Квантовый дарвинизм: идея, объясняющая объективную реальность, прошла первые испытания

Reading time12 min
Views42K

Три эксперимента подтвердили квантовый дарвинизм — теорию, объясняющую, как квантовые вероятности могут порождать объективную классическую реальность




Неудивительно, что у квантовой физики есть репутация странной и контринтуитивной науки. Мир, в котором мы живём, не кажется нам квантово-механическим. И до XX века все предполагали, что классические законы физики, выведенные Исааком Ньютоном и другими учёными – согласно которым у объектов всегда имеются точно определённые позиции и свойства – работают на всех масштабах. Но Макс Планк, Альберт Эйнштейн, Нильс Бор, и другие их современники обнаружили, что в самом «низу», среди атомов и субатомных частиц эта конкретика исчезает, превращаясь в кашу из возможностей. Атому, к примеру, обычно нельзя приписать определённое местоположение – мы можем лишь рассчитать вероятность найти его в том или ином месте. Возникает неприятный вопрос: и как же квантовые вероятности объединяются в чёткую картину классического мира?
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments98

Алгоритм мышления и сознания, часть 2

Reading time5 min
Views5.1K
Данный текст содержит пояснения к алгоритму из моей первой статьи “Алгоритм мышления и сознания”. Тезисы первой статьи:

  • Феномен субъективного мышления можно алгоритмизовать.
  • Предъявленный в статье алгоритм мыслит и этим можно воспользоваться практически.
  • С помощью алгоритма мышления можно дать определение сознания в асимптотической форме.
Читать дальше →
Total votes 17: ↑10 and ↓7+3
Comments8

Алгоритм мышления и сознания

Reading time19 min
Views14K
В этой статье изложен алгоритм мышления и сознания. Я предлагаю свой ответ на вопрос о том как работает мышление и сознание. И демонстрирую алгоритм, который умеет по-настоящему, творчески, думать и обладает настоящим сознанием. Статья рассчитана на программистов и состоит из двух основных частей. Первая часть сугубо техническая, она содержит описание алгоритма, перечень его свойств и пример практического применения. Вторая часть содержит поясняющие тезисы и решение вопроса конструктивной аксиоматизации сознания. Алгоритм это содержательный текст который говорит сам за себя, а потому комментариев будет лишь практически необходимый минимум.
Читать дальше →
Total votes 36: ↑24 and ↓12+12
Comments88

Как мы модерируем объявления

Reading time8 min
Views20K


Каждый сервис, чьи пользователи могут создавать собственный контент (UGC — User-generated content), вынужден не только решать бизнес-задачи, но и наводить порядок в UGC. Плохая или некачественная модерация контента в итоге может уменьшить привлекательность сервиса для пользователей, вплоть до прекращения его работы.

Сегодня мы вам расскажем про синергию между Юлой и Одноклассниками, которая помогает нам эффективно модерировать объявления в Юле.

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

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

Поэтому мы воспользовались уже готовой платформой модерации, которую к тому времени наши коллеги из Одноклассников допилили до состояния «почти совершенство».
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments23

Создание игры Tower Defense в Unity, часть 1

Reading time29 min
Views19K

Поле


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

Это первая часть серии туториалов, посвящённых созданию простой игры в жанре tower defense. В этой части мы рассмотрим создание игрового поля, поиск пути и размещение конечных тайлов и стен.

Туториал создавался в Unity 2018.3.0f2.


Поле, готовое к использованию в тайловой игре жанра tower defense.

Игра жанра Tower Defense


Tower defense — это жанр, в которой целью игрока является уничтожение толп врагов, пока они не добрались до своей конечной точки. Игрок выполняет свою цель, строя башни, которые атакуют врагов. У этого жанра очень много вариаций. Мы будем создавать игру с тайловым полем. Враги будут двигаться по полю в сторону своей конечной точки, а игрок будет создавать им препятствия.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments0

Использование DiagnosticSource в .NET Core: практика

Reading time14 min
Views12K

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


В настоящее время DiagnosticSource уже используется в AspNetCore, EntityFrameworkCore, HttpClient и SqlClient — каждый из них отправляет собственные события, которые могут быть перехвачены и обработаны.


В этой статье я хочу рассмотреть несколько примеров того, как можно на практике использовать DiagnosticSource в приложениях ASP.NET Core.


  • CorrelationID и пробрасывание заголовков между сервисами
  • Сбор метрик и трассировок
  • Логирование

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

Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments11

Использование DiagnosticSource в .NET Core: теория

Reading time11 min
Views14K

DiagnosticSource — это простой, но весьма полезный набор API (доступен в NuGet пакете System.Diagnostics.DiagnosticSource), который, с одной стороны, позволяет различным библиотекам отправлять именованные события о своей работе, а с другой — позволяет приложениям подписываться на эти события и обрабатывать их.


Каждое такое событие содержит дополнительную информацию (payload), а поскольку обработка событий происходит в том же процессе, что и отправка, эта информация может содержать практически любые объекты без необходимости сериализации/десереализации.


DiagnosticSource уже используется в AspNetCore, EntityFrameworkCore, HttpClient и SqlClient, что фактически даёт разработчикам возможность перехватывать входящие/исходящие http запросы, запросы к базам данных, получать доступ к таким объектам, как HttpContext, DbConnection, DbCommand, HttpRequestMessage и многим другим и даже изменять эти объекты при необходимости.


Я решил разделить свой рассказ про DiagnosticSource на две статьи. В этой статье мы на простом примере разберем принцип работы механизма, а в следующей я расскажу о существующих в .NET событиях, которые можно обрабатывать с его помощью и покажу несколько примеров его использования в OZON.ru.

Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments7

Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования

Reading time9 min
Views45K

(Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился).


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


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


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


Вот простой пример. Допустим, у меня есть строка "Ovaltine" и я хочу её зашифровать. Я мог бы воспользоваться rot13 — очень простым олдскульным шифром Цезаря, который делает хоровод из букв, где a и z держатся за ручки, и заменяет каждую букву другой буквой алфавита, которая находится от заменяемой буквы на расстоянии 13 символов. Таким образом "O" превращается в "B", а "v" становится "i", в итоге "Ovaltine" превращается в "Binygvar". Конечно, это не очень безопасно. Это наивный пример, который очень легко взломать, так как атакующий может выяснить, какая буква встречается чаще всего (обычно в оригинальном тексте это "e") и найти оставшиеся буквы подобным образом.

Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments24

Создание собственной цветовой палитры

Reading time4 min
Views44K
Адаптировано из нашей будущей книги «Рефакторинг UI»

Видели эти модные генераторы цветовой палитры? Когда выбираешь цвет, настраиваешь несколько параметров с музыкальными словечками типа «триада» или «четвёртый мажор» — и получаете пять идеальных цветов для своего веб-сайта?



Такой вычислительный и научный подход к выбору идеальной цветовой гаммы крайне соблазнителен, но не очень полезен.
Читать дальше →
Total votes 94: ↑92 and ↓2+90
Comments12

Подводные камни HttpClient в .NET

Reading time9 min
Views92K
Продолжая серию статей о «подводных камнях» не могу обойти стороной System.Net.HttpClient, который очень часто используется на практике, но при этом имеет несколько серьезных проблем, которые могут быть сразу не видны.

Достаточно частая проблема в программировании — то, что разработчики сфокусированы только на функциональных возможностях того или иного компонента, при этом совершенно не учитывают очень важную нефункциональную составляющую, которая может влиять на производительность, масштабируемость, легкость восстановления в случае сбоев, безопасность и т.д. Например, тот же HttpClient — вроде бы и элементарный компонент, но есть несколько вопросов: сколько он создает параллельных соединений к серверу, как долго они живут, как он себя поведет, если DNS имя, к которому обращался ранее, будет переключено на другой IP адрес? Попробуем ответить на эти вопросы в статье.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments12

Тридцать шесть градусов красоты

Reading time11 min
Views16K
Сеточные системы координат, в которых плоскость делится на одинаковые симметричные элементы — на квадраты, треугольники, шестиугольники, достаточно известны. Им соответствуют квадратная, треугольная, шестиугольная симметрия. Но еще существует симметрия десятиугольная.

В ней плоскость не делится на десятиугольники, вместо этого все линии расположены под углами кратными 36°. Координаты в этой системе можно записывать целыми числами, по два целых числа на горизонтальное и вертикальное направление.



Расскажу как это нарисовать.
Читать дальше →
Total votes 84: ↑84 and ↓0+84
Comments22

Наша книжная полка С#-программиста. А что у вас?

Reading time6 min
Views54K
Привет!

Будущие студенты Veeam Academy часто спрашивают нас о книгах, которые были бы полезны при подготовке к поступлению на наш курс по программированию на С#. Обычно мы рекомендуем несколько источников, сопровождая их своими комментариями, почему именно они будут полезны.

Однако большинство книг по программированию – это 1К+ страниц, и для их прочтения «от корки до корки» понадобится не один месяц и, возможно, даже не один год! Поэтому все наши рекомендации для абитуриентов Академии Veeam служат лишь ориентиром, а не обязательным требованием.

Со временем мы обобщили свои комментарии по каждому из изданий и в итоге получили список, как нам кажется, хороших книг для профессионального роста C# программиста.
Представляем наш краткий обзор под катом.

image
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments18

Английская грамматика как математика. С чего начать тем, у кого не сложилось

Reading time6 min
Views43K
Английская грамматика – удивительна своей простотой. Её очень сложно не любить: почти всё логично, структурировано, понятно, если знать (конечно). Это не русский, где можно что угодно сказать как угодно, но и в этом есть свой шарм. Поэтому мне всегда кажется, что людям с математическим складом ума природа просто кричит в ухо, что английский надо учить и для них это просто. Полно конечно всяких исключений, куда без них, но в общей массе всё логично.
Допустим, решились, нашли какую-то мотивацию. Так как же начать, с чего подойти? С алфавита? С неправильных глаголов? С произношения? Можно как угодно подходить, но, если ваша цель заговорить, правильнее всего будет подойти к преподавателю. Если к преподавателю лично подойти не можете, подойдите сюда.

Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments52

Как «выучить» английский за один год самостоятельно или статья для тех, у кого не сложилось с английским

Reading time6 min
Views118K
С проблемой необходимостью изучения английского сталкивался почти каждый: кто-то долго и упорно учит его в школе (иногда, кстати, успешно), кто-то ищет подходящие курсы, кто-то пользуется онлайн-ресурсами или услугами репетитора. Вопрос, почему за годы изучения английского в школе, результата добиваются немногие, и то те, чьи родители позаботились о наличии хорошего репетитора и возможности уехать в английский лагерь?

Читать дальше →
Total votes 45: ↑25 and ↓20+5
Comments175

Как спрятать DNS-запросы от любопытных глаз провайдера

Reading time16 min
Views227K

Настройка 1.1.1.1 от Cloudflare и других DNS-сервисов по-прежнему требует навыков работы в командной строке



Шифрование трафика между вашим устройством и DNS-сервисом помешает посторонним лицам отслеживать трафик или подменить адрес

Смерть сетевого нейтралитета и ослабление правил для интернет-провайдеров по обработке сетевого трафика вызвали немало опасений по поводу конфиденциальности. У провайдеров (и других посторонних лиц, которые наблюдают за проходящим трафиком) уже давно есть инструмент, позволяющий легко отслеживать поведение людей в интернете: это их серверы доменных имен (DNS). Даже если они до сих пор не монетизировали эти данные (или не подменяли трафик), то наверняка скоро начнут.

DNS — это телефонный справочник Сети, выдающий фактический сетевой адрес IP, связанный с хостингом и доменными именами сайтов и других интернет-служб. Например, он превращает arstechnica.com в 50.31.169.131. Ваш интернет-провайдер предлагает DNS в пакете услуг, но он также может журналировать DNS-трафик — по сути, записывать историю ваших действий в интернете.

«Открытые» DNS-сервисы позволяют обходить сервисы провайдеров ради конфиденциальности и безопасности, а кое в каких странах — уклоняться от фильтрации контента, слежки и цензуры. 1 апреля (не шутка) компания Cloudflare запустила свой новый, бесплатный и высокопроизводительный DNS-сервис, предназначенный для повышения конфиденциальности пользователей в интернете. Он также обещает полностью скрыть DNS-трафик от посторонних глаз, используя шифрование.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments49

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Reading time3 min
Views261K


Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.

На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.
Читать дальше →
Total votes 52: ↑41 and ↓11+30
Comments51

Алан Кей: Будущее нельзя построить постепенно

Reading time13 min
Views21K
Наименее важное время в которое мы живём — это настоящее.
Алан Кей

image

Ещё в 2014 году, когда Алан Кей выступал с этой речью в Сан Франциско, один друг присутствовал там лично. Его крайне впечатлило выступление, и он попросил перевести его для исследователя, который уже в возрасте и не знает английского. Искренне интересуясь теми, кто двигает мыслью в Долине, я согласился. Перевод лежал невостребованным долгое время, но вдруг пришла шальная мысль: взять и опубликовать.
Спасибо MagisterLudi за редакцию и помощь!


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

Большие Данные — это ниша, в которой многие сегодня пытаются делать деньги, которая также является любимицей маркетологов из-за её вездесущности. Все слышат фразу, но не все знают её значение, именно это служит отличным поводом чтобы маркетологам говорить: “это использует Большие Данные, то использует Большие Данные”. Но интересное будущее лежит за значением, за смыслом, а не данными. Стивен показал вам идею, которая у большинства людей и не появлялась — что если бы язык программирования реально знал что-нибудь о своём пользователе, о контексте, что если бы он знал бы что-нибудь и обо мне. Эти идеи довольно стары, и появились тогда, когда и многие скачкообразные открытия. Но они не были поняты в 80-е, и были просто отброшены. И это интересная тема для размышления.
Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments16

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

Reading time40 min
Views155K


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →
Total votes 74: ↑60 and ↓14+46
Comments26

Из аналога в цифру, или IP-камера своими руками

Reading time3 min
Views164K
Начну историю с того, что была у меня аналоговая купольная камера из поднебесной. Она была куплена по распродаже, стоила в районе 20 баксов, поработала пару недель и тихо скончалась. Нет, она не умерла совсем, а только видео с нее стало очень темным и непригодным для записи. Поэтому камера была заброшена в дальний угол до лучших времен.

Недавно, блуждая по всем известному сайту Aliexpress, наткнулся на модуль для IP-камеры, который предлагался как набор «сделай сам», в магазине продавца были еще разные запчасти для камер. По размеру модуль подходил на место аналогового (38х38), было решено заказать его и попробовать собрать IP-камеру из вышедшей из строя аналоговой. Модуль обошелся в смешные 11 долларов, доехал до меня очень быстро, за пару недель.
Что было дальше
Total votes 36: ↑34 and ↓2+32
Comments13
1

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity