Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (10)

Наибольший вклад в теги

Все теги (132)

Лучшие ответы пользователя

Все ответы (241)
  • Как сделать фиксированный список комманд для пользователя в SSH?

    dummyman
    @dummyman
    диссидент-схизматик
    Есть стандартная для большинства дистрибутивов тулза chroot. Ее использует для собитвенных изоляций куча системного софта. Она есть везде и ее не придется устанавливать.
    Создаешь пользователя. Создаешь новую директорию.
    В ней создаешь основные системные папки. Одну из папок (например, /home) делаешь пользовательской, то есть меняешь хозяина chown на этого пользователя.
    Потом ссылками (команда ln) добавляешь в эти папки все то, к чему хочешь чтобы пользователь и программы запущенные под ним имели доступ.
    Все его сессии запускаешь через chroot.
    Не забываем ограничить использование hdd (группа команд quota).
    А потом ему можно дать возможность пользоваться хоть менеджером пакетов, даже устанавливая свой софт, юзер ничего не испортит.
    Классика хостинга, ёмн.
    $ man chroot
    Ответ написан
  • Кто устанавливал kali linux в качестве основной ОС?

    dummyman
    @dummyman
    диссидент-схизматик
    Если вы задаете такой вопрос, то скорее всего не можно!
    Склонен полагать, что опыта работы с Линуксами у вас нет.
    Зачем вам кали? Поставьте федору или убунту - все доступно уже из коробки.
    И еще вопрос, почему всех новичков интересует количество багов?
    Вы хотите заняться реверсинженирингом? Вам линукс нужен для поисков в нем багов?
    Ответ написан
  • Где здесь утечка памяти?

    dummyman
    @dummyman
    диссидент-схизматик
    Во первых, вы неправильно используете анонимные функции, например
    const startTimer = (){ ... }
    и все остальные.
    Анонимные функции можно использовать только в ситуациях, когда их вызывают "не по имени" для сохранения контекста. Например, аргументом forEach().
    В данной ситуации лучшей синтаксической формы ничего не придумали:
    function startTimer(){ ... }
    Второй момент
    for ( const key in _headers ) {
            if ( {}.hasOwnProperty.call( _headers, key ) ) {
                headers.append( key, _headers[ key ] );
            }
        }

    и конкретно
    if ( {}.hasOwnProperty.call( _headers, key ) )
    Вы в цикле каждой итерацией создаете новый объект, это крайне не рациональное использование метода hasOwnProperty()
    по мне
    if (_headers != null && !!_headers[key] )
    может выглядело бы не так красиво, за то потребляет памяти по-меньше.
    Третий момент
    .catch( console.error )
    Вы можете немного сэкономить памяти использовав как раз по назначению анонимную функцию
    .catch( e => console.error(e) )
    В этом случае интерпритатор не будет искать ссылку на console.error при создании каждого промиса, и будет искать, соответственно, только в исключитальных ситуациях.
    Четвертый момент
    Поменьше пользуйтесь ключевым словом const, особенно, внутри методов и функций. Во-первых, так как они не выгружаются из памяти. Во вторых, const не дает никаких преимуществ в производительности, только лишь накладывает на интерпритатор обязанности следить чтобы ее случайно не перегрузили.
    Ответ написан
  • Рисование графиков, есть ли интересная статья или пример?

    dummyman
    @dummyman
    диссидент-схизматик
    Из jquerийных простенький morris и посложнее flot.
    Для Анжелы n3. Для любителей Ember Charts.
    Простенькие ChartJS и uvCharts.
    Очень легкий и хорошо разжеванный ChartList.
    Не менее хорошо разжеванный, но платный, ZingChart.
    Поддержку legacy обеспечит FusionCharts - обещают работу на IE6.
    Профессионалам понравится список фичей plotly.
    Вы бы конкретнее указывали какие графики вам нужны. А то все не подходят, а что нужно - секрет. Хотите создавать свою систему - читайте исходники существующих. - Врятли любая статья будет лучше и более полной чем исходники рабочих библиотек.
    Ответ написан
  • Как научиться пользоваться ОС без мышки?

    dummyman
    @dummyman
    диссидент-схизматик
    Начните с малого
    Выкинь кеды и гном, используй человеческий менеджер окон.
    Пройди $ vimtutor и открой для себя vim awesome.

    Прямо стихами получилось.

    Чуть не забыл добавить tmux + powerline или terminator чтобы стать риил ганста хакер.

    UPD: Блин, забыл еще очень важное хозяйство. Как же без общения?
    Есть mcabber - поддерживает только xmpp, но к нему на github можно найти тысячи неофициальных плагинов, неговоря о сотнях официальных. Многие xmpp серверы поддерживают транспорты на другие более модные протоколы (icq, skype и проч.).

    Есть древний, но еще обновляемый неофициальными форками centericq. Этот мультипротокольный изначально. Официальный поддерживает без всяких транспортов ICQ, Yahoo!, AIM, MSN, IRC, XMPP, LiveJournal, and Gadu-Gadu. Но тут тоже... Можно найти много разных форков и тысячи неофициальных плагинов. Скорее всего можно прикрутить все современные непроприетарные протоколы.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (4)