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

Компания Edison временно не ведёт блог на Хабре

Сначала показывать

Нет Cookies, нет проблем — использование ETag для отслеживания пользователей

Время на прочтение6 мин
Количество просмотров42K
Работая старшим консультантом по дижитал-аналитике в ведущем международном аналитическом агентстве, с огромным интересом наблюдаю за нынешним крестовым походом современных веб-браузеров против технологии cookie.

Оказывается, есть способ отслеживать отдельных не вошедших в систему пользователей без использования файлов cookie. Я тоже реализовал это. Сейчас покажу как.


Для наглядности я создал демо-сайт. Вот он.

Нажмите на каждую из трёх кнопок Page → На всех трёх один и тот же идентификатор.
Закройте окно браузера и снова откройте сайт → Идентификатор не поменялся.
Выключите компьютер и зайдите на эту веб-страницу завтра → Идентификатор всё тот же.
Проверьте ваши куки → Демо-сайт не записывает куки и не считывает их.
Проверьте URL → Сомнительные строки запроса отсутствуют.

Итак, как именно я могу хранить идентификатор и узнавать, что вы с определённого устройства возвращаетесь на сайт, при этом без входа в систему и без использования куки?
Читать дальше →

Восходящая сортировка кучей

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

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

Турнирная сортировка

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

Продолжаем знакомиться с разнообразными кучами и алгоритмами сортировок с помощью этих куч. Сегодня у нас так называемое турнирное дерево.
Траффик

Определяем выигрышную покерную руку с помощью map/reduce на JavaScript

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



Вы, как и я, может, иногда участвуете в мини-соревнованиях по олимпиадному программированию. Обычно на то, чтобы придумать решение, в котором более одной-двух строк с использованием какой-то нестандартной функции, у меня нет времени, но в этот раз задача была в том, чтобы определять старшие (выигрышные) покерные руки, и мне показалось что это из тех задач, которая «должна» быть лёгкой!

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

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

Пока, Python. Привет, Julia❗

Время на прочтение6 мин
Количество просмотров23K
По мере того, как Python замедляет свой впечатляющий темп, растёт новый сильный конкурент.

image

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

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

Поэтому всё больше программистов-питонщиков осваивают и другие языки — лучшими игроками на этом поле являются Julia, Go и Rust. Julia отлично подходит для математических и технических задач, Go — для модульных программ, а Rust — лучший выбор для системного программирования.

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

Истории

Сортировка декартовым деревом

Время на прочтение5 мин
Количество просмотров17K
Свежий взгляд на традиционные концепции. Сегодня будет такой «декарт» которого в школе не проходили.


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

Затянувшееся возвращение НАСА в космос

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


С запуском SpaceX DM-2 в США наконец-то произошло то, чего не наблюдалось почти десять лет: пилотируемый полёт на низкую околоземную орбиту с помощью отечественных ракеты-носителя и космического корабля. Это был длинный период стагнации, тянувшийся гораздо дольше, чем кто-либо мог предполагать в НАСА, да и во всём остальном мире тоже. Из-за многочисленных задержек и отменённых программ агентство, оставившее следы на Луне и построившее культовый «Спейс шаттл», с 2011 года вынуждено было полагаться на Россию, чтобы доставлять своих астронавтов в космос.

НАСА всё ещё пришлось бы ожидать запуска своих собственных астронавтов, если бы полагалось на традиционных аэрокосмических гигантов Америки. Первый полёт Boeing CST-100 Starliner на МКС ​​в декабре прошлого года оказался досадным фиаско, во время которого чуть была не потеряна беспилотная капсула. Расследование показало, что недоработанное ПО и плохо продуманное тестирование вызвали как минимум два крупных сбоя во время миссии, которую в конечном итоге пришлось прервать. Транспортное средство не сумело даже достичь высоты МКС, не говоря уже о стыковке. НАСА и Боинг согласовали ещё одну попытку испытания CST-100 до конца текущего года, хотя, с учётом пандемии, задержка до 2021 года представляется почти неизбежной.

Но в долгом возвращении Америки к пилотируемым полётам нельзя винить только неудавшийся CST-100 или даже неповоротливую корпорацию Боинг. После отмены программы «Шаттл» НАСА постоянно сталкивалось с нерешительностью политиков. Из-за того что Белый дом переходил от республиканцев к демократам и обратно, Агентству приходилось бороться хоть за какой-то прогресс в достижении то одной цели, то другой.

Военный и разведывательный персонал можно отслеживать с помощью приложения Untappd Beer

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

