• Что такое ROM и зачем она нужна?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Все программы и ос храниться на hdd

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

    @Mozzart88
    1. git rm --cached <назване файла> - ключ --cached удаляет указанный файл только из индекса, но сам файл
    2. а дальше как указано выше - добавляем файл в .gitignore (можно наоборот - сперва добавить в .gitignore а потом удалить его из индекса)
    3. и коммитимся
    Ответ написан
    Комментировать
  • Как поменять местами поля в таблице postgreSQL?

    BuriK666
    @BuriK666
    Компьютерный псих
    Комментировать
  • Как поменять местами поля в таблице postgreSQL?

    DevMan
    @DevMan
    пересоздать таблицу по новой или создать вьюху с желаемым положением колонок.
    оба метода описаны тут.
    Ответ написан
    Комментировать
  • Что такое инверсия зависимостей в python?

    Ranc58
    @Ranc58
    Backend python developer
    По сути - как и везде. Пример- У бизнесс логики не должно быть зависимостей от конкретных реализаций. Сегодня у вас все хранится в постгрес а завтра в монге. Инверсия зависимостей позволяет более менее безболезненно совершить такой переезд, так как слой бизнесс логики понятия не имеет где вы храните данные. Ниже накидал грубый но вроде понятный кусок кода. Есть некая сущность блог, к которой можно добавлять пользователей и смотреть их. Блог должен откуда то тянуть данные и где то хранить их. Мы создаем некий интерфейс DBInterface ,который имеет стандартные методы добавить/удалить данные. Далее создаем класс SQLdb который реализует этот интерфейс.

    В самом классе блога мы реализуем функции получения/добавления пользователей без привязки к конкретной системе хранения: просто создаем экземпляр класса SQLdb и экземпляр класса Blog , передавая туда sqldb. Когда мы захотим переехать на монгу - нам не надо будет трогать класс блога. Мы всего лишь реализуем класс Mongodb для новой базы и будем опрокидывать его в блог вместо sqldb. Итог - блог не зависит от системы хранения вообще.
    Пример сильно упрощен и утрирован, но для понимания как оно работает думаю сойдет)

    from abc import ABC, abstractmethod
    import random
    
    
    class DBInterface(ABC):
    
        @abstractmethod
        def insert(self, data):
            pass
    
        @abstractmethod
        def get(self, id):
            pass
    
    
    class SQLdb(DBInterface):
    
        def insert(self, data):
            print(f"inserted {data} from mysql")
            return random.randint(0, 100)
    
        def get(self, id):
            print(f"get user {id} data from mysql")
            return {'id': id, "data": "some_data"}
    
    
    class Mongodb(DBInterface):
    
        def insert(self, data):
            print(f"inserted {data} from mongo")
            return random.randint(0, 100)
    
        def get(self, id):
            print(f"get user {id} data from mongo")
            return {'id': id, "data": "some_data"}
    
    
    class Blog:
    
        def __init__(self, db, blog_id):
            self.db = db
            self.blog_id = blog_id
    
        def add_user(self, name):
            self.db.insert(name)
    
        def get_users(self):
            return self.db.get(self.blog_id)
    
    
    if __name__ == '__main__':
        sql_db = SQLdb()
        mongo_db = Mongodb()
    
        blog_with_sql = Blog(db=sql_db, blog_id=1)
        blog_with_sql.add_user("test") # Выведет inserted test from mysql
    
        blog_with_mongo = Blog(db=mongo_db, blog_id=1)
        blog_with_mongo.add_user("test") # Выведет inserted test from mongo
    Ответ написан
    2 комментария
  • Какой путь выбрать 1С программисту, если от 1С начинает тошнить?

    @roman_CH
    Такая же ерунда. Тошнит от 1С. Когда то пришел стажером в большую фирму. Консультировал сначала, потом начал писать код, потом стал начальником. Но приходилось делать все, писать код, консультировать бабуль, быть начальником. Потом вовсе открыл свою фирму, нас правда не двое а трое)))))). И вот последний год, прям резко начало тошнить от 1с от этого языка, от консультирования по бухучету (я кстати могу вместо главбуха годовой отчет свернуть с закрытыми глазами). Вообщем резкое отторжение началось. Чувство как будто вообще не реализовал себя, не нашел свой путь, свою стезю. как будто идешь в тупик самореализации. Хотя деньги хорошие зарабатываю.
    Сейчас через силу продолжаю работать, что бы не просесть по финансам, но каждый свободный час я занимаюсь JAVA. Вот это мне нравиться, мозгу интересно, даже когда сплю, мозг продумывает реализацию классов и методов)))) Думаю через полгода уже искать новую работу.
    Так что тут надо найти то что будет интересно, от чего зашевелиться мозг.
    Ответ написан
    8 комментариев
  • Что такое фикстуры и миграции?

    kirillplatonov
    @kirillplatonov
    Ruby on Rails developer
    Миграции необходимы для внесения изменений в структуру базы данных. Это удобно, когда вы работаете в команде, и вам нужно изменить базу данных. Вы описываете в миграциях изменения, которые хотите внести. После этого другой разработчик может просто запустить эту миграцию на своем сервере, и все ваши изменения будут применены к его базе данных.
    Про фикстуры не расскажу. Нет достаточного опыта.
    Ответ написан
    Комментировать
  • Что написать на C++ для тренировки?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    скачиваешь любую книгу "100 задач для программиста" - и делаешь подряд все задачи. тестируешь и пробуешь различные алгоритмы. вам нужно практиковаться не только в самом языке, но и оттачивать алгоритмические навыки и математику в совокупностью с языком программирования.
    также как пример: парсер, любая рекурсивная задачка, какая-нибудь простенькая игра (текстовая, робот какой, тетрис, крестики нолики и прочее), создание какого-нибудь бота...
    Главное для оттачивания еще навыков - чтобы процесс был интересен, чтобы вас он увлек, и тогда каждая трудность будет провоцировать на поиск ее решения (гугл, тостер, интернет...) и опробование этого решения на практике и так шаг за шагом. Кроме маленьких задачек полезно участвовать в более крупных проектах (для вашего уровня - относительно крупных, вы не пугайтесь): даже тот же самый простой парсер можно накручивать и совершенствовать все вновь и вновь добавляя новые функции, который может быть потом превратиться в автоматического интеллектуального робота на основе нейронных сетей и эвристических анализатор-кодов...
    Ответ написан
    Комментировать
  • Что делает команда touch под windows?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Под unix-like операционными системами touch либо обновляет дату последнего изменения файла, либо создает новый пустой файл. Под виндой точно такой команды (из коробки) нет. Создайте этот файл из своего редактора/IDE/файлового менеджера (в проводнике можно создать guplfile.txt и переименовать в gulpfile.js).

    Можно поставить git (все равно понадобится), с ним идет т.н. git bash, в котором есть все или почти все юниксовые утилиты.
    Ответ написан
    3 комментария
  • Как набраться опыта?

    Ptolemy_master
    @Ptolemy_master
    в общем делал все как рекомендуют люди для обучения =)


    А кто так рекомендует?
    Какие именно книги вы читали, по каким технологиям, ПО?
    Самый лучший, надежный и проверенный способ научиться программировать - это программировать. Не видоизменять или переписывать чужой код, а писать свой.
    Как учат программированию в вузах?
    На лекции дают теорию (вы читаете книгу).
    На лабораторных дают задания (это практика). У вас нет лаб, вам нужно найти такую книгу или такой сайт, где были бы задания. То есть где вам, с нуля надо было бы написать код.
    Да, вы будете делать это медленно.
    Да, ничего поначалу не будет работать.
    Да, вы будете без конца лезть в гугл.
    Но когда вы наконец сделаете первое задание, вам будет гораздо легче делать второе, а после второго - третье и так далее.
    (И скажу вам по секрету, в гугл лезут не только новички. )
    Если не хотите делать задания, поставьте себе задачи сами. Но только надо двигаться постепенно, от простого к сложному.
    Скажем, для начала я хочу сделать себе простой статический сайт, мой личный, обо мне.
    Поверьте, вы его сами сделаете, даже если будете проводить в гугле половину времени.
    Потом я хочу добавить на него форму обратной связи.
    Потом форум.
    Потом чат.
    Потом редактор картинок.
    И так далее. Идея понятна?
    Но главное! Не опускать руки, задавать вопросы и все время двигаться вперед.
    Ответ написан
    Комментировать