• Некоторые простые вещи, которые мигрируют из проекта в проект

    Введение


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


    Вот например некоторые мои вспомогательные классы (код на C#). Все они когда-то были найдены в интернете, скопированы у коллег или написаны мной (я уже не помню). Могут содержать в себе ошибки.


    Потокобезопасный Random


    В C# класс Random не является потокобезопасным, но чтобы при генерации случайного числа из разных потоков в небольшом отрезке времени не получить одинаковое значение, переменную типа Random необходимо хранить статически. Решение этой проблемы может быть класс ThreadSafeRandom:

    Читать дальше →
  • Отправка голосовых сообщение с помощью vk api

    Всем здравствуйте. Сегодня я попытаюсь как я реализовывал отправку голосовых сообщений в Python с помощью библиотеки vk_api. Взял идею отсюда.

    План


    1. Входим в аккаунт.
    2. Получаем ссылку(url1), на которую будем загружать аудио файл.
    3. Переводим текст в аудио файл (gtts module).
    4. Загружаем файл на url1.
    5. Получаем документ, которой отправим с помощью метода messages.send.

    Config.py


    Для удобства я использую отдельный файл с «конифгом».

    LOGIN = '' # логин от VK
    PASSWORD = '' # пароль от VK
    LANG = '' # Язык, на котором будут голосовые сообщения ru,en, etc.
    

    Приступим к самому коду
    Читать дальше →
  • Экспорт векторов из Sketch App в SVG, проблемы с кодом SVG и отображением иконок в IcoMoon

    Передо мной стояла задача сделать иконочный шрифт из векторов, сделанных в Sketch App, и сгенерировать шрифт на IcoMoon.

    Для этого нужно экспортировать векторные иконки из Sketch App в SVG и добавить их в Iconmoon. Но что-то пошло не так, некоторые иконки имели неожиданный вид.

    image Это то, как отобразил мой SVG IcoMoon.
    image А это то, на что я рассчитывала, глядя в Sketch.

    Читать дальше →
  • Как подключить Яндекс Кассу и преуспеть в конверсии

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


    Читать дальше →
  • Ключевое слово «volatile» C/C++

    Volatile — ключевое слово языков C/C++, которое информирует компилятор о том, что значение переменной может меняться из вне и что компилятор не будет оптимизировать эту переменную. Примерно такое описание volatile я встречал во многих книгах и туториалах, и каждый раз мне не удавалось понять что же хотел сказать автор. На понимание этого я потратил n-ое количество времени, и вот специально для этого, чтобы упростить жизнь новичкам в понимании этого аспекта, решил написать как раз таки эту статью.
    Читать дальше →
  • Полноценный USB выход на D-link dir-320 A1 на Tomato

    Доброго времени суток всем!

    В этой статье хочу помочь владельцам достаточно популярного, но уже морально устаревшего D-link dir-320 ревизии A1 разобраться как заставить нормально работать USB в роли файлового сервера, т.к. в интернете я не нашел внятной информации как это сделать, и пришлось собирать пазл по кусочкам.

    И так, роутер имеет на себе usb выход, НО… производитель решил, что использовать его нужно только для принт-сервера и не более того. В web интерфейсе родной прошивки можно выбрать только «Настройки принтера». Обновление прошивки ничего не дает.

    Т.к. USB выход есть и он может делать, что либо еще кроме выдачи 5 В, то соответственно проблема только одна и это прошивка. Было решено менять.

    Начнем по порядку, имелся роутер ASUS RT-N12VP без USB выхода, а так же старенький D-link dir-320 A1, цель была следующая, объединить два роутера в одну сеть и иметь сетевой диск.

    Первый подводный камень «сменить прошивку на dd-wrt»

    Читать дальше →
  • Написание декоратора при использовании django-export-import

    Привет, Хабр! Меня зовут Павел Цвилюк, начинающий Python Developer. В ходе работы над одним из проектов я столкнулся с проблемой подключения поискового поля и выгрузки отчётов в exel в административной панели. Их необходимо было регистрировать вместе с моим классом User:

    models.py
    class User(models.Model):
        name=models.CharField(max_length=200)
        surname=models.CharField(max_length=200)
        email=models.EmailField()
        password=models.CharField(max_length=200)
        telephone=models.PositiveIntegerField(max_length=12,blank=True,null=True)

    Так выглядел мой код, когда я попытался изначально зарегистрировать их:

    admin.py
    from django.contrib import admin
    from .models import User
    from import_export import resources
    from import_export.admin import ImportExportModelAdmin
    
    class UsersAdmin(admin.ModelAdmin):
        search_fields = ('name', 'email', 'telephone')
    
    class UsersResource(resources.ModelResource):
        class Meta:
            model = User
            skip_unchanged = True
            fields = ('id', 'name', 'email', 'telephone')
    
    class UserAdmin(ImportExportModelAdmin):
            resource_class = UsersResource
    
    admin.site.register(User, UsersAdmin, UsersAdmin)

    Запустив вышеописанный код я получил следующее:
    admin.site.register(User, UsersAdmin, UserAdmin)
    TypeError: register() takes from 2 to 3 positional arguments but 4 were given
    Читать дальше →
  • Что такое ExecutorService?

    Честно говоря, вопрос этот не слишком новый. Со времени выхода Java 5 и пакета java.util.concurrent.* прошло более 13 лет, но мне, за всю мою десятилетнюю практику, так ни разу и не пришлось столкнуться с этим зверем. Тем не менее, мне этот вопрос несколько раз задавали на собеседованиях и пришлось знакомиться.
    Читать дальше →
  • Выкачиваем фотографии из каждого диалога ВК средствами API

    Иногда бывает полезно выгрузить все фотографии из диалога ВКонтакте, руками это не сделать не просто, поэтому обратимся к API.

    В документации присутствует метод messages.getHistoryAttachments — он нам и нужен. Возвращать он может не только фотографии, но и другого рода документы: аудио, видео и т.д. Но в этом примере будем рассматривать только фотографии.
    Читать дальше →
  • bash редактируем приветствия сервера Linux

    Редактируем стандартное приветствия Linux/Bash


    2018_02_05_16_50_16

    1. Установим дополнительные пакеты «figlet»

    sudo apt-get install figlet -y  

    переходим в каталог суперпользователя…

    cd /root/ 

    Редактируем файл .bashrc
    (добавим дополнения в низ после #fi)

    nano .bashrc
    Читать дальше →
  • Динамический импорт в JavaScript

    В начале прошлого года было предложено ввести в JavaScript возможность динамического импорта. Если кто не знает, то сейчас в JavaScript нативно поддерживается только статическая импортизация и для этого есть причины, но это тема отдельного разговора. Предложение было реализовано и включено в список ближайшего обновления ECMAScript. Google Chrome с 63 версии уже поддерживает эту возможность. Я немного расскажу что это такое и где это может пригодиться.

    Читать дальше →
  • Размышления на тему карьеры в IT и советы начинающим

    Привет, Хабр! Я тут недавно много думал насчёт карьеры, будущего нашей индустрии и так далее. Решил написать статью для тех кто только собирается сюда въезжать, да и вообще возможно кому-то будет интересно, все нижеприведенное чисто мое имхо и многое из того что я скажу применимо к другим сферам, а примерно половина из этого еще и кэпство, но давайте начнем.

    1. Первое что вам нужно знать: многие программисты воспринимают себя как латентные миллионеры, это в корне неправильный подход. Не идите сюда за огромными суммами денег, век стартапов прошел, а отдельно взятый программист мало чего стоит. 95% разработчиков это ресурс, который ничего не решает, он приносит прибыль путем перепродажи его человеко-часов, сливки вашего труда снимать будете не вы, как и во многих профессиях.
    2. Зарплата it-шника всегда имеет потолок, выше которой 99% не прыгнут, они не станут евангелистами, звёздами и прочими техническими директорами.

    Читать дальше →
  • Для чего я создавал программу Компьютерщик

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

    image
    Читать дальше →
  • Методы, используемые полицией, чтобы поймать торговцев наркотиками в DarkNet’е

    Новое исследование на рынках теневых интернет-сайтов для незаконных товарооборотов наркотиков, выявило некоторые способы использования правоохранительными органами ловушек для онлайн-торговцев наркотиками.
    Читать дальше →
  • Методы анализа трафика как основа проектирования IDS

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

    Идентификация и распознавание воздействия на сети связи на основании анализа циркулирующего в них трафика происходит на основе использования ряда методов выявления аномалий:

    • Трендовый анализ
    • Корреляционный анализ
    • Методы на основе вейвлет-анализа
    • Методы классификаторов с использованием теории нечетких множеств
    • Анализ трафика на основе нейронных сетей
    • Методы фрактального анализа
    • Методы конечных автоматов на основе генетических алгоритмов
    • Методы на основе бионических подходов
    • Гибридные подходы

    Упомянутые методы обнаружения и классификации аномалий и их комбинации используются при проектировании программно-аппаратных комплексов/систем обнаружения вторжений. Различают несколько типов IDs в зависимости от типа используемого сенсора, его расположения и методов подсистемы анализа.
    Читать дальше →
  • Мониторинг истечения срока SSL-сертификатов сайтов

    Мониторинг истечения срока SSL-сертификатов сайтов


    image

    Скрипт будет работать на системе Ubuntu 16.04 + Apache 2.4.18. И будет мониторинг окончания действия годности сертификатов двух сайтов SSL. К примеру, мониторинг сайта
    habrahabr.ru и www.google.ru.

    Очень удобное и быстрое решения за 1 минуту.

    Действия №1


    Для начала создам скрипт на тестовом сервере в корне пользователя

    Скопируем и сохраним скрипт внизу будет описания…
    nano /home/aa/ssl.sh

    echo "<hr>" &&
    echo "<center><strong><H1>"Монитор истечения срока SSL-сертификата "</H1></center></strong>" 
    echo "<hr>" &&
    echo "<p><font size="5" color="red" face="Arial">habrahabr.ru</font></p>"&&
    echo habrahabr.ru  &&  echo  | openssl s_client -connect habrahabr.ru:443 2>/dev/null | openssl x509 -enddate -noout | cu\t -d '=' -f2 | xargs -I{} date -d "{}" '+%F %T' 
    echo "<p>"&& 
    echo "<hr>"
    echo "<p><font size="5" color="red" face="Arial">www.google.ru</font></p>"&&
    echo www.google.ru && echo "<strong>"  | openssl s_client -connect www.google.ru:443 2>/dev/null | openssl x509 -enddate -noout | cu\t -d '=' -f2 | xargs -I{} date -d "{}" '+%F %T'  
    echo "<title>SSL</title>" 
    echo "<hr>" 
    echo "<meta http-equiv="Refresh" content="10" />"
    date 

    Читать дальше →
  • Возможные неопределенности в карьере программиста

    Здравствуй, Хабр!

    Давно собирался написать данную статью, но, как и, возможно, у многих, не хватало времени это сделать. Речь пойдет об одном «программисте», не скажу, что прям обо мне который пытается развиваться как профессионал, и строить свою карьеру в IT-сфере. Пусть, условно, его будем звать Ваней. Но, обо всем по порядку.
    Читать дальше →
  • Dynamic text или как создать полезную утилиту в 60 строк кода

    Доброго времени суток!


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


    Итак, утилита принимает текст, заменяет ключевые слова (bash) и выводит новый текст. все очень просто.


    Примеры использования:


    cat yourfile.dxt | dxt

    echo "currend date: $(date)" | dxt

    image

    Читать дальше →
  • Как я Evrial ломал

    Недавно на руки мне попал новый образец, ставшего в последнее время популярным, Evrial.

    О трояне
    Evrial Project — MaaS (Malware as a service) троян с функционалом клиппера (подмена буфера обмена) и стиллера паролей/файлов

    Сам файл файл является .NET-приложением, которое, к слову, ничем не накрыто в отличие от предыдущих версий.


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