Pull to refresh
4
0
Send message

Big Data resistance 1 или неуловимый Джо. Интернет анонимность, антидетект, антитрекинг для анти-вас и анти-нас

Reading time28 min
Views21K
Доброго времени прочтения, уважаемые читатели Хабра.

Прочитал за последнее время ряд статей, в том числе на Хабре, по цифровым отпечаткам браузеров и слежке за пользователями в Интернете. Например, статья Анонимная идентификация браузеров и Ловушка в интернете журнал Forbes, раздел «технологии» — «Big Data».

А может я не хочу, чтоб меня учитывали! Только, боюсь, ирония в том, что это тоже отпечаток, да, к тому же, видимо, и основная причина появления отпечатков. ИМХО, способ только один. Применительно к FireFox — если все лисицы хором и каждая в отдельности начнут тявкать, что они обыкновенные стандартные лисицы, а не тор, не хром и не макось.

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

Как мы собрали 12-этажный стек технологий и не сошли с ума

Reading time8 min
Views7.1K
Appodeal — это компания из ~100 человек, которые работают в Москве, Сан-Франциско, Барнауле, Луцке, Кирове, Барселоне, а с июня 2018 года — еще и в Минске.

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

image

Для тех, кто еще не знаком с Ad Tech — это область работы технологичных компаний, которые работают в сфере рекламы. Когда рассказываешь кому-то, что ты работаешь в сфере мобильной рекламы, то люди часто реагируют скептически — видимо, на ум приходит надоедливая реклама «Азино три топора». На самом деле это лишь верхушка айсберга, и вся эта “дикая” реклама не имеет никакого отношения к настоящему рекламному бизнесу.
Читать дальше →

Scrum is dead

Reading time7 min
Views50K
— За что тебя приняли, за то и уволят. – тяжело вздохнув, сказал Боб. – Слышал такую фразу?

— Нет. – угрюмо ответил Джон.

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

— У меня своя версия. – тихо сказал Джон. – Кажется, дело было в скраме.

— Да, дело было в скраме. – кивнул Боб, все еще глядя в окно. – И я, если честно, уже не могу про него слышать. Не хочу говорить высокопарных слов, но ты меня обманул.

— Я? – недоуменно спросил Джон.

— Ты и скрам. Твой скрам. Твоя инициатива. – Боб повернулся и в упор уставился на Джона. Которая будет стоит мне проекта. И кучи денег.
Читать дальше →

Что такое психическое здоровье: взгляд со стороны психологии / психотерапии

Reading time28 min
Views53K
Привет, читатель!

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

ПРЕДСТАВЬТЕ, ЧТО ТУТ — КАРТИНКА ДЛЯ ПРИВЛЕЧЕНИЯ ВНИМАНИЯ


tl:dr: В статье рассматривается вопрос психического здоровья на примере модели, предложенной Нэнси Мак-Вильямс (“16 элементов психического здоровья”). По каждому элементу я постараюсь дать примеры — как выглядит “сломанная” в этом аспекте психика, что было сделано, чтобы её “починить” (в данном конкретном случае), какие ошибки были допущены, что ещё можно было бы сделать и т.д.

К сожалению, стремление к упрощению материала с моей стороны значительно снизило точность и объективность формулировок, предупреждаю сразу.
Читать дальше →

Android-приложения на JPHP

Reading time3 min
Views20K

Люди которые пишут код на PHP сделают всё чтобы не переходить на другие языки. Да, я в курсе что раньше на Хабре уже был способ писать Android-приложения на PHP, но было принято решение адаптировать его под более быстрый и совместимый с Java JPHP.


logo

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

CloudFlare реализовала поддержку Encrypted SNI

Reading time2 min
Views15K
24 сентября CloudFlare объявили о поддержке расширения TLS 1.3 Encrypted SNI.

image

Преимущества ESNI

  • Никто не видит на какой домен вы заходите. Все что знает провайдер это только IP адрес на который вы обращаетесь.
  • Domain Fronting не нужен.

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

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

О демонах и телепортации: две технологии, которые приближают «квантовое будущее»

Reading time4 min
Views16K
Расскажем о технологиях, которые могут поспособствовать широкому распространению квантовых машин, квантовом эквиваленте демона Максвелла и телепортации квантового вентиля.

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

Кратко о типах архитектур программного обеспечения, и какую из них выбрали мы для IaaS-провайдера

Reading time10 min
Views81K
Есть множество типов архитектур ПО со своими плюсами и минусами. Далее поговорим об особенностях наиболее популярных из них и расскажем о своем переходе на микросервисы.

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

Добавление водяного знака на все картинки сайта

Reading time5 min
Views19K

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


Мы решили написать универсальный скрипт, который можно запустить из консоли или прямо в браузере и обновить все картинки на сайте.

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

