Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
Sly_tom_cat

Sly_tom_cat .

.
  • 91
    вклад
  • 3
    вопроса
  • 156
    ответов
  • 30%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как быстро и просто монтировать квадратные гайки в серверном шкафу?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Вот тоже не понял проблемы: всегда вставляли эти гайки с помощью простой плоской отвертки.
    Никогда бы не подумал для этой задачи делать специальную тулзину....
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как в Go асинхронно выполнять поступающие задачи и выводить конечный результат?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Вам похоже сюда: https://gobyexample.com/worker-pools

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

    Новые job-ы лучше добавлять в теле самих job-ов, которые порождают новые.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как взаимодействовать со сторонними процессами в Python?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    import subprocess
    ... и золотой ключик у вас в кармане
    https://docs.python.org/3/library/subprocess.html
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Стоит ли устанавливать файловый менеджер nemo или nautilus в xubuntu?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Не стоит.

    ЗЫ с задачами не справляется ваша оперативная память - никогда не понимал зачем озвученная вами фича в файловом менеджере.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как уменьшить тормоза при использование Ubuntu на usb-флешке?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    1. будьте готовы что флешка при длительном использовании на ней ОС достаточно быстро умрет. Мой опыт говорит о нескольких месяцах.
    2. help.ubuntu.ru/wiki/ubuntu_%D0%BD%D0%B0_usb - там перечислены способы оптимизации.

    PS совет про hdd/ssd - очень даже разумный.....
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Каналы в golang, а как ту че та?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Канал в коде только один: intCh, при вызове factorial канал передается по ссылке (он только так и передается) и внутри factorial этот единственный канал называется ch и впридачу на него наложено ограничение что этот канал можно использовать только для вывода в него (ограничение наложено в декларации параметра функции).

    Никакой магии - канал объявили, передали, прочитали из него.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какой метод нужен для осуществления программы Python (см. описание)?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    https://docs.python.org/3.5/library/getpass.html
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • В чём ошибка кодировки python?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Какой питон? 2-й?
    В начале файла прописано:
    # -*- coding: utf-8 -*-
    ?
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как получить вывод выполненной команды?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    from subprocess import check_output
    
    out = check_output([r'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'] + [r'Get-WMIObject -Class Win32_ComputerSystem -Computer "PC000329"|Select-Object Username'])
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как можно защитить код приложения на Python?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Любой код, который вы отдаете на сторону можно реверсинжинирить, как бы вы его не защищали (вопрос только в желании получить этот код).

    Поэтому, либо на защиту просто забить, либо не отдавать код (исполнять на своей стороне).

    Другого не дано априори. Это можно принимать и жить спокойно, а можно не принимать и продолжать бороться с ветряными мельницами.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • В linux если у пользователя нет права на чтение папки, а есть право на чтение файла он сможет фал прочитать?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    rwx для каталогов - не совсем обычно трактуются.

    r мли rw - чтение имён файлов
    x - чтение файлов и их свойств
    wx - всё, кроме чтения списка файлов
    w отдельно - вообще никаких прав на каталог не дает.

    Так вот если поиграться этими правами то можно сделать так что каталог пролистать (ls) нельзя, а файл в нем открыть можно (если конечно на файл есть права на доступ).

    Но если права на каталог у пользователя отсутствуют полностью, то файл в нем не открыть никак.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему в Ubuntu 17.10 не работают параметры Grub 2?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    На сколько я помню одновременно
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_TIMEOUT=0
    писать нельзя.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как вызвать метод родителя из переменной python?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    У вас TestMe - не родитель ConfigManager, а владелец свойства config (являющегося экземпляром класса ConfigManager).

    Что бы TestMe был родителем ConfigManager, ConfigManager надо объявлять так:

    class ConfigManager(TestMe):

    Тогда будет возможность вызвать runme() как метод самого ConfigManager
    class ConfigManager(TestMe):
    
        def test(self):
            self.runme()


    seper() нужно только тогда, когда нужно вызвать переопределенный метод родителя.

    class ConfigManager(TestMe):
    
        def runme(self):
            super(self).runme()


    Если же хочется именно так как у вас (когда ConfigManager является значением свойства класса TestMe, то тогда в конструктор ConfigManager нужно передать владельца этого свойства параметром, тогда внутри ConfigManager можно будет вызвать метод владельца.

    class TestMe():
    
        config = ConfigManager(self)
    
        def runme(self):
            print('alive')
    
    class ConfigManager():
    
        def __init__(self, owner):
            self.owner = owner   # запоминаем хозяина
    
        def test(self):
            self.owner.runme()   # вызываем метод хозяина
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Команда git log - в консоль вывелась часть истории, а дальше нужно держать Enter, чтобы остальная часть вывелась. Как вывести сразу все?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    для многих команд git предусмотрен пейджинг, и часто он бывает очень полезен. Поэтому глобально его выключить как предложил latush - не самое лучшее решение...
    Если перенаправить вывод git log через пайп в другой процесс или в файл, то пейджинг не будет работать.

    Например
    git log | cat
    Выдаст весь лог до конца на консоль. А
    git log > log.txt
    Запишет весь лог до конца в файл.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Каков сценарий использования git для одного разработчика?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Для синхронизации между двумя компами использую syncthing.
    git и github (как remote master) используется именно для осмысленных коммитов с законченными доработками.
    Так у меня чистая история коммитов, ни ребейзов ни прочей сомнительной активности для приведения истории в порядок - не нужны.

    Но это не отменяет использования веток. Отдельная фича - отдельная ветка. Почти рабочее - мержу в dev. После тестирования меджу dev в master. В мастер стараюсь напрямую не коммитить, разве что какие-то обновления readme и прочей атрибутики.

    В master лежит код в котором я уверен, что он рабочий ибо мастер иногда качают (проект не требует сборки т.к. на питне и баше и легко ставится из исходников).

    Когда вполне созрела версия - создаю релиз (прямо на github-е) ну попутно лью в PPA на launcpad (это уже собственно к разработке не имеет отношения - это автоматическая доставка обновлений пользователям).
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как исправить evaluated but not used в Go?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    package main
    
    import "fmt"
    
    func main() {
    	for i := 1; i < 101; i++ {
    
    		if i%3 == 0 || i%5 == 0 {
    			if i%3 == 0 {
    				fmt.Print("Fizz")
    			}
    			if i%5 == 0 {
    				fmt.Print("Buzz")
    			}
    			fmt.Println()
    		} else {
    			fmt.Println(i)
    		}
    	}
    }


    ЗЫ и пользуйтесь нормальными отступами или gofmt, а то ваш код просто глаз режет.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Что такое микрокод процессора?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Любой процессор по сути маленький компьютер, там есть исполнительные устройсва, ячейки регистров (память), внешние каналы (шины данных и адреса), кеши.... и всем этим нужно как-то управлять. Вот за это управление и отвечает микрокод процессора. По сути это такой глубоко завязанный на железо код, который позволяет реализовать отдельные примитивные действия внутри процессора, которые требуют согласованного действия отдельных его компонентов.
    Но микрокод только в древних процессорах (которые собирались из сотен отдельных элементов или нескольких микросхем) хранился в отделной схеме ПЗУ. Во всех микропроцессорах (когда все потроха процессора, а порой еще и часть внешних шин собраны на одном кристалле) микрокод пишется в отдельную часть этого общего кристалла. И не всегда это ПЗУ, иногда там типа флеша, но быстрого, ведь он работает на внутренней (очень высокой) частоте процессора.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как выложить приложение на Go в production?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    Собрать под другую ос:

    env GOOS=target-OS GOARCH=target-architecture go build package-import-path

    Ну только это для Linux, есть ли аналог env на винде - не знаю, но переменные можно просто в сессии установить.

    Запуск сервисов в ubuntu осуществляется через systemd - как? - гуглится на раз.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Слетает загрузчик grub. Как найти причину?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat
    .
    SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 117 to 118

    Диск сыпется.

    Желательно купить новый и переносить со старого срочно ценные данные.
    Ответ написан более трёх лет назад
    18 комментариев
    18 комментариев
  • GTK: нужно открыть диалог по получению от внешней программы данных (через stdout) как?

    Sly_tom_cat
    Sly_tom_cat . @Sly_tom_cat Автор вопроса
    .
    Короче сам нашел.

    На самом деле главный цикл обеспечивается GLib- ом. Собственно с ним я уже работал когда использовал таймеры.
    Оказалось - таймер это не единственный источник, который может инициировать колбеки из главного цикла.
    Есть еще такая штука как вотчеры потока, а конкретнее lazka.github.io/pgi-docs/GLib-2.0/functions.html#G...

    Т.е. задаем какой поток и на какое условие мониторить (мне нужно было на событие доступности данных для чтения - это GLib.IOCondition.IN), а также указывается коллбек функция и данные которые ей передать в параметрах.
    Приоритет по умолчанию это - 0.

    Нюансы:
    1. В колбек передается первым параметром канал, вторым условие, которое было поймано, и только третьим данные (ес даннли они были указаны при создании вотчера).
    2. Колбек функция должна возвращать True если нужно продолжать мониторить, если вернуть False/None то вотчер удаляется из источников событий для главного цикла.

    Вот что у меня получилось:
    ...
        def stderr_reader(pipe, _):
          data = pipe.readline()
          if data != "":
            logger.debug(data[:-1])
          return True
    
        proc = Popen([external_prog, cfgFile],
                       bufsize=1,
                       universal_newlines=True,
                       stdin=PIPE, stderr=PIPE)
    
        io_add_watch(proc.stderr, 0, IOCondition.IN, stderr_reader)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Следующие →
Самые активные сегодня
  • HardBot
    HardBot
    • 11 ответов
    • 0 вопросов
  • Dr. Bacon
    • 7 ответов
    • 0 вопросов
  • delphinpro
    Сергей delphinpro
    • 6 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 4 ответа
    • 0 вопросов
  • TheAndrey7
    • 4 ответа
    • 0 вопросов
  • mayton2019
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации