Задать вопрос
  • Как обеспечить безопасность “Умного дома”?

    Godless
    @Godless
    Вопрос тянет на отдельную книгу, как мне кажется. Но поскольку деталей нет, общие принципы примерно следующие:

    1. Изолированная локалка, если используется. Отсутствие радио каналов (любых, вифи, 433 и тп). Если уж ну ваще никак, предусматривайте ситуацию, что канала нет, или данные по каналу приходят поддельные, в т.ч. со злым умыслом.
    2. Если прямо необходимо чтоб железки что-то тянули с интернета - к примеру, дополнительный linux шлюз, разрешающий только то что надо. Вариации с прямым доступом из тырнета в железо отметайте сразу.
    3. Шифруйте данные по сети. Не используйте слабые шифры.
    4. Не используйте простые пароли (да, 2018 год).
    5. Правильно конфигурируйте службы, аккуратно выставляйте доступ к файлам.
    6. Про железную часть не пишу. Но вопрос защиты от перенапряжения, выгорания портов, резервирования функционала и тп тоже относится к безопасности.
    7. Бэкапы и резервирование не должны быть для вас пустым звуком.
    8. [....]
    Ну, думаю направление мыслей понятно.
    Ответ написан
    3 комментария
  • Как лучше всего подружить Mozilla Firefox с групповыми политиками на текущий момент?

    Godless
    @Godless
    Доброго дня.
    Мы используем Wsus Package Publisher в т.ч. и для FF.
    Но решаем проблему только обновлений. Теоретически можно вовремя готовить апдейты и файлы настроек с расширениями.
    Ответ написан
    Комментировать
  • Литература по ассемблеру студент?

    Godless
    @Godless
    3 книги по асму.
    1. как посоветовали в комментах "Питер Абель. Ассемблер и программирование для IBM PC "
      Книга крутая. Но академическая. Дает очень хорошую картинку в голову про связь асма и железа. MUST READ. но покупать можно и не покупать.
    2. Зубков. Assembler. Для DOS, Windows и Unix. КУПИТЬ. Это мало того что учебник с азов, дык там справочник по инструкциям. Прям кодишь и читаешь справку - пока в памяти нет понимания разницы между movsb и movsd или jnc и jne.
    3. В. Н. Пильщиков Программирование на языке ассемблера IBM PС
      Эту книгу я прочитал первой за несколько дней, она дала абстрактное понимание асма - как высокоуровневые конструкции (условия, циклы, процедуры) реализовать на асме. Несмотря на то что это DOS и PASCAL для примеров, в самом начале пути это очень полезно.


    Зубкова у меня еще первое издание, вроде бы последнее 11-е. Но не уверен.
    Ну и да, все это ИМХО конечно.
    Ответ написан
    Комментировать
  • Как заблокировать определенный пул урлов в nginx?

    Godless
    @Godless
    location ~ ^/test/
    вроде так. почитайте про локейшины в доках. там не всегда очевидно какой локейшин в итоге будет использоваться. Есть приоритеты у них и важен порядок в конфиге.
    Ответ написан
    Комментировать
  • Какой почтовый сервер выбрать?

    Godless
    @Godless
    Плюсую за iredmail

    вот скрипт для управления алиасами (с новой структурой). остальное - или конфиги или в ящике правила пересылки. Домен на работе около 150 юзеров с тонной псевдонимов и пересылок. И личный инсталл. Но там скромно. Не забудьте про SPF,DKIM,DMARC. Если надо, поделюсь скриптами для архива.

    aliases.sh
    #!/bin/bash
    
    
    USER=xxxxxxxxxxx
    PASSWORD="xxxxxxxxxxxxxxxxxxxxxx"
    DATABASE=xxxxxxxxxxx
    CONNECTION="postgresql://$USER:$PASSWORD@localhost:5432/$DATABASE?sslmode=require"
    
    DOMAIN="example.com"
    
    function usage() {
    
        cat  << EOF
    This script is used for alias managment for postfix with PostgreSQL installation                                                        .
    
    Usage: aliases <command>
    Commands:
    list
            output all aliases
    
    all
            output all aliases and emails without aliases
    
    add <valid email> <alias>
            add new alias <alias> for email <valid email>
    
    remove <valid email> <alias> [--force]
            remove alias <alias> for email <valid email>
    
    find <something>
            shows all email and aliases contains text <something>
    check
            shows all broken aliases.
    EOF
    }
    
    function error() {
        echo "Error: $1"
        exit
    }
    
    function check_email_exists() {
    
        if [ -n "$1" ]; then
            local RES=$(psql -q -n -t ${CONNECTION} -c "select count(*) from forwardings where address='$1' and forwarding=address and is_alias=0") #" MC Parser FIX
            echo $RES | tr -d "\r\n\t "
        else
            echo 0
        fi;
    }
    
    function check_alias_exists() {
    
        if [ -z "$1"  -o  -z "$2" ]; then
            echo 0
        else
            local RES=$(psql -q -n -t ${CONNECTION} -c "select count(*) from forwardings where address='$2' and forwarding='$1' and is_alias=1") #" MC Parser FIX
            echo $RES | tr -d "\r\n\t "
        fi;
    }
    
    function run_sql() {
        psql -1 -q -n $2 ${CONNECTION} -c "$1"
    }
    
    CMD=$1
    EMAIL=$2
    ALIAS=$3
    FORCE=$4
    
        case "x$CMD" in
        "xall")
                run_sql "select address \"virtual email\",forwarding \"original email\",is_alias from forwardings"
                exit
            ;;
    
        "xlist")
                run_sql "select address \"virtual email\",forwarding \"original email\" from forwardings where is_alias = 1"
                exit
            ;;
        "xcheck")
                run_sql "select a.address \"virtual email\",a.forwarding \"original email\",a.is_alias from forwardings a left join forwardings b on a.forwarding=b.address where b.forwarding is null"
                exit
            ;;
        "xfind")
                EMAIL=$(echo ${EMAIL} | tr -d '\"\r\n\t\a\%\$\!\\\/\^\&\*{}[]#()~') # ' MC PARSER FIX
                echo "Searchong for '${EMAIL}'"
                run_sql "select address \"virtual email\",forwarding \"original email\", is_alias from forwardings where address like '%${EMAIL}%' or forwarding like '%${EMAIL}%'" "-t"
                exit
            ;;
    
        "xadd")
                if [ "$EMAIL" == "$ALIAS" ]; then
                    error "email and alias can't be equal!"
                fi;
    
                if [ "$(check_email_exists "$EMAIL")" == "0" ]; then
                    error "email '$EMAIL' doesn't exists! Try lowercase."
                fi;
    
                if [ "$(check_alias_exists "$EMAIL" "$ALIAS")" !=  "0" ]; then
                    error "alias '$ALIAS' for email '$EMAIL' already exists!"
                fi;
    
                run_sql "INSERT INTO forwardings (address, forwarding, domain, is_alias,active) VALUES ('$ALIAS', '$EMAIL', '$DOMAIN', 1,1);" "-t"
                exit
            ;;
    
        "xremove")
                if [ "$(check_email_exists "$EMAIL")" == "0" ]; then
                    if [ "$FORCE" != "--force" ]; then
                        error "email '$EMAIL' doesn't exists! Try lowercase."
                    fi;
                fi;
    
                if [ "$(check_alias_exists "$EMAIL" "$ALIAS")" ==  "0" ]; then
                    error "alias '$ALIAS' for email '$EMAIL' doesn't exists!"
                fi;
    
                if [ "$EMAIL" == "$ALIAS" ]; then
                    error "email and alias can't be equal!"
                fi;
    
                run_sql "delete from forwardings where address ='$ALIAS' and forwarding='$EMAIL' and is_alias=1;" "-t"
                exit
            ;;
    
        *)
            usage
            exit
            ;;
        esac;
    Ответ написан
    Комментировать
  • Ingress не видно XM. Встречался кто?

    Godless
    @Godless Автор вопроса
    косяк был в самом игрессе на некоторых чипах. Исправлено примерно через полгода после публикации вопроса.
    Ответ написан
    Комментировать
  • Owlcarousel. Адаптивная разметка для картинок разного размера. Как?

    Godless
    @Godless Автор вопроса
    Fixed: height у контейнера и куча
    @media (min/max-width: блабла)

    ЗЫ: это была бутстраповская карусель, а не owl. Код остался видимо от тестов и частично от второй карусели на странице.
    Ответ написан
    Комментировать
  • Какие существуют решения для автоматизации обновлений НЕ_майкросовтовских приложений для среды Windows?

    Godless
    @Godless
    Wsus Package Publisher
    Не прям идеально, но работает. Сертификат распространять через политику в АД. Использует всус как транспорт.

    Chrome, IE, Java, Flash, Acrobat Reader; для серверов (Windows Server 2008) - Framework .NET, Apache, SQL, Tomcat, JBoss.

    IE, .NET, MSSQL - это во всусе.
    Ответ написан
    1 комментарий
  • Веб сервер дома?

    Godless
    @Godless
    Я так понимаю раз это стартап, то финансы нужны и в других местах.
    Проблемы собственного хостинга две - пропадающий интернет и пропадающее электричество.
    У хостеров тоже бывают даунтаймы по разным причинам.
    Так что разворачивайте дома, берегите от влаги, детей и животных. Не забывайте про бэкапы!
    Потратить деньги на хостинг всегда успеете.
    Ответ написан
    Комментировать
  • Почему субдомены всех сайтов на сервере перенаправляют на один сайт на том же сервере?

    Godless
    @Godless
    *.bbb.ru - это синоним для всех поддоменов явно не указаных в DNS.
    + смотрите конфиги, вебсерверов. Там внимательно на дефолтсервер и какие вообще поддомены прописаны на серверах.
    В некоторых случаях удобно в самом вебсервере указать
    server_name example.org *.example.org;
    что значит сам домен и все его домены 3го уровня
    Ответ написан
    Комментировать
  • Как пробросить домен на виртуальную машину в Windows Server 2012 R2?

    Godless
    @Godless
    Если уж прям так надо в виртуалку новый домен (DNS + AD) + проброс портов, сделайте в виртуалке другой IP, без NATа. И будет вам как-будто 2 сервака рядом стоят. + масштабируемо и легко переносимо
    Ответ написан
    Комментировать
  • Как лучше всего шифровать пароли для сохранения в БД?

    Godless
    @Godless
    В каждом случае свое. Смысл в том, чтоб не могли получить пароль, зная то, что в бд.
    Я думаю, что соль + шифрование по RSA с хэшем вас спасет. Ключи RSA ессно хранить бережно...
    Ответ написан
  • Как можно преобразовать число из 3 байт в число из 2 байт?

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

    Но в порядке альтернативного секса в голову, давайте покумекаем.

    1. Если вы запишите в строку все биты 3х байтового числа, то получите последовательность нулей и единиц. Можно попробовать сжать эту строку например zlib.compress в памяти, отрезать стандартный двухбайтовый заголовок и посмотреть на то что получилось. Если влезет в 2 байта - то да. Обратное преобразование такое - добавляем заголовок zlib, делаем zlib.decompress и переводим в байты.
      Тыдыщщщ, а если сжатая строка не влазит - то ничего не получится.
      Не взлетит. ;-)
    2. Еще вариант, когда есть какие-то известные ограничения на серийные номера. Например, вы знаете, что они все в диапазоне 1000 - 66000. Тогда да =) влезет в 2 байта. Даже если диапазонов несколько, главное чтобы количество значений было не больше 2^16.

    В остальных случаях - i'm sorry, be happy.

    ЗЫ: тему сжатия можно раскрутить, придумав многопроходные схемы, типо сначала начальный бит, потом бит разницы со следующим, а потом к этой строке сжатие, сразу сжатие бит по Хаффману с какой-нить популярной таблицей (готовой ибо передавать таблицу вам негде); попробовать арифметическое кодирование к битам с длиной.
    Но все это дурь космическая - найдите место для байта. ;-)

    Это кажется про Вас =) : Повесть об одном байте
    Другой линк
    Ответ написан
    1 комментарий
  • Почему программы считают по разному?

    Godless
    @Godless
    есть подозрение на ошибки округления, мб накапливаемые, и мб где-то компилятор заоптимизировался...
    я хз можно ли в фортране это сделать, но нопробуйте увеличить разрядность десятичных переменных.
    ну т.е. если был float, сделать double.
    Еще результаты старой компиляции были получены на том же ПК ? аппаратная часть не менялась?
    Ответ написан
    3 комментария
  • Как учиться новому после рабочего дня?

    Godless
    @Godless
    Не удежусь и тоже вставлю свое словцо. Рискую местами побыть кЭпом, но вы же просили мнение... а в двух словах вон и ADollar сказал неплохо.

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

    Мы потихоньку пришли к тому, что важным ресурсом в нашей жизни является время. Я так подозреваю, что у вас семьи и детей пока нет, а значит вы сами вольны распоряжаться каждой своей минутой. ДЕЛАЙТЕ ВСЕ ЧТО МОЖЕТЕ. ВООБЩЕ ВСЕ.

    Спорт или любое увлечение с физическими нагрузками. Походы, рыбалки, DozoR, Encounter - это необходимая часть для поддержания тела. Я не врач, но жизнь без физнагрузок - это плохо.
    Не проводите 18 часов в сутках за компом или экраном монитора. Причина - у вас работа связанная с ПК. Неразрывно. Если вы будете много проводить за мониторами, то как бы вам это не нравилось - это надоест через полгода, год, два. В зависимости от вашего терпения.

    Читайте статьи, книги, общайтесь с коллегами. Дело в том, что без структурированной теории в голове сложно грамотно строить рассуждения, речь и, самое главное, практику.

    ДЕЛАЙТЕ. Найдите хобби. Умный дом. Просто какая-то электроника. Программирование под линукс. Написание драйверов. И под линукс тоже.
    Или поставьте цель - хочу сайт, хочу приложуху для автомобиля, чтоб по китайскому OBD адаптеру в бортовом ПК сбрасывать ошибки. Выше тоже варианты предлагали. Вообще не важно с чего вы начнете. Пусть это будет мелочь, но ЗАКОНЧИТЕ ее. Не стесняйтесь повторять. Т.е. взяли какую-то прогу, и пишем ее клон. Старайтесь выбирать вещи, которые вам интересны. К примеру, любите бегать - попробуйте сделать небольшой блютуз пульсометр. Любите рыбалку - сделайте прогу, усредняющую прогноз по координатам из разных источников. выбирайте интересные и полезные идеи.

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

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

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

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

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

    И помните про время. Оглянуться не успеете, как сын в школу пошел... Или дочь в универ...

    ЗЫ: А вот когда появится семья и дети, квартира и ремонт, вот тогда вы поймете, что времени действительно нет =)

    ЗЫЫ: А и да, Welcome to real life ;-)
    Ответ написан
    Комментировать
  • Правильно ли подсчитано вес кода в ассемблере?

    Godless
    @Godless
    Вес - размер я так понял? схема обычно такая всегда:
    start:
               int 3
               nop
               xor eax,eax
               call [eax]
    end:
               mov eax,(end - start)


    И в отладчике смотрите сколько там в регистре =)
    А то разные компиллеры разный код генерят из-за оптимизаций и тп.
    Ответ написан
    6 комментариев
  • Как правильно расположить вентиляторы в корпусе?

    Godless
    @Godless
    Нарисуйте воздушные потоки на бумаге и места нагрева. Поставьте вентилятор на вдув.
    Основной смысл правильного охлаждения внутри корпуса - вентиляционная труба, чтобы воздух проходил сквозь корпус как можно быстрее. Очевидно добавится шума, может быть понизить слегка обороты, ну и резиновые подложки хоть и не панацея, но станет лучше.
    Ответ написан
    1 комментарий
  • Как настроить DNS для работы Postfix и пр.?

    Godless
    @Godless
    ваш bind будет основным NS для доменов? В чем собственно проблема?

    dimain1.com :
    A mail.domain1.com
    MX mail.domain1.com 10

    dimain2.com :
    A mail.domain2.com
    MX mail.domain2.com 10

    не забудьте про SPF и DKIM

    UPD:
    это все были символические записи, означающие что для работы почты для домена нужно в его зоне иметь MX запись, указывающую на какой-то сервер. Это может быть A запись или сразу IP, я предпочитаю A запись. И собственно сама A запись указывающая на ваш сервер (его внешний IP адрес).
    пример
    Пример DKIM
    кусок конфига зоны в bind
    @             IN  MX  10 mail.domain1.com.
    mail.domain1.com.    IN  A      1.1.1.1
    @             IN TXT "v=spf1 +mx -all"
    _domainkey.domain1.com. IN TXT "o=~; r=postmaster@domain1.com"
    SELECTOR._domainkey.domain1.com. IN TXT "v=DKIM1; p=YOURKEYHERE;"

    Wiki DKIM
    Wiki SPF
    + аналогично со вторым доменом, можно тот же IP указывать
    Ответ написан
  • Как распоковать vhd с линуксом на жесткий диск? Какой софт использовать?

    Godless
    @Godless
    вы просто данные хотите потрогать? винда не умеет ext* файловые системы.
    Просто данные можно потрогать подключив vhd в диспетчере дисков, но он будет как черный ящик для винды ибо для ФС нет драйверов.
    Если вы хотите перенести виртуальную машину на физический ПК - то это другая задача, гуглите. например вот.
    Можете еще подсунуть физический диск в hyper-v, подключить его в саму виртуальную машину и сделать там dd с одного диска на другой.
    UPD:
    Как справедливо заметили есть драйвер для ext* систем для Windows. ext2fsd
    Ответ написан
  • Как генерировать json на php?

    Godless
    @Godless
    создаете массив с парами ключ - значение
    $array["somekey"] = "some value";

    хоть в цикле хоть где. Если нужно подраздел в json'е, то делаете вложенный массив.
    Ну и потом
    echo json_encode($array);
    Ответ написан
    Комментировать