• Держись от меня подальше или как дружба на работе может навредить самой работе

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

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

    Через какое-то время я заметила, что что-то изменилось, а именно: атмосфера стала какая-то слишком расслабленная, мы работали, но все было как-то странно. Мы стали слишком дружны. Вот тут я задумалась. Казалось бы, что в дружеских отношениях на работе плохого? А вот что:
    Читать дальше →
  • Еще одна статья о DI в Spring Boot


    Как сказал один мудрец: вечно смотреть можно на три вещи: как течет вода, как горит огонь и как кто-то пишет очередную стать о DI в Spring Boot. Сегодня я сделаю попытку коротко описать всю эту петрушку.
    Читать дальше →
  • Ограничение приложениям доступа к файлам

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

    Известно, что в UNIX-подобных ОС (да и в Windows) любая программа, запущенная пользователем, наследует все права пользователя. По-умолчанию, нет ничего, что помешало бы любой запущенной нами программе удалить или передать кому-то наши приватные файлы. Да мы такой активности и не заметим.

    Существует множество способов ограничить права недоверенным программам: запуск от имени другого пользователя; песочницы; виртуальные машины; SELinux итп.

    Взглянем на концепцию domain transition в SELinux. Не вдаваясь в подробности, это работает как-то так:

    1. В SELinux существуют «домены», которые могут накладывать на программы дополнительные ограничения (в добавок к стандартным).
    2. Изначально пользователь работает в доверенном домене (назовем его «A»). Любая программа, запущенная пользователем, наследует домен и имеет доступ к приватным файлам пользователя.
    3. Пользователь может создать ограниченный домен («B») и запретить ему доступ к приватным файлам.
    4. Пользователь может указать следующее: «Если доверенный домен A запускает программу, помеченную такой-то меткой, то я хочу, чтоб эта программа работала в домене B, а не наследовала домен A».

    Круто ведь? Если мы не доверяем, скажем, приложению «Skype», то можем ограничить его в правах аж так, чтоб он вообще не имел доступа ни к чему, что не является критически необходимым для его работы. Вот только создание такой политики лично у меня занимало часы. И я хотел иного.
    Читать дальше →
  • Подключение 2 HTC Vive к одному компьютеру. Пошаговая инструкция



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

    Данный способ скорее всего сработает и под другие VR гарнитуры, такие как Oculus или WMR, однако тестировалось всё на Vive.

    Данный способ также сработает под 3 и более гарнитуры, если характеристики железа будут позволять.
    Читать дальше →
  • Книга Growth Handbook теперь доступна на русском языке для свободного скачивания

    image

    Если Ваш бизнес не растет, все остальное не имеет значения. Это вечная проблема, с которой сталкиваются компании на всех этапах своего развития. В конце 2017 года мы начали думать о создании серии подкастов, посвященных теме роста. Основной посыл был очень простым: мы хотели взять интервью у людей, которые создали маркетинговую функцию роста в некоторых из наиболее успешных компаний-разработчиков программного обеспечения нашего поколения.
    Читать дальше →
  • Универсальный RestFull API для СУБД на nodeJS

    Проблематика: Есть сервер с СУБД, например MySQL. Для управления данными в таблицах необходимо реализовать полный RestFull API интерфейс на nodeJS для каждой таблицы:

    • POST — новая запись
    • PUT — редактировать запись с конкретным id
    • GET — получить все записи
    • GET — получить запись с конкретным id
    • DELETE — удалить запись с конкретным id

    Очень много рутины и кода.

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

    Решение: Все указанные типы в JS конвертируются через строку. Шаблон единого Post запроса будет иметь вид — /table/: Имя таблицы/action/: Тип запроса.

    Тип запроса — POST,PUT,GET,DELETE.
    Читать дальше →
  • Матрица ролей из AD при помощи PowerShell

    В определенный момент времени у многих ИТ (или ИБ) специалистов возникает потребность в том, чтобы получить матрицу доступов (ролей) к информационным системам (далее — ИС) своей Компании. Часто для управления доступом к ИС и интеграции ИС с AD создается отдельная группа для ИС, потом еще группы, которые вкладываются в предыдущую группу (например, Read/Write), а в эти группы уже вносятся пользователи, которым и нужен доступ к ИС. В итоге получается «сложное» дерево со множеством вложений.

    Моей задачей было вывести в удобочитаемый вид информацию о том, какая группа является материнской (первичной для ИС либо ресурса), какие группы в нее входят и кто является членами этой группы.
    Читать дальше →
  • Нескучный способ тренироваться быстрой слепой печати

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

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

    Не секрет, что разработка программного обеспечения является дорогим процессом. Новые технические инструменты помогают достичь быстрых, дешевых и эффективных результатов в бизнесе. Чем больше дохода приносит предприятие, тем больше вы задумываетесь о инвестициях в программное обеспечение. ПО же в свою очередь может иметь скрытые дефекты, которые могут принести вред компании.
    Читать дальше →
  • Live guide по созданию приложения на Java

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

    Примерно в это же время у меня возникла идея создать свое приложение для организации своего времени: условный прототип ежедневника. Да, довольно простенькая идея, но все же. Тогда у меня так и не дошли руки до написания программы. Зато дошли сейчас.

    Так вот. Для написания этого самого приложения я решил изучить язык Java. Несмотря на то, что у меня к нему есть некое предубеждение (когда-то давно я начинал его учить и мне показалось, что в нем слишком длинные и непонятные названия методов, да и вообще все сложно), потребность в кроссплатформенности (почему бы приложение не запускать еще и на ПК без лишних приседаний?) вернула меня на путь изучения Java.

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

    С чего начать?


    Читать дальше →
  • Подключение к локальной виртуальной машине Linux по SSH или как решить задачу о двух стульях ничьей

    Думаю, у многих, прочитавших заголовок возникнет справедливый вопрос: «Зачем такое извращение?» На самом деле, у этого занятия есть определённый круг применений. Самое очевидное из них — это необходимость в пользовании для учёбы или работы одной операционной системой, в то время как вам больше нравится другая.

    Некоторые воскликнут: «Но ведь можно поставить две системы в DualBoot или виртуальную машину, с которой можно общаться напрямую!» К сожалению, ни один из этих трёх способов не является панацеей. При использовании первого приходится постоянно скакать между системами, а также он доступен не на всех устройствах (на моём MacBook Pro 2017-ого года поставить нативно Linux — весьма неприятное занятие). Второй также требует работы с двумя разными системами, что может сильно ударить по чувству перфекционизма, а также требует весьма больших мощностей для использования средств по сглаживанию разницы между ними. Про третий же сейчас чуть подробнее расскажу.
    Читать дальше →
  • Subdomain Takeover, или как найти заброшенные поддомены

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

    Кому интересно, добро пожаловать под кат.
    Читать дальше →
  • Folium — пример изображения времени работы мировых бирж

    Всем привет!


    Для работы нам потребуется Jupyter Notebook, библиотеки Folium, Pandas и хорошее настроение.


    Мануал для новобранцев по библиотеке Folium смотрим здесь.


    Данные мы возьмем с сайта. Я воспользовался Википедией и нашел координаты всех городов.

    Читать дальше →
  • Jenkins проект для создания пользователей в WordPress c помощью wp-cli

    Задача.
    Создать проект в Jenkins для возможножности создавать пользователей на серверах с WordPress c помощью wp-cli.

    Решение:

    1. Создаем проект в Jenkins с названием «add-wordpress-user»

    image
    2. Добавляем параметры

    String parametr user_email
    String parametr user_password
    Choise parameter brand_name

    Choise paramet

    1-Сылка на бренд
    2-IP адрес где будет исполяться код добавления пользователя
    3-Локальный путь к WordPress
    4-Тип пароля (просто пароль(N) или хеш(Y))

    https://ваш_бренд/wp-admin;111.111.111.111;/var/www/ваш_бренд/public_html;N








    Выбираем от какого пользователя будем выполнять скрипт в проекте.

    Добавляем скрипт:
    Читать дальше →
  • Булка молока, головка хлеба и «Приключения Тома Сойера»

    У нас была булка молока, головка хлеба и «Приключения Тома Сойера», хотя постойте, что-то тут не так… Про того самого Тома Сойера, который плыл по Миссисипи и приплыл к 2020 году, но реку перегородила платина с вывеской "Минкомсвязь" и «Запретить». О том что происходит в гос. сферах, но почему-то об этом молчат товарищи из отдела информационных технологий.

    Я не сторонница пассивной позиции: "пока работает не трогай, а если не работает, поставь костыль что бы работало". Половина рабочих станций устарела по техническим параметрам, были "усталые, но непобежденные" железки. Однако на пороге 2019 год, и новое законодательство.
    Читать дальше →
  • Netplan и как его правильно приготовить

    Ubuntu потрясающая операционная система, давно не работал с Ubuntu server а обновлять свой Desktop со стабильной версии не было смысла. И вот не давно пришлось столкнутся со свеженьким релизом Ubuntu server 18.04, моему удивлению не было предела, когда я понял что я бесконечно отстал от жизни и не могу настроить сеть т.к старая добрая система настройки сетевых интерфейсов по средствам редактирования файла /etc/network/interfaces канула в лепту. А что же пришло ей на смену? что то ужасное и на первый взгляд совершенно не понятное, встречайте «Netplan».

    Читать дальше →
  • Asterisk на Mikrotik. Обновленная настройка

    На написание этой заметки (статьей не назовешь, ибо все уже давно разжевано в статье Asterisk на Mikrotik) меня толкнули изменения в интерфейсе Winbox, а так же изменения репозиториев OpenWRT в связи с помещением в архив устаревших версий, на которые ссылается оригинальный пост. Начну с истории: у меня на работе имеется виртуальная АТС, на которую я без стеснения привязал SIP-клиент на телефоне. По правилам провайдера доступ для внутренних звонков не блокируется, но доступ наружу, хоть и можно подключаться с любой точки мира, блокируется при частой смене IP, чего избежать на мобильном устройстве проблематично. Пересмотрев всевозможные варианты я остановился на поднятии у себя дома Asterisk на моем Mikrotik RB2011UiAS-RM. Благодаря инструкции от shadowalone я миновал львиную долю танцев с бубном, но в связи с устаревшими ссылками пришлось-таки заняться мелким шаманством. Итак:
    Читать дальше →
  • PythonSnake

    PythonSnake — Web FrameWork написанный на python, на котором можно легко создать веб страницу

    Скачать его можно здесь

    Также потребуется сам python.

    Скачать его можно здесь

    ККак использовать PS.

    PS — имеет файл, config. Config — нужен для настройки вашего проекта.

    Как запустить файл main.py


    Чтобы запустить файл, в поиске напишите cmd. Далее с помощью команды cd перейдите в папку с файлом main.py и пропишите данную строку: python main.py
    Читать дальше →
  • Отладка производительности и ускорение сайтов на Битрикс

    Как увеличить скорость в 10 раз и обслуживать 300 000 посетителей в месяц на дешевом VDS


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

    И так, проект пришел к нам на обслуживание с рядом проблем, одна из которых — страницы каталога сайта открывались в среднем около 5 секунд, а страницы производителей — около 20 секунд.

    Как следствие, падала конверсия, Яндекс периодически «не видел» страницы и даже взаимодействовать с сайтом с целью решения каких-то задач, было проблемно.

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


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