• Как перезаписать файл UNIX?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В общем случае -- никак, только писать во временный файл, а потом его переименовать.
    В частном случае sort можно использовать -o, о которой здесь явно сказано, что имя указанного файла может совпадать с именем одного из входных файлов. (Но не всегда, в частности, при наличии ключа -m gnu sort может перезаписать входной файл до того как он будет прочитан).
    Ответ написан
    Комментировать
  • Почему используют class вместо явного id?

    Tiendil
    @Tiendil
    Разработчик ПО.
    для однообразности
    сегодня один, завтра два, послезавтра 10
    Ответ написан
    3 комментария
  • Что это за разъема Sata?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    https://ru.wikipedia.org/wiki/SATA

    Сейчас это самый популярный разъем для носителей информации (все винчестеры, CD/DVD приводы идут с таким разъемом.
    Раньше в десктопах был старый IDE, который был более медленный и шлейфы были крупные. Sata достаточно миниатюрен, чтобы использоваться и в ноутбуках, поэтому теперь разъем одинаковый и на десктопах и на ноутах.

    А переходник Sata-USB продается только как активный (с контроллером). В районе 10-20$
    Ответ написан
    6 комментариев
  • Как откатить fast forward мерж из удаленной ветки?

    v_decadence
    @v_decadence
    git checkout master
    git merge commit_hash

    Где commit_hash - хеш последнего "годного" коммита.
    Мержить можно не только с HEAD ветки, но и с любым коммитом.

    Но можно и откатить:
    git checkout feature
    git reset commit_hash
    Ответ написан
    4 комментария
  • Как понять момент в решении на JS?

    rajdee
    @rajdee
    Front-end developer
    Условие сработает, т.к. 6 % 7 выдаст 6, хотя такая перестраховка для нативного Date.prototype.getDay() не совсем понятна, но, судя по вашему примеру, getDay у вас не нативный.
    Ответ написан
    Комментировать
  • Польза олимпиадного программирования, миф или реальность?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Прежде чем браться за решение по выбору между чем-то одним и чем-то другим я бы рекомендовал задаваться вопросом: "А есть ли еще более важные вещи?". Я к тому что Вы сейчас можете выбирать между теорией алгоритмов и технологиями, но при этом вдруг есть более важный навык который прокачан не так как хотелось. Рискну предположить, вдруг Вам надо прокачать мега-навык для любого программера : "Английский на уровне чтения тех.летературы". Если я угадал, то лучше потратьте время на него!
    Ответ написан
    Комментировать
  • Польза олимпиадного программирования, миф или реальность?

    @Vlad_Fedorenko
    Мне кажется, от олимпиадного программирования пользы столько же, сколько от высшей математики - пригодится в жизни десятая часть, но приводит мозги в порядок. А это не помешает, чем бы вы не занимались. В выборе между технологиями и алгоритмами остановился бы на втором. Технологии меняются, алгоритмы фундаментальны
    Ответ написан
    Комментировать
  • Можно ли с помощью jQuery вставить кусок PHP кода в нужное место?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нет.
    Срочно читать Как работает РНР, где он выполняется? чтобы никогда больше не задавать таких вопросов.

    С помощью jQuery вставить можно только результат выполнения РНР кода. Запросив его AJAX-ом.
    Или можно выполнить РНР код сразу, при генерации страницы, но скрыть див с результатом. А потом по нужному событию открыть его. Все зависит от задачи.
    Ответ написан
    Комментировать
  • Что за море доменов в nginx и ошибка 502?

    @Nc_Soft
    server {
    	listen   80 default;
    	access_log off;
      
    	location / {
    		return 444;
    	}
    }

    вот этот бред убрать надо
    if ($host !~ ^(studio.com|www.studio.com)$ ) {
    return 444;
    }
    и сделать для каждого сайта свою секцию
    server {
    listen 80;
    server_name site.ru;
    }
    Ответ написан
  • JavaScript: какая разница в объявлении переменных?

    Первый вариант:
    var a = 0, b = 0; имеет несколько явных недостатков:
    1. При наличии системы контроля версий, добавление новой переменной будет неинформативно. Будет изменена вся строка, что незначительно усложнит ревью кода.
    2. Субъективно подобная запись мешает восприятию кода. В ней плохо различимы переменные без присвоенного значения. Т.е. var a = 0, b = 0, c, d = 0;

    Второй вариант:
    var a = 0;
    var b = 0;

    Является наиболее расширяемым в плане версионирования (не имеет проблемы с выставлением запятой, как в приведенном ниже третьем варианте), но перегружен служебными словами.
    Лично я предпочитаю пользоваться этим синтаксисом в nodejs модулях для подгрузки библиотек в верхней части скрипта:
    var fs = require('fs');
    var path = require('path');


    Третий вариант:
    var a = 0,
        b = 0;

    Несколько проигрывает второму в плане удобства версионирования (при добавлении переменной С будет изменено две строчки, а не одна), но наиболее распространен в js best practices. Одинаково применим как с выравниванием по 4 пробелам для выстраивания переменных в столбик, так и без надуманного выравнивания.
    Из минусов этого варианта, можно отметить забытую запятую после a = 0. В таком случае переменная b будет объявлена глобально, если не используется "use strict"
    Ответ написан
    1 комментарий
  • Как вернуть значение из callback функции?

    haiku
    @haiku
    Могу подсказать, что, вероятнотно, вы не понимаете что такое асинхронность.
    Ф-я getAllProducts должна либо принимать свой колбек, на который затем будет вброшено полученое из монги значение, либо отдавать промис, дифер которого будет резолвиться после collection = result.
    Ответ написан
    Комментировать
  • Как оптимальнее хранить в БД timestamp для каждого действия?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нужно хранить (в БД) время нажатия кнопок (до секунд) и какая кнопка была нажата, как это лучше сделать?

    Таблица
    кнопка | время нажатия
    - это ЕДИСТВЕННЫЙ вариант, который должен приходить в голову автоматически.
    Все остальные фантазии из вас надо выбивать калёным железом.
    Сон разума рождает чудовищ, а фантазия похапешника, не отягощённая даже базовыми принципами программирования, рождает монстров.

    Там, где человек даже с уровнем профильного колледжа (бывш. ПТУ) не задумывается ни на минуту, над проблемой уровня "сколько будет 2х2", доблестный воин while mysql_fetch_array начинает морщить лоб, загибать пальцы, изобретать себе вселенскую проблему. А потом и монстра для ее решения.

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

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

    Идем в мануал и смотрим, сколько занимает какой тип:
    • int - 4 bytes
    • timestamp (mysql) - 4 bytes
    • datetime - 8 bytes - больше чем инт, но все равно меньше, чем самопальное кодирование в хекс.
    Ответ написан
    8 комментариев
  • Стоит ли использовать RSA?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    И да и нет одновременно.

    (обновлено, ибо внезапно прочитал и половину не понял - видимо писал на "потоке")
    RSA стоит использовать лишь для шифрования других ключей - ключей симметричных алгоритмов шифрования. AES, ГОСТ 28147-89, 3DES и другие. Почему? Во-первых, симметричные алгоритмы более устойчивы к взлому при большом известном закрытом тексте, тогда как ассиметричное шифрование потенциально имеет изъяны. В том смысле, что (почти) любое ассиметричное шифрование использует задачу NP-класса (точнее - NP-полную задачу): факторизация числа (RSA), декодирование полных (общих) линейных кодов (McEliece), вычисление дискретного логарифма на элептической кривой (ГОСТ Р 34.10-2012), или в конечном поле (Elgamal). Другое дело, что любая эта задача потенциально - решаемая. В случае с симметричным шифрованием действительно стоит лишь надеяться на чудо (в ГОСТе разрешено выбирать любые s-блоки, так что криптоаналитику ничего не остаётся, как молиться пролетариату в надежде на терморектальный криптоанализ). В случае же с ассиметричным шифром в дело вступают две вещи - высокая сложность реализации действительно стойкого алгоритма (ассиметричные шифры очень сложны и полны нюансов, не учитывая которые можно запросто порушить систему), низкая скорость работы (в силу того, что приходиться использовать очень абстрактные математические функции, сложно реализуемые аппаратно и таящие в себе множество низкоуровневых операций) при требовании к очень длинным ключам заставляют использовать небольшие ключи для того, чтобы не ждать вечность.

    Однако. Здесь имеется странный парадокс. Если данные очень важные и на их защиту можно убить несколько миллионов енотов, то надо использовать только ассиметричный шифр. Потому что, он потенциально даёт большую стойкость. Парадокс здесь в том, что если классы P и NP неравны, то мы получаем едва ли не идеальную и приемлемую по стоимости защиту, так как есть возможность сложной организационной защиты.
    (здесь было многое отправлено в топку)

    Окай, посмотрим на стандартную схему с Алисой, Бобом и Евой:
    Алиса -> c = E(m, Eb) -> -------- -> D(c, Db) -> Боб (
                                     |
                                     |
                                     v
                         Ева <- c, E, D, d

    здесь m - текст, который надо передать (сообщение)
    c - шифротекст
    E - функция шифрования (получения из сообщения шифротекста)
    D - функция дешифрования, иначе - обратная функция шифрования (получения из шифротекста - сообщения)
    Eb, Db - секретный и открытый ключи Боба (в литературе используется различное обозначение, здесь так)
    Собственно, Ева знает всё о функциях шифрования и дешифрования, имеет доступ к шифротексту и будем считать, что она получает и открытый ключ.

    Теперь, что нам это даёт? А это нам даёт возможность наплодить большое количество ключей и шифровать каждое сообщение отдельным ключём. Потенциально, но если есть $$$, то можно скупить половину серверов страны, если не планеты и радоваться жизни. Хотя ровно так же можно поступить и с симметричным шифрованием, и называется это одноразовым блокнотом, используют и различные режимы шифрования и всё равно выходит профитнее. Где же профит здесь?
    Во-первых, если нужно передавать по каналу, а не хранить, то можно генерировать ключи налету и после расшифровки их уничтожать. По сути, получиться что для того, чтобы получить сообщение длины l бобу потребуется передать и ключей в общей сумме длины l. Много? Да. Профитно? Очень - ибо мы реализуем
    ассиметричный одноразовый блокнот (упс), который, однако, нет никакого смысла использовать нет - слишком дорого. Да и не всегда возможно - порой обратный канал чрезвычайно узкий.
    Во-вторых, есть способ организовать защиту, основанную на иерархии пользователей. То есть майор Алиса написала отчёт, который ей надо отправить подполковнику Бобу. При этом читать этот отчёт должны иметь право все, кто равен или выше подполковника.
    В-третьих, как писалось выше, сложность взлома достаточно велика. И не только потому, что P != NP. Даже P довольно большое получается, поэтому и используют асимметричный шифр для передачи ключей симметричных ключей. Но и взлом получается очень не простым из-за тяжёлых математических абстракций. Обычно. Да, RSA можно "взломать" перебрав все возможные делители, но это долго из-за астрономического размера ключа. А способы обхода или упрощения опираются на такой зубодробительный матан, что попытка как-то это реализовать заставит использовать сами по себе очень тяжёлые операции. Так это при работе с банальными числами (и это показывает, насколько плохо развита теория чисел), а что если уйти на эллиптическую кривую - аналитическая геометрия развита может чуть лучше, но абстракции намного тяжелее для компьютеров. И даже использование графических карт не помогает, ведь есть ещё и макэлис. Я к тому, что O(2^32) для симметричного шифра и O(2^32) для асимметричного шифра не очень таки равны. Так же не равны, как не равны день и месяц.

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

    Поэтому шифрование надо использовать соразмерно цене риска. Чем выше риск - тем сильнее шифрование, но самое главное - сложнее и дисциплинированнее организационные меры. Согласитесь - бесполезно иметь централизованное хранилище сертификатов с одним сервером в бункере за 200 км под землей и круглосуточной охраной из армии маленькой страны, всего лишь одним портом торчащим во внешний мир с каналом около 200 бит в секунду и постоянным наблюдением за организационными методами (авторизация, доступ и подобной)... Имея пароль на суперюзер - qwerty, и держа на винчестере архив с котиками.
    Ответ написан
    Комментировать
  • Как лучше хранить телефонный номер в БД?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    "Обожаю" такие вопросы.
    Начнем с того - сколько у Вас номеров в базе, что Вам актуальна экономия места?
    По теме - строки.
    Ответ написан
    12 комментариев
  • Почему в файле теневых паролей для групп (/etc/gshadow) пароли не шифруются?

    Rrooom
    @Rrooom
    Потому что читаем документацию, а не тыкаем пальцем в небо. Стало интересно, первой ссылкой в гуголе - www.computerhope.com/unix/groupadd.htm

    Читаем. И выясняем, что опция -p просит не сам пароль, а строку уже зашифрованную crypt.
    Ответ написан
    Комментировать
  • * Restarting nginx nginx [fail]. Где смотреть логи?

    alexclear
    @alexclear
    A cat
    Сделайте для начала nginx -t - это тест конфига, он покажет ошибки
    А логи смотрите в /var/log/nginx/error.log, обычно они там
    Ответ написан
    Комментировать
  • Как правильно настроить cубдомен в nginx?

    Kinozol
    @Kinozol
    Тёплый LAMPовый вебдев :)
    Ваш конфиг должен работать, но исправьте ошибку, есть лишняя точка в конце пути.

    root /usr/share/nginx/www/site1.;
    Ответ написан
    2 комментария
  • Как сложить объекты в JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    function Foo(value) {
        this.value = value;
    }
    Foo.prototype.valueOf = function () {
        return this.value;
    };
    
    var first = new Foo(2) // first.val = 2
    var two = new Foo(3) // first.val = 3
    
    alert( first + two ) // должно вывести 5
    Ответ написан
    4 комментария