Кто бы мог подумать. С помощью приложения Untappd (пользователи выставляют рейтинг пива) можно отследить историю перемещения военнослужащих. Эта социальная сеть насчитывает более восьми миллионов пользователей — в основном из Европы и Северной Америки. Её функции позволяют раскрывать конфиденциальную информацию о пользователях, служащих в военных и разведывательных подразделениях по всему миру.

Готовность пропустить бокал-другой военнослужащим или использование им социальных сетей — само по себе это вряд ли кому интересно. Однако пользователи Untappd регистрируют сотни, зачастую тысячи географических меток с указанием времени, когда они там были. Эти места аккуратно отсортированы по более чем 900 категориям, столь же разнообразным сколь и конкретизирующим, например, «Ботанический сад», «Стриптиз-клуб», «Гей-бар», «Ресторан западноукраинской кухни» или «Зал ожидания в аэропорту». В результате чего приложение позволяет любому отслеживать перемещение других пользователей между интересными местами — а также их любимыми барами, отелями, ресторанами, районами, а иногда даже частными домами.

Среди примеров пользователей, которых можно отследить таким образом: диспетчер американских беспилотников (а также вычисляется список посещённых им военных баз, как в США, так и за их пределами); военно-морской офицер (отметившийся в приложении, находясь на пляже рядом с тюрьмой Гуантанамо, а также нескольких раз поблизости от Пентагона); старший офицер разведки (активность в приложении зафиксирована более 7 тысяч раз, как в США так и за рубежом). Есть там и старшие должностные лица в Министерстве обороны США и ВВС США.
Читать дальше →

Сортировка выворачиванием

Время на прочтение9 мин
Количество просмотров8.7K
Программист из Индии наглядно показывает Zig-Zag, Zig-Zig и Zig, используемые в алгоритме SplaySort:


В этом сезоне мы изучаем разнообразные кучи и как их можно использовать для сортировки. Однако на сей раз мы сделаем шаг в сторону от магистральной темы. Сегодняшняя структура — splay tree — кучей не является. Но оно нам нужно, чтобы морально подготовиться к изучению очередной кучи — на следующей неделе будет лекция про сортировку декартовым деревом.
Траффик

Как инстаграмные антипрививочники продвигают свои теории заговора

Время на прочтение6 мин
Количество просмотров6.5K
Пандемия коронавируса породила новую волну вирусной (во всех смыслах) дезинформации.


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

Во времена COVID-19 проблема только обострилась. Пандемия коронавируса привела к новому всплеску вирусной дезинформации, широко поддерживаемой движением против вакцинации. Модераторы Facebook с запозданием реагируют на заявления о контенте, потенциально нарушающим правила социальной сети.
Читать дальше →

Может ли «испанка» словно вирус-зомби сохраниться в вечной мерзлоте?

Время на прочтение8 мин
Количество просмотров8.7K
Примечание редактора NPR: в СМИ и в Твиттере высказаны предположения, что фрагменты ДНК ныне не существующего возбудителя гриппа 1918 года могут сохраняться в условиях вечной мерзлоты и представлять угрозу для людей, если в результате глобального потепления произойдёт оттаивание слоёв мёрзлой почвы. Пару лет назад наше издание уже исследовало этот вопрос: может ли опасный патоген (а заодно и ему подобные) возродиться? В январе 2018 года была опубликована первая версия данной истории.


Зак Петерсон умеет находить приключения.

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

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

Но самое интересное произошло в самом конце летней поездки.

«Я заметил красное пятно на передней части ноги», — говорит Петерсон. «Оно было размером с десять центов. Жутко пекло́, до раны было невозможно дотронуться».

Поражённая область быстро увеличивалась. «Через несколько дней уже стало размером с бейсбольный мяч», — вспоминает он.

Петерсон понял, что у него стремительно прогрессирует кожная инфекция. И, кажется, он знает, где подцепил заразу: от существа, сохранившегося в вечной мерзлоте.
Читать дальше →

[Часть 2/2] Руководство по FFmpeg и SDL или Как написать видеоплеер менее чем в 1000 строк

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

Выкладываем оставшуюся часть перевода на русский руководства, несколько устаревшего, однако не потерявшего своей актуальности, поскольку этот учебник помогает вникнуть в «кухню» создания видеоприложений с помощью библиотек FFmpeg и SDL.

И хотя мы старались, в таком объёмном тексте неизбежны трудности перевода. Сообщайте о недочётах (желательно, в личных сообщениях) — вместе сделаем лучше.

Оглавление

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

Простые консольные команды, которые стоит знать всем

Время на прочтение5 мин
Количество просмотров22K
Навыки работы в терминале помогают быть более продуктивным.


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

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

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

Список базовых команд:


pwd — информация о каталоге
cd — смена каталога
ls — список файлов в каталоге
cp & mv — скопировать/переместить файл/каталог
mkdir & touch — создать каталог/файл
rmdir & rm — удалить каталог/файл
cat, tail & head — прочитать файл
grep — поиск текста в файле по регулярному выражению
find — поиск файла/каталога
Читать дальше →

Стоит ли идти в Data Science?

Время на прочтение6 мин
Количество просмотров28K
Совет, который я даю всегда, когда кто-то спрашивает меня, с чего начать, чтобы заняться наукой о данных. Лучше станьте инженером-программистом.



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

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

Часто получаю сообщения от выпускников ВУЗ-ов и просто людей, меняющих профессию, спрашивающих о том, как войти в науку о данных. Вместо этого я советую им просто войти в айти.

Имея опыт в обеих сферах, постараюсь убедить вас сделать правильный выбор.
Читать дальше →

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

[Часть 1/2] Руководство по FFmpeg и SDL или Как написать видеоплеер менее чем в 1000 строк

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

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

И хотя мы старались, в таком объёмном тексте неизбежны трудности перевода. Сообщайте о недочётах (желательно, в личных сообщениях) — вместе сделаем лучше.

Оглавление

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

Сортировка слабой кучей

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

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

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

[Инфографика] Как COVID-19 влияет на организм

Время на прочтение3 мин
Количество просмотров20K
На данный момент исследователи и эксперты в области здравоохранения уже лучше понимают весь спектр симптомов, вызываемый COVID-19, включая лихорадку, сухой кашель и, конечно, опасное воспаление дыхательной системы. Большинство из нас знает, что COVID-19 может быть гораздо более опасным, чем грипп, при этом большинство людей имеют слабое представление (а то и не имеют вовсе) о механизмах того, как вирус вызывает пневмонию у своих жертв.

Сегодняшняя информативная иллюстрация, сделанная научным дизайнером и аниматором Авестой Растаном, подробно описывает влияние COVID-19 на лёгкие от умеренных до тяжелых случаев.

По данным Всемирной организации здравоохранения (ВОЗ), большинство людей, которые заразились COVID-19, испытывают только лёгкие симптомы гриппа. Тем не менее, иногда инфекция может перерасти в тяжёлый случай пневмонии, которая может привести к летальному исходу. Особенно это касается пожилых людей и людей с сопутствующими заболеваниями.

Вот что делает COVID-19 с вашим телом:

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

[Инфографика] Топ-50 игровых франшиз с доходом более миллиарда

Время на прочтение4 мин
Количество просмотров19K
В 1958 году на научной выставке ​​первая в мире видеоигра «Теннис вдвоём» повергла посетителей в шок — это было что-то из ряда вон выходящее.

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

Это впечатляет само по себе. Но и то, как именно многие из этих франшиз приносят доход, может стать откровением.

Как видеоигры приносят миллиарды?


Длин-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-нющая инфографика

[Инфографика] Размер «текста мелким шрифтом» для 14 популярных приложений

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

Условия использования: длина обычных цифровых контрактов


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

Так ведь?

Ну, если уж честно, то...

Длин-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-нющая инфографика

Руководство по FFmpeg libav

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

Долго искал книгу, в которой было бы разжёвано, как использовать FFmpeg-подобную библиотеку, известную как libav (название расшифровывается как library audio video). Обнаружил учебник «Как написать видеоплеер и уложиться в менее чем тысячу строк». К сожалению, информация там устаревшая, так что пришлось создавать мануал своими силами.

Большая часть кода будет на C, однако не волнуйтесь: Вы легко всё поймёте и сможете применить на любимом языке. У FFmpeg libav уйма привязок ко многим языкам (в том числе и к Python и к Go). Но даже если Ваш язык прямой совместимости не имеет, всё равно можно привязаться через ffi (вот пример с Lua).

Начнём с краткого экскурса о том, что такое видео, аудио, кодеки и контейнеры. Затем перейдем к ускоренному курсу, посвященному использованию командной строки FFmpeg, и, наконец, напишем код. Не стесняйтесь переходить сразу в раздел «Тернистый путь изучения FFmpeg libav».

Есть мнение (и не только моё), что потоковое интернет-видео уже приняло эстафету от традиционного телевидения. Как бы то ни было, FFmpeg libav точно достоин изучения.

Оглавление


Читать дальше →
1
23 ...