Утечка исходных кодов веб-сервисов «Аэрофлота»

Reading time1 min
Views50K
Неизвестный опубликовал на GitHub исходные коды веб-приложений «Аэрофлота», включая код, отвечающий за начисление бонусов и создание подарочных сертификатов. Утечка произошла из-за халатности — сервер с реестром контейнеров Docker был доступен всем желающим по протоколу HTTP без авторизации и шифрования.
Читать дальше →

Мой любимый файл в кодовой базе Chromium

Reading time6 min
Views87K
Код Хромиума весьма обширен, там каждому найдётся что-то по вкусу. А я вот решил рассказать о своём любимом файле в нём (а у вас есть такой?). Этот файл отражает всё: боль, разочарование, надежду, упорство, силу воли, ответственность за чужие провалы и самопожертвование. Я иногда читаю его и плачу и проникаюсь пониманием, какая же огромная часть айсберга скрыта под водой. Это, в общем, даже не файл с кодом. Это файл с конфигом, описывающим баги видеокарт, которые Хромиуму приходится обходить для нормального отображения своих страниц на разных платформах. Вот он: https://cs.chromium.org/chromium/src/gpu/config/gpu_driver_bug_list.json

О чём вообще идёт речь? Давайте вспомним, как работает браузер: вы набираете какой-то адрес в адресной строке, браузер загружает контент и отображает его. Чуть детальнее об этом рассказывает хорошая статья «What happens when you type google.com into your browser and press enter?» (и сразу несколько её переводов на Хабре). В ней одним из последних пунктов упоминается, мол, «а теперь, когда всё готово, отрисовываем картинку на экране». Ага, вот так берём и отрисовываем, конечно.
Читать дальше →

Храним токены авторизации безопасно

Reading time6 min
Views41K
Привет %username%. Меня, независимо от темы доклада, на конференциях постоянно спрашивают один и тот же вопрос — «как безопасно хранить токены на устройстве пользователя?». Обычно я стараюсь ответить, но время не позволяет полностью раскрыть тему. Этой статьей я хочу полностью закрыть этот вопрос.
Читать дальше →

DBMS-транзакции

Reading time4 min
Views3.1K
Всем бобра! Мы активно расширяем наш, так сказать, ассортимент курсов, и вот рады представить новый: «Реляционные СУБД». Курс создан одним из ведущих преподавателей курса «Администратор Linux»Алексеем Цыкуновым. В остальном всё будет как обычно: полезности и открытые уроки, на которых Алексей будет делиться разными вещами, что не входят в сам курс.

Поехали!
Читать дальше →

Удалённое выполнение кода через загрузку картинок на вашем сервере или локальном компьютере в ghostscript/imagick

Reading time2 min
Views10K
Кратко: если у вас на сайте есть загрузка изображений и вы обрабатываете их при помощи популярной библиотеки ImageMagick, то загрузив картинку можно выполнить shell-команду с правами юзера веб-сервера (например: загрузить RAT, майнер, слить исходники, получить доступ к базе, вызвать отказ и т.п.)

Странно, что мимо хабросообщества прошла стороной новость (оригинал) о новых дырах в библиотеке GhostScript и как следствие множестве других библиотек, использующих её под капотом. Итак, что мы имеем?
Читать дальше →

Что на самом деле делала программа Ады Лавлейс?

Reading time13 min
Views60K
image

Эпизод с основанием Microsoft – один из наиболее известных в компьютерной истории. В 1975 году Пол Аллен вылетел в Альбукерк, чтобы продемонстрировать интерпретатор BASIC, которые они с Биллом Гейтсом написали для микрокомпьютера Altair. Поскольку у них не было работающего компьютера Altair, они проверили свой интерпретатор при помощи написанного ими эмулятора, выполнявшегося на компьютерной системе Гарварда. Эмулятор был основан только на опубликованных спецификациях процессора Intel 8080. Когда Аллен, наконец, запустил интерпретатор на реальном компьютере Altair – перед человеком, который, как они надеялись, купит их ПО – он даже не знал, заработает ли программа. Она заработала. В следующем месяце Аллен и Гейтс официально основали новую компанию.

За более чем сто лет до интерпретатора BASIC Аллена и Гейтса, Ада Лавлейс написала и опубликовала компьютерную программу. Она тоже написала программу для компьютера, о котором знала только по описанию. Но её программа, в отличие от интерпретатора BASIC, никогда не выполнялась, потому что компьютер, для которого она была написана, так и не был построен.

Основные структуры данных. Матчасть. Азы

Reading time5 min
Views258K
Все чаще замечаю, что современным самоучкам очень не хватает матчасти. Все знают языки, но мало основы, такие как типы данных или алгоритмы. Немного про типы данных.

Еще в далеком 1976 швейцарский ученый Никлаус Вирт написал книгу Алгоритмы + структуры данных = программы.

40+ лет спустя это уравнение все еще верно. И если вы самоучка и надолго в программировании пробегитесь по статье, можно по диагонали. Можно код кофе.


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

Хватит разрабатывать софт с запасом

Reading time6 min
Views12K

Или делайте это правильно


Если выбрать одну идею, которая убивает больше всего продуктов, то это создание запаса на будущее (future proofing).

Обычно идея проявляется по схеме.

Нам нужен {X}, и хотя сделать {Y} гораздо легче, но при наступлении {Z} первый вариант упростит нам жизнь.

Где {Z} — событие, которое может произойти в далёком будущем.

Вот несколько примеров:

  • Для инфраструктуры нужны Kubernetes и Docker, хотя один большой сервер гораздо проще, но когда придётся масштабироваться до 11-ти серверов, это упростит нам жизнь.
  • Для обработки данных нужен распределённый дизайн, хотя централизованное решение гораздо проще, но когда клиент потребует 99,999% безотказной работы в SLA, это упростит нам жизнь.
  • Нужно набрать команду разработчиков и создать собственное программное обеспечение, хотя Wordpress и Shopify гораздо проще, но когда клиентская база вырастет в 100 раз, это упростит нам жизнь.
  • Нужно использовать дизайн на основе наследования типов, хотя композиция гораздо проще, но после 5 лет увеличения кодовой базы это упростит нам жизнь.
  • Нужно написать код в C++ с кэшированием представлений, хотя Python-скрипт с прямыми запросами к Postgres гораздо проще, но при большом увеличении объёма данных это упростит нам жизнь.

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

Не пытайтесь предугадать завтрашние проблемы

Reading time7 min
Views7.4K
Ну или начните делать это правильно.

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

«Нам нужно реализовать решение {Х}, несмотря даже на то, что есть значительно более простое и подходящее нам сейчас решение {Y}, ведь когда в будущем произойдёт {Z}, то {X} сработает гораздо лучше, чем {Y}».

При этом точной информации о вероятности наступления события {Z} нет и быть не может.

Вот пара примеров:

  • Нам нужно использовать kubernetes и docker! Да, с текущей нагрузкой отлично справляется один сервер и его легко настроить и поддерживать, но ведь когда нам нужно будет дюжина серверов — будет легче их разворачивать с kubernetes и docker.
  • Нам нужна архитектура распределенной обработки данных! Да, пока со всем справляется один средненький ПК, но когда у нас будет решение промышленного уровня и заказчики потребуют аптайм в пять девяток в SLA — мы будем к этому готовы.
  • Нам нужно нанять команду разработчиков и создать сайт с нуля, не смотря на то, что значительно быстрее было бы развернуть что-то на базе wordpress, ведь когда у нас будет в 100 раз больше клиентов, чем сейчас, то wordpress станет не так удобен.
  • Нам нужно использовать наследование вместо композиции, ведь через 5 лет кодовая база разрастётся так, что без этого будет никак.
  • Нам нужно написать вот этот код на С++, не смотря на то, что на Python это будет в разы быстрее, ведь спустя годы он будет обрабатывать терабайты данных и Python может здесь не справится.

Недавно я писал статью о воображаемых проблемах — тех, решением которых люди развлекают себя, ведь их решать интереснее, чем реальные. Сюда же можно отнести и вот эти попытки предвидеть будущее. Даже можно сказать больше — это любимая воображаемая проблема большинства маленьких начинающих компаний.
Читать дальше →

Автоматизация против хаоса

Reading time5 min
Views3.8K


Современное развитие IT технологий позволило обуздать громадные потоки данных.
У бизнеса появились различные инструменты: CRM, ERP, BPM, бухгалтерские системы или в крайнем случае просто Excel и Word.

Компании тоже бывают разные. Некоторые, состоят из множества обособленных филиалов. В таком случае у бизнеса возникает проблема синхронизации данных в зоопарке IT систем. Тем более, что у филиалов отличаются вендоры или версии ПО. А частые изменения требований к отчётности от управляющей компании вызывают приступы неконтролируемой “радости” на местах.

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

Колмогоровская сложность и наши поиски смысла

Reading time7 min
Views17K

Что математика может рассказать нам о поиске порядка в хаосе жизни




Была ли встреча с самым дорогим вам человеком случайной, или виной тому была какая-то скрытая причина? А что насчёт странного вчерашнего сна – это были только случайные метания синапсов мозга, или он раскрыл что-то глубокое по поводу вашего подсознания? Возможно, сон пытался рассказать вам что-то о вашем будущем. Возможно, что и нет. Имеет ли тот факт, что ваш близкий родственник заболел опасной разновидностью рака, какой-то глубокий смысл, или же это просто последствия случайных мутаций ДНК?

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity