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

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

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

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

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

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


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

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

Итак, как именно я могу хранить идентификатор и узнавать, что вы с определённого устройства возвращаетесь на сайт, при этом без входа в систему и без использования куки?
Читать дальше →
Всего голосов 75: ↑71 и ↓4 +67
Комментарии 65

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

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

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

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

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

Продолжаем знакомиться с разнообразными кучами и алгоритмами сортировок с помощью этих куч. Сегодня у нас так называемое турнирное дерево.
Траффик
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 1

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

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



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

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

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

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

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

image

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

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

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

Поскольку эксперты по данным и ИИ занимаются множеством математических задач, чаще всего они выбирают Julia. И даже после самой суровой проверки у Julia обнаруживаются свои плюсы, которые Python не может победить.
Читать дальше →
Всего голосов 28: ↑16 и ↓12 +4
Комментарии 71

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

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


Суть алгоритма в том, что на основании массива строится так называемое декартово дерево. А из построенного декартового дерева очень легко получить все элементы в порядке возрастания или убывания.
Траффик
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 6

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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


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

Во времена COVID-19 проблема только обострилась. Пандемия коронавируса привела к новому всплеску вирусной дезинформации, широко поддерживаемой движением против вакцинации. Модераторы Facebook с запозданием реагируют на заявления о контенте, потенциально нарушающим правила социальной сети.
Читать дальше →
Всего голосов 17: ↑13 и ↓4 +9
Комментарии 29

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

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


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

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

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

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

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

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

Петерсон понял, что у него стремительно прогрессирует кожная инфекция. И, кажется, он знает, где подцепил заразу: от существа, сохранившегося в вечной мерзлоте.
Читать дальше →
Всего голосов 28: ↑20 и ↓8 +12
Комментарии 18

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

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

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

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

Оглавление

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

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

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


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

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

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

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


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

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

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



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

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

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

Имея опыт в обеих сферах, постараюсь убедить вас сделать правильный выбор.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 19

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

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

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

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

Оглавление

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

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

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

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

При сортировке с помощью слабой кучи всегда меньше количество сравнений и обменов, чем если использовать обычную кучу. Так что да, слабая куча сильнее, чем обычная куча.
Траффик
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 10

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

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

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

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

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

Читать дальше →
Всего голосов 31: ↑22 и ↓9 +13
Комментарии 33

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

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

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

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

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


Длин-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-нющая инфографика
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 8

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

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

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


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

Так ведь?

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

Длин-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-н-нющая инфографика
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 5

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

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

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

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

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

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

Оглавление


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