• Как сделать Linux более безопасным?

    @WSGlebKavash
    Если речь идёт о документах с грифом "Секретно", то рекомендую использовать Astra Linux. Там есть множество СЗИ с подробной документацией по использованию.
    Если нужно для простого домашнего пользования, то хватит шифрования диска стандартными методами.
    Ответ написан
    Комментировать
  • Вопрос с собеседования: Есть ли в PHP нативная возможность инициализировать переменную как в функции preg_match()?

    neuotq
    @neuotq
    Прокрастинация
    Вас проверяли на знание того, как передаются переменные в функция в php. Переменные передаются всегда по значению, те передаёте переменную в функцию, туда копируется в новую переменную значение оригинальной.

    С помощью амперсанда & мы можем заставить передавать ссылку на эту же переменную в памяти. И тогда манипуляции с ней внутри функции будут равны манипуляциям вне.

    С объектами не большая путаница происходит, но только из-за того что многие не думают/забывают что хранится в переменной когда создаётся объект. При создании объекта в саму переменную помещается его идентификатор, по которому php и обращается к этому объекту.
    Ну и соответственно при передаче такой переменной в функцию, мы копируем этот идентификатор в новую переменную. Переменная уже другая, независимая от той что была, но идентификатор объекта тот же. Поэтому манипуляции с объектом в функции(обращение к свойствам/методам) отразятся на объекте с этим идентификатором. И со стороны выглядит словно переменная с объектом всегда передаётся по ссылке(словно стоит амперсанд), но это не так. Например внутри функции вы перезапишете переменную(к примеру присвоите null) то оригинальная переменная с объектом не поменяется.

    А вот есть если передать её по ссылке, те с амперсандом, то внутри функции будет переменная со ссылкой на переменную вне, и поэтому не только манипуляции с объектом, но и перетирание переменной в целом повлияет.

    class A {
        public $foo = 1;
    }
    
    //создали переменную
    //в ней хранится id объекта, сам объект где-то в памяти оптимизированно лежит
    $newObj = new A;
    
    //Вывод 1
    echo $newObj->foo;
    
    function foo($obj) {
    	//в obj скопирован id объекта
    	//тк он тот же, то меняется и оригинальный объект
    	$obj->foo = 2;
    	//локальная переменная перетёрся, больше id объекта не хранит
    	//на внешнюю не повлияло
    	$obj = null;
    	
    }
    
    foo($newObj);
    // получили 2
    echo $newObj->foo;
    
    
    function bar(&$obj) {
    	//obj ссылается на тоже место в памяти, что и внешняя переменная с id объета
    	//тк он тот же, то меняется и оригинальный объект (тут логично, тк по ссылке)
    	$obj->foo = 2;
    	//локальная переменная перетёрся, больше id объекта не хранит
    	//внешняя тоже перетрётся
    	$obj = null;
    }
    
    
    bar($newObj);
    //ошибка предупреждение, нельзя читать свойства на null
    echo $newObj->foo;


    Ну и зная всё это, вы можете написать свою простую функцию, по типа прегматча.
    function mySum($a, $b, &$result) {
    	$result = $a + $b;
    }
    //первые два параметра по значению, в третий передаём переменную
    //она тут же инициализируется (как если бы её до этого написать просто $res;)
    // и передаётся её ссылка внутрь функции
    mySum(1,2, $res);
    
    //3
    echo $res;
    Ответ написан
    Комментировать
  • Кто администрирует зону moscow?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Ответ написан
    Комментировать
  • Как лучше копировать файлы с умирающего диска?

    opium
    @opium
    Просто люблю качественно работать
    Нет, если данные важные то только сервисный центр , рекомендую рлаб
    Ответ написан
    Комментировать
  • Что я понимаю неправильно в задачке про кубик?

    @teology
    Всего 11 возможных исходов бросков:
    1-1
    1-2
    1-3
    1-4
    1-5
    1-6 (проигрышный)
    2
    3
    4
    5
    6
    Из них 10 позитивных (выигрышных), 1 отрицательный (проигрышный).
    Вероятность выигрыша 10/11 = 0,91.

    Это на понимание того, что есть "элементарное событие". Извините, 35/36 - это неправильно, так как нету 36 вариантов исходов, ведь после первого броска второй бросок не делается, так как игра останавливается.
    Ответ написан
    8 комментариев
  • Как восстановить данные из немонтирующегося образа NTFS?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Ответ написан
    Комментировать
  • Как восстановить все давно удаленные фото и перенести их на ПК?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Подцепить к компу как хранилище информации и пройтись R.saver-ом.
    Ответ написан
    1 комментарий
  • Как восстановить файл если он удален программой?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Да написали же ведь - R.saver и прочие восстановляторы. Но если Вы комп не выключили сразу - шансы восстановить уменьшаются. Зачем вопросы-то дублировать? Неважно кто и что его удалило.
    Ответ написан
  • Как восстановить файл после удаления из корзины?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Можно попробовать. Остановить тачку немедленно, грузиться с флэшки и с нее же запускать сканеры удаленных файлов. R.saver например - замечательная вещь.
    Ответ написан
    3 комментария
  • Почему полетели стили wordpress?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Плохая привычка править стили напрямую в теме.

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

    https://misha.agency/wordpress/child-themes.html
    Ответ написан
    2 комментария
  • Восстановление жестких дисков. Куда обращаться в Москве?

    opium
    @opium
    Просто люблю качественно работать
    Был в рлабе наблюдал как восстанавливали мой диск, в целом ребята работают на очень достойном уровне
    Ответ написан
    Комментировать
  • Telebot. Как сделать защиту от спама?

    @SashaN69
    Школота
    Закинуть в текстовый хендлер и вот вам защита от спама
    import time as tm
    spams = {}
    msgs = 4 # Messages in
    max = 5 # Seconds
    ban = 300 # Seconds
    def is_spam(user_id):
        try:
            usr = spams[user_id]
            usr["messages"] += 1
        except:
            spams[user_id] = {"next_time": int(tm.time()) + max, "messages": 1, "banned": 0}
            usr = spams[user_id]
        if usr["banned"] >= int(tm.time()):
            return True
        else:
            if usr["next_time"] >= int(tm.time()):
                if usr["messages"] >= msgs:
                    spams[user_id]["banned"] = tm.time() + ban
                    # text = """You're banned for {} minutes""".format(ban/60)
                    # bot.send_message(user_id, text)
                    # User is banned! alert him...
                    return True
            else:
                spams[user_id]["messages"] = 1
                spams[user_id]["next_time"] = int(tm.time()) + max
        return False
    Ответ написан
    1 комментарий
  • Ноутбук не видит ssd почему?

    vasilyevmn
    @vasilyevmn
    DevOps
    https://4pda.ru/forum/index.php?s=&showtopic=97495...

    Так, на всякий случай запишу это здесь, дабы потом гуглилось. Касается не только Е-серии и не только DELL.

    В ноутбуках E-series бывают Half Mini 2 PCIe разъемы, в частности - под WAN/WLAN/WiFi, WWAN, другие модемы.
    Очень часто встает вопрос, а можно ли туда запихнуть mSATA SSD, и, еще круче, грузиться с него.

    При ответе на этот вопрос, нужно понимать, что унифицированный слот mini card может содержать в себе шины pci-e PCI-express (причем как 4x, так и "урезанный" 1x) И/ИЛИ mSATA И/ИЛИ USB (причем, в основном, 2.0).
    Соответственно, для того, чтобы заработало большинство mSATA твердотельников, нужно, чтобы линии mSATA были разведены на мат. плате (к SATA контроллеру). Например, в случае Latitude E5530 это не так.

    "Быстрый" метод идентификации: если порт подписан на пластике корпуса как mSATA или mSATA/WWAN, то mSATA работать будет!
    Для справки: большинство WWAN модемов использует линии USB.
    Большинство конверторов mini card pci-e >> SD карты памяти (есть и такие, и это совсем не лишено смысла!) используют USB. Однако бывают и pci-e. Из чего сразу вывод - вставлять в них карты "круче" UHC-I лишено смысла, прироста скорости не будет из-за потолка пропускной способности USB 2.0 - можете рассчитывать на 30 МБит/сек в пике.

    Даже если на порт не разведен mSATA, можно вставить туда SSD при условии, что он "на борту" несет на себе контроллер (чаще всего это IDE/PATA контроллер). Это довольно редко встречаемые, сравнительно дороговатые, ограниченные по ёмкости и устаревшие карты, но это единственный способ получить сколь-либо быстродействующий раздел на твердотельном накопителе и (если поддерживается BIOSом) сделать его загрузочным (и накатить на него систему).
    Пример такого SSD - SuperTalent IDE Half Mini 2 PCIe SSD, существует в виде максимум 64 гигов на одной планке полного (не половинного) размера.
    Другой пример - Intel Turbo Cache Memory, которые и планировалось разработчиками ранних Е-серий пихать туда изначально в топовой комплектации. Существуют в ипостасях 0,5-4 Гб и годятся, по моему мнению, только для Windows ReadyBoost, линуксового свопа или аналогичных разделов подкачки/гибридного кэша.
    Ответ написан
    2 комментария
  • С чего начать изучение безопасности веб-сайтов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    С составления списка моделей угроз.
    Хороший сервис для обучения: https://owasp.org/
    Ответ написан
    3 комментария
  • Как скачать видео с ютуба в максимальном качестве? Проверял с помощью программ, онлайн сервисов, у всех максимум это 720p Как решить эту проблему?

    @Aelliari
    Старый добрый консольный youtube-dl, ключ -F позволит увидеть список всех возможных вариаций по качеству видео/аудио. А ключ -f позволит скачать выбранное качество, хоть 8k качай. Стоит учитывать, видео и аудио у наиболее качественных вариантов идут отдельно друг от друга, при наличии в системе ffmpeg youtube-dl можно заставить так же автоматически их собирать в 1 файл
    Ответ написан
    2 комментария
  • Где лучше учить Python самостоятельно?

    @deadshumz
    1) Книга ByteOfPython автора SwaroopCH
    - Станет хорошим другом новичку и научит очень быстро программировать на Python
    - Русскую версию читаем тут wombat.org.ua/AByteOfPython
    2) Бесплатный интерактивный курс pythontutor.ru
    3) Курс https://metanit.com/python/tutorial/
    4) Книга "Изучаем Python", Марк Лутц
    5) Книга "Программируем на Python", Майкл Доусон
    6) Книга "Простой Python. Современный стиль программирования", Билл Любанович
    7) Книга "Изучаем Python. Программирование игр, визуализация данных, веб-приложения.", Эрик Мэтиз
    8) Книга "Изучаем программирование на Python", Пол Бэрри
    Ответ написан
    1 комментарий
  • Восстановление данных из жёсткого диска вестерн диджитал, это возможно?

    @ikoit
    Web Developer
    Согласен с ответом выше. Далеко не всё можно восстановить в домашних условиях. Есть хорошая контора, которая этим занимается: https://rlab.ru/
    Ответ написан
    Комментировать
  • Сектора битые восстанавливаются компаниями по восстановлению данных?

    opium
    @opium
    Просто люблю качественно работать
    Рлаб одни из лучших
    Нет не восстанавливаются, диски по другому устроены
    Ответ написан
    Комментировать
  • Как восстановить данные?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Этот вопрос всплывает на Тостере с завидной регулярностью - не реже раза в месяц.
    Вдобавок к упомянутым easeus, recuva я бы посоветовал R.Saver - исключительно простую и удобную утилиту восстановления данных. Ей достаточно указать целевой диск/раздел, и тот, на который надо сбросить найденные файлы. Никаких "анализов" и прочих излишеств. Структура вложений найденного (папки-подпапки-файлы) остаётся той же, как была на исходнике.
    Мне R.Saver легко восстановил мой фотоархив, случайно удалённый "безвозвратно" (т.е не в Корзину, ввиду огромного объёма).
    Ответ написан
    Комментировать