Задать вопрос
  • Подробная информация о запущенных процессах в linux?

    @abcd0x00
    Все описано в
    man ps

    Что значит время 00:00:00?


    cputime     TIME      cumulative CPU time, "[DD-]hh:mm:ss" format.
                          (alias time).
    Ответ написан
    Комментировать
  • Как лучше организовать электронную библиотеку?

    @abcd0x00
    Форматы совершенно разные, от pdf и djvu до fb2, т.е. естественно будет база данных с описанием и т.п.

    Форматы не имеют значения, так как название формата каждой книги будет храниться в базе данных.
    Там у тебя как бы получается две таблицы: одна описывает книгу, другая - адрес и способ хранения. И эти две таблицы связаны в одну базу данных по общему полю.
    Ответ написан
    Комментировать
  • Библиотека для чтения директорий?

    @abcd0x00
    Системный вызов stat() даёт структуру, в которой указаны все свойства.

    man stat.h

    The  following  symbolic names for the values of type mode_t shall also
    be defined.
    
    File type:
    
    S_IFMT Type of file.
    
    S_IFBLK
           Block special.
    
    S_IFCHR
           Character special.
    
    S_IFIFO
           FIFO special.
    
    S_IFREG
           Regular.
    
    S_IFDIR
           Directory.
    ...
    
    The following macros shall be provided to test whether a file is of the
    specified  type.  The  value  m  supplied to the macros is the value of
    st_mode from a stat structure.  The macro shall evaluate to a  non-zero
    value if the test is true; 0 if the test is false.
    
    S_ISBLK(m)
           Test for a block special file.
    
    S_ISCHR(m)
           Test for a character special file.
    
    S_ISDIR(m)
           Test for a directory.
    
    S_ISFIFO(m)
           Test for a pipe or FIFO special file.
    
    S_ISREG(m)
           Test for a regular file.
    
    S_ISLNK(m)
           Test for a symbolic link.
    
    S_ISSOCK(m)
           Test for a socket.
    Ответ написан
    Комментировать
  • Нужно ли тратить кучу времени на задачу, которую знаешь как можно решить, но не до конца получается самому реализовать решение?

    @abcd0x00
    Для меня проблема заключается в том, что я не знаю - правильно ли так вообще делать?


    Этим ты ведёшь себя к состоянию "я всё, всё, всё знаю, только вот написать не могу ничего". И таких "программистов" в мире - вагон и маленькая тележка. Они ничего не делают, только пользуются чужими программами.
    Ответ написан
    Комментировать
  • Как надёжно увеличить размер root в linux?

    @abcd0x00
    У меня музыка, видео, игры, виртуалки вынесены на отдельные логические разделы, которые монтируются в /mnt при загрузке, а туда уже ведут символические ссылки на директории.
    Так можно высвобождать место, не перезагружаясь.
    Ответ написан
    Комментировать
  • Как происходит смена головы списка при вставке?

    @abcd0x00
    до этой строчки node указывает на голову

    Он указывает не на голову, а на только что выделенный через new фрагмент памяти.
    А вот уже внутри этого фрагмента памяти есть указатель, который указывает на голову.
    Дальше они (новый узел и голова) становятся связанными и мы можем сделать новый узел головой.
    Доступ к прежней голове осуществляется через новую голову.
    Ответ написан
    Комментировать
  • Как развить аналитические способности?

    @abcd0x00
    Мне в детстве подарили книжку "Твоё свободное время", она интересная, там собраны головоломки.
    rutracker.org/forum/viewtopic.php?t=1286275
    Ответ написан
    Комментировать
  • Какие подготовить вопросы для специалиста на python?

    @abcd0x00
    В питоне есть ядро, библиотека и модули.
    Нужно хорошо опросить по ядру. Многие не знают его, поэтому пишут некачественный код.
    Нужно опросить по библиотеке средне, так как без неё человек будет связан по рукам и ногам, даже если знает ядро. (Почему средне, потому что сложных вещей там нет.)
    Нужно хорошо опросить по модулям, так как основная разработка будет в них протекать. Так как они обычно большие, то за пять минут такой не выучишь, поэтому опрашивать надо хорошо.

    Обычно просят написать программку, которая тайно включает в себя необходимость знать все эти вещи. А чтобы сильно не грузить с самого начала, разделяют эту программку на части и дают её постепенно.
    Ответ написан
    Комментировать
  • Как стоит именовать переменные и функции в Python?

    @abcd0x00
    Вообще, код надо писать так, как будто ты его откроешь через 10 лет. Представил?
    Если там будут какие-то нюансы, ты всё равно про них не вспомнишь.

    1) Функции нужно называть императивно (повелительное наклонение).
    2) Используй пространства имён.
    открыть_ёжика_левого
    открыть_ёжика_правого

    открыть - это первое пространство имён
    ёжика - это второе пространство имён
    правого - это третье пространство имён (пустое)
    левого - это четвёртое пространство имён (пустое)
    Одно пространство находится в другом, так имена получаются короткими и конкретными.
    Ориентируешься по количеству: если действий мало, а животных много, то в действиях находятся животные; если же животных мало, а действий много, то в животных находятся действия.
    3) Используй идиомы
    Вместо
    for ticket in tickets:
    используй
    for i in tickets:
    i - это item
    Эта идиома перебора элементов последовательности подходит для многих языков. Поэтому даже более понятный ticket не будет выглядеть настолько же привычно, как годами используемый i.
    4) При создании имени делай его уникальным
    Что ещё я мог бы назвать этим именем в данном коде? Если ответа нет, то имя хорошее.
    Ответ написан
    Комментировать
  • Как выдернуть адрес сайта (linux) из html?

    @abcd0x00
    В два прохода: сначала готовим ссылки, потом выделяем.
    Для текста выше, записанного в file.html
    [guest@localhost tmp]$ cat "file.html" | sed 's/"http/\n&/g' | sed -n 's/^"\(http[^"]*\)".*/\1/p'
    http://tasteofcountry.com
    https://s3.amazonaws.com/tsm-images/logos/footer/204-light.png?id=78
    http://tasteofcountry.com/shocking-country-music-splits/
    http://tasteofcountry.com/reba-mcentire-narvel-blackstock-relationship-timeline/
    http://screencrush.com/official-batman-vs-superman-plot-synopsis/?footer
    http://wac.450f.edgecastcdn.net/80450F/screencrush.com/files/2015/07/batman-vs-superman-300.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://popcrush.com/stars-who-were-born-rich/?footer
    http://wac.450f.edgecastcdn.net/80450F/popcrush.com/files/2015/04/born-rich-300.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://diffuser.fm/offensive-band-names/?footer
    http://wac.450f.edgecastcdn.net/80450F/diffuser.fm/files/2015/03/offensive-band-names.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://comicsalliance.com/comic-book-movie-behind-the-scenes-pictures/?footer
    http://wac.450f.edgecastcdn.net/80450F/comicsalliance.com/files/2015/05/behind-the-scenes-300.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    http://tasteofcountry.com/you-think-you-know-country-taylor-swift/?footer
    http://wac.450f.edgecastcdn.net/80450F/tasteofcountry.com/files/2014/08/taylor-swift-sexy.jpg?w=180&h=120&zc=1&s=0&a=t&q=89
    [guest@localhost tmp]$
    Ответ написан
    Комментировать
  • Как правильно указать промежуток чисел,при котором будет правильно выбран падеж слова?

    @abcd0x00
    Как указать правильно промежуток,чтобы не перечислять числа от 1 до 100.

    Надо брать только последние две цифры (даже если число трёхзначное) - 00..99.
    Потом просто их разделяешь на две переменные и делаешь проверку по отдельности.
    То есть никакого анализа двузначных чисел не должно быть.
    Ответ написан
    Комментировать
  • Как сгенерировать все полиномы указанной степени?

    @abcd0x00
    Зачем их генерировать, если это просто двоичные числа по порядку?
    Ответ написан
    Комментировать
  • Как применить sizeof в функции?

    @abcd0x00
    Обычно для этих целей в C++ используют vector.
    Ответ написан
    Комментировать
  • Написать программу на Си, которая удаляет файл, который начинается с 'а' в каталоге?

    @abcd0x00
    Надо просмотреть список имён в директории, потом выбрать из них имена файлов, а потом применить remove() к тем именам, у которых первый символ 'a'.

    Просматривать список имён ты можешь только через системный вызов (opendir() + readdir() + closedir()). Запрашивать информацию об имени тоже можешь только через системный вызов (stat()). Только проверять имя на наличие символа и удалять файл можно через стандартную библиотеку (f[0] == 'a' + remove()).

    По идее, и файловые имена ещё в юникоде надо читать.

    Для новичка задача не простая.
    Ответ написан
    Комментировать
  • Как убрать лишние параметры при форматировании строки в Питоне?

    @abcd0x00
    >>> d = {'some_value1': 112, 'some_value2': 321, 'dam': 42, 'pam': 43}
    >>> out = {k: d[k] for k in d if k in ('dam', 'pam')}
    >>> out
    {'dam': 42, 'pam': 43}
    >>>
    Ответ написан
  • Где найти лог-файл в Linux?

    @abcd0x00
    Общий алгоритм поиска файла программы:
    1) Найти по времени изменения содержимого файла в окрестности 5 минут.
    find -type f -mmin -5

    2) Найти файлы, открытые программой:
    В одном окне
    tail -f /etc/passwd
    В другом окне
    lsof | grep '^tail'
    Ответ написан
    Комментировать
  • Как с помощью sed удалить все строки в текстовом файле, начиная с определенной (например, с 5-й)?

    @abcd0x00
    [guest@localhost ~]$ cat /etc/passwd | sed '4q'
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    [guest@localhost ~]$
    Ответ написан
    Комментировать
  • Есть ли общепринятый Code Style для Си?

    @abcd0x00
    существует ли что-то вроде этого для Си?

    Возьми книжку K&R2 и тот стиль, который там использован. Когда будешь встречать в редакторах "установить стиль K&R" - это будет он.

    Можешь этого мужика читануть
    stolyarov.info/books/codestyle
    но он не особо шарит.
    Ответ написан
    Комментировать
  • Как отработать этот массив в цикле Bash?

    @abcd0x00
    Можно и sed
    [guest@localhost ~]$ text="word1@line1\nword2@line2\nword3@line3\nword2@line4"
    [guest@localhost ~]$ v="word2"
    [guest@localhost ~]$ 
    [guest@localhost ~]$ echo -e "$text"
    word1@line1
    word2@line2
    word3@line3
    word2@line4
    [guest@localhost ~]$ echo -e "$text" | sed -n '/^'$v'@/ s/^.*@//p'
    line2
    line4
    [guest@localhost ~]$
    Ответ написан
    Комментировать
  • Как научиться быстро понимать похожий код?

    @abcd0x00
    Рисуй блок-схемы, сначала на бумаге (обязательный этап), потом в голове.

    Так ты легко выделишь всего один кусок
    //
            if(C < A)
            {
                C = A + C;
                A = C - A;
                C = C - A;
            }

    и поймёшь, что он везде повторяется.
    Ответ написан