• Как убрать из Git-репозитория файлы с конфиденциальной информацией

    • Перевод
    Файлы проиндексированы, написано сообщение коммита, данные отправлены на сервер… И вдруг хочется повернуть время вспять. В коммит попал файл, которого там быть не должно. Когда такое случается, приходит время обращаться к поисковику.

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

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


    Удаление файлов с конфиденциальной информацией из Git-репозитория (изображение большого размера)
    Читать дальше →
  • Как я избавлялся от Google на Android

    image

    Недавно на работе получил задачу от руководителя: сделай так чтобы телефон android не сливал данные гуглу.  Можете представить мой восторг (и предвкушение) ибо спустя 2 недели тестов я вполне уже чувствовал себя человеком который прошивает телефоны на радиорынке (ничего личного, просто не мой профиль). Прочел отличную статью и понабравшись опыта решил немного дополнить. Статья кстати отличная, рекомендую к прочтению.

    Давайте рассмотрим несколько альтернативных операционных систем якобы без сервисов гугла, и выясним действительно ли они не общаются с гуглом. Подготовился я к слову основательно, для тестов даже приобрел девайс "pixel 3", так как GrapheneOS работает только с устройствами от google.

    Читать дальше →
  • Нефтянка для инженеров, программистов, математиков и широких масс трудящихся, часть 5


      Сегодня мы поговорим о двух частных областях, где без моделирования не обойтись, расскажем, как инженеры умеют разбираться в показаниях датчиков насосов, кранов и квадрокоптеров и выясним, наконец, в каких единицах измеряется вес. Любая скважина – это объект капитального строительства, как здание или завод, который требует капитальных вложений, планирования, периодического и капитального ремонта, и только при удовлетворении этих требований она сможет вернуть затраты на своё строительство и принести прибыль как в энергетическом, так и в денежном выражении. Жизнь скважины напрямую связана с периодически проводимыми на ней технологическими ремонтными операциями. Есть операции, как, например, спуск-подъём и замена труб или насоса, которые нуждаются только в наличии чёткого плана и соблюдении техники безопасности ремонтной бригадой. А есть операции особенные, требующие глубокой инженерной проработки и дополнительного моделирования, и без этих действий жизнь скважины может просто закончиться. А скважина, напомню – это большое вложение средств и энергии.  
      Читать дальше →
      • +26
      • 4,7k
      • 7
    • Заметки Дата Сайентиста: маленькие утилиты — большая польза


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

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

        Tools — learn the tools — все написанное субъективно и основано исключительно на личном опыте: помогло мне может быть поможет и вам.
        Читать дальше →
        • +41
        • 6,9k
        • 5
      • Обзор методов создания эмбедингов предложений, Часть2

          Здравствуйте, продолжение статьи про методы создания эмбедингов предложений. В этом гайде мало слов и много кода, готово для Ctrl+с, Ctrl+v, улучшений и дальнейших тестов.


          Часть1 обязательна для ознакомления


          4. BERT


          from deeppavlov.core.common.file import read_json
          from deeppavlov import build_model, configs
          from deeppavlov.models.embedders.elmo_embedder import ELMoEmbedder
          # ссылка для скачивания моделей http://docs.deeppavlov.ai/en/master/features/pretrained_vectors.html

          4.1 rubert_cased_L-12_H-768_A-12_pt


          class RU_BERT_CLASS:
              def __init__(self, name):
                  bert_config = read_json(configs.embedder.bert_embedder)
                  bert_config['metadata']['variables']['BERT_PATH'] = os.path.join('./.', name)
                  self.m = build_model(bert_config)
          
              def vectorizer(self, sentences):
                  return [sentence.split() for sentence in sentences]
          
              def predict(self, tokens):
                  _, _, _, _, sent_max_embs, sent_mean_embs, _ = self.m(tokens)
                  return sent_mean_embs
          
          bert = RU_BERT_CLASS('rubert_cased_L-12_H-768_A-12_pt')
          get_similarity_values = similarity_values_wrapper(bert.predict, bert.vectorizer, distance_function=cosine_distances)
          evaluate(get_similarity_values, 'rubert')

          'rubert: 2895.7'

          Читать дальше →
        • Flipper Zero — как выйти на Кикстартер сидя на карантине на даче

            Flipper Zero крупным планом

            Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2],[3]

            Я до сих пор не могу в это поверить. Это самая волнительная статья, которую я когда-либо писал. Мы прошли огромный путь: два раза полностью меняли электронику Флиппера, выживали при блекауте и закрытых границах из-за коронавируса, переносили компанию из Гонконга в США, с трудом прошли все проверки и верификации и НАКОНЕЦ ГОТОВЫ К ЗАПУСКУ ФЛИППЕРА НА КИКСТАРТЕРЕ! Сейчас мне осталось только нажать кнопку «Старт».

            Внутри я расскажу: через что нам пришлось пройти, что нужно для выхода на Кикстартер, как мы за две недели зарегистрировали компанию в США и открыли банковский счет, как Stripe отказывался подтверждать нашу компанию и что будет дальше.
            Читать дальше →
          • Sktime: унифицированная библиотека Python для машинного обучения и работы с временными рядами

            • Перевод
            Всем привет. В преддверии старта базового и продвинутого курсов «Математика для Data Science», мы подготовили перевод еще одного интересного материала.






            Решение задач из области data science на Python – это непросто


            Почему? Существующие инструменты плохо подходят для решения задач, связанных с временными рядами и эти инструменты сложно интегрировать друг с другом. Методы пакета scikit-learn предполагают, что данные структурированы в табличном формате и каждый столбец состоит из независимых и одинаково распределенных случайных величин – предположений, которые не имеют ничего общего с данными временных рядов. Пакеты, в которых есть модули для машинного обучения и работы с временными рядами, такие как statsmodels, не особо хорошо дружат между собой. Более того, множество важных операций с временными рядами, такие как разбиение данных на обучающий и тестовый наборы по временным промежуткам, в существующих пакетах недоступны.

            Для решения подобных задач и была создана sktime.
            Читать дальше →
          • Девайсы для пентеста. Обзор хакерских девайсов. Часть 3: Wi-Fi + Network



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

              За последние годы в клирнет вышло огромное количество пентестерских устройств и постоянно появляются новые. Большинство продаётся в разрозненных магазинах по всему миру (и на алиэкспрессе в том числе), и у пентестеров появилась новая головная боль — выбирать среди десятков похожих устройств нужное или искать очередное «универсальное» решение. Наконец, крутой специалист и консультант по информационной безопасности Yago Hansen просто собрал каталог крутых девайсов, железяк и аксессуаров, доказавших свою эффективность. Сейчас каталог второй версии, в нём 177 наименований из 8 категорий. Предлагаем вашему вниманию его адаптацию в виде цикла из 7 постов (некоторые категории будут совмещены или поделены на две статьи из-за разницы в объёме).
              Читать дальше →
            • Спасите пароль: сказочная реализация схемы разделения секрета Шамира на Python

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


              Для безопасного хранения множества уникальных паролей многие из нас используют менеджеры паролей. Вся их работа по сути завязана на мастер-пароле. Этот пароль защищает все остальные пароли, и, таким образом, несёт весь риск на себе. Любой, кто подберёт его или получит к нему доступ, может притвориться вами в самый неподходящий момент. Естественно, вы стараетесь сделать свой мастер-пароль максимально сложным, а затем запоминаете или где-то ещё фиксируете его.
              Читать дальше →
              • +40
              • 11,6k
              • 4
            • Разбор статьи о том, как извлечь смыслы из эмбеддингов

                tl;dr: Упрощенный разброр статьи, в которой автор предлагает две интересные теоремы, на базе которых он нашел способ как из матрицы эмбеддингов извлечь скрытые векторы смыслов. Приведен гайд о том, как воспроизвести результаты. Ноутбук доступен на гитхабе.


                Введение


                В этой статье я хочу рассказать об одной потрясной вещи, которую нашел исследователь Санджев Арора в статье Linear Algebraic Structure of Word Senses, with Applications to Polysemy. Она является одной из серии статей, в которых он пытается дать теоретические обоснования свойства эмбеддингов слов. В этой же работае Арора делает предположение о том, что простые эмбеддинги, такие как word2vec или Glove, на самом деле включают в себя несколько значений для одного слова и предлагает способ как можно их восстановить. По ходу статьи я буду стараться придерживаться оригинальных примеров.


                Более формально, за $\upsilon_{tie}$ обозначим некий вектор эмбединга слова tie, которое может иметь значение узла или галстука, а может быть глаголом "завязать". Арора предполагает, что этот вектор можно записать, как следующую линейную комбинацию


                $ \upsilon_{tie} \approx \alpha_1 \upsilon_{tie1} + \alpha_2 \upsilon_{tie2} + \alpha_3 \upsilon_{tie3}+... $


                где $\upsilon_{tien}$ это одно из возможных значений слова tie, а $\alpha$ — коэффициент. Давайте попробуем разобраться, как же так получается.

                Читать дальше →
              • Девайсы для пентеста. Обзор хакерских девайсов. Часть 2: RF



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

                  За последние годы в клирнет вышло огромное количество пентестерских устройств и постоянно появляются новые. Большинство продаётся в разрозненных магазинах по всему миру (и на алиэкспрессе в том числе), и у пентестеров появилась новая головная боль — выбирать среди десятков похожих устройств нужное или искать очередное «универсальное» решение. Наконец, крутой специалист и консультант по информационной безопасности Yago Hansen просто собрал каталог крутых девайсов, железяк и аксессуаров, доказавших свою эффективность. Сейчас каталог второй версии, в нём 177 наименований из 8 категорий. Предлагаем вашему вниманию его адаптацию в виде цикла из 7 постов (некоторые категории будут совмещены или поделены на две статьи из-за разницы в объёме).
                  Читать дальше →
                • Девайсы для пентеста. Обзор хакерских девайсов. Часть 1: Мини компьютеры



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

                    За последние годы в клирнет вышло огромное количество пентестерских устройств и постоянно появляются новые. Большинство продаётся в разрозненных магазинах по всему (и на алиэкспрессе в том числе), и у пентестеров появилась новая головная боль — выбирать среди десятков похожих устройств нужное или искать очередное «универсальное» решение. Наконец, крутой специалист и консультант по информационной безопасности Yago Hansen просто собрал каталог крутых девайсов, железяк и аксессуаров, доказавших свою эффективность. Сейчас каталог второй версии, в нём 177 наименований из 8 категорий. Предлагаем вашему вниманию его адаптацию в виде цикла из 7 постов (некоторые категории будут совмещены или поделены на две статьи из-за разницы в объёме).
                    Читать дальше →
                  • Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

                      2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



                      Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
                      Когда это нас останавливало?
                    • Инструменты OSINT, которые ускорят исследования в сети



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

                        Бывает, не всегда легко выразить свою информационную потребность в поисковом запросе. Может не хватать нужной терминологии, или вы еще не совсем уверены, в том, что именно ищите, а увидев возможные варианты, сразу поймете что нужно. А может, то, что вы ищите, вообще сложно облечь в лаконичный поисковой запрос.

                        Мы собрали инструменты OSINT, которые сделают исследования в сети более быстрыми, полезными и, возможно, более приятными. Большинство собранных ресурсов — на английском, бесплатные и без регистрации.
                        Читать дальше →
                      • Разблокируем интернет с помощью Mikrotik и VPN: подробный туториал

                        • Tutorial

                        В этом пошаговом руководстве я расскажу, как настроить Mikrotik, чтобы запрещённые сайты автоматом открывались через этот VPN и вы могли избежать танцев с бубнами: один раз настроил и все работает.

                        В качестве VPN я выбрал SoftEther: он настолько же прост в настройке как и RRAS и такой же быстрый. На стороне VPN сервера включил Secure NAT, других настроек не проводилось.

                        В качестве альтернативы рассматривал RRAS, но Mikrotik не умеет с ним работать.  Соединение устанавливается, VPN работает, но поддерживать соединение без постоянных реконнектов и ошибок в логе Mikrotik не умеет.

                        Настройка производилась на примере RB3011UiAS-RM на прошивке версии 6.46.11.
                        Теперь по порядку, что и зачем.
                        Читать дальше →
                      • Бот Telegram для пиццерии на Python с помощью telebot

                        Вступление


                        На Хабре уже есть статья о Telegram боте, написанном на Python с помощью telebot. Признаться, свое знакомство с чат-ботами в недавно разблокированном мессенджере я начинал с этой статьи. Моя писанина — это дополнение, включающее в себя работу с Inline кнопками и базой данных.


                        Установка библиотеки


                        Telebot — библиотека для взаимодействия с Telegram API, которая привлекла меня простотой, поэтому я считаю, что для новичков она подходит на все 100%.

                        Читать дальше →
                      • Визуализация генеративных алгоритмов: гифа, деревья, повторяющиеся и дифференциальные линии (на Python)

                        • Перевод
                        • Tutorial
                        image

                        Введение


                        Паттерны всегда меня очаровывали. Даже не важно какие. Я экспериментировал со многими: сети, листья и их переплетения, ветви, молнии, флокирование, очертания фигур, реки, скальный осадок, пейзажи, слизистая плесень, лишайники, взаимодействие и расплавление, клеточные автоматы, некоторые фракталы и другие штуки. Мне кажется, что самое приятное — это то, как сложные и затейливые результаты можно получить от набора простых правил.

                        image

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

                        Иногда мне удается воссоздать явление, которое я собирался создать, а иногда — нет. Чаще всего я получаю нечто интересное, даже если это не всегда то, что было задумано.
                        Осторожно, тяжелые красивые картинки
                        • +73
                        • 13,2k
                        • 6
                      • В подходе к математике столетней давности найдены новые ключи к разгадке природы времени

                        • Перевод

                        Из законов физики следует, что течение времени – всего лишь иллюзия. Чтобы избежать такого заключения, нам, возможно, придётся переосмыслить реальность чисел с бесконечной точностью.



                        Если числа нельзя записывать бесконечными последовательностями цифр, то и будущее не предопределено

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

                        К примеру, в теории относительности Эйнштейна время переплетено с тремя измерениями пространства, и формирует гибкий четырёхмерный пространственно-временной континуум – "блок-вселенную", охватывающую прошлое, настоящее и будущее. Уравнения Эйнштейна описывают всё в блок-вселенной, как предрешённое с самого начала; изначальные условия космоса определяют, что будет дальше, и никаких сюрпризов не происходит – они только кажутся сюрпризами. «Для нас, верящих в физику, — писал Эйнштейн в 1955, за несколько недель до смерти, — различие между прошлым, настоящим и будущим является лишь упорной и настойчивой иллюзией».
                        Читать дальше →
                      • Сознание и тезис Макса Фрая

                          КДПВ


                          С древних времен считалось, что в феномене сознания есть что-то непонятное. Что-то непостижимое. Считалось, что сознание есть проявление нематериального, привнесенного высшими силами. Если для мифологического мировосприятия такой порядок вещей естественен, то со сменой парадигм и зарождением естествознания феномен сознания потребовал объяснения.

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