• Не запускается компьютер после простоя: чёрный экран, вой кулера видюхи. В чём проблема?

    nava2002
    @nava2002
    Инженер
    По шагам:
    1. Зайти в БИОС. Увидеть изображение и поклацать клавиатурой и мышкой. Видим жёсткий диск.
    Если зашли значит: Память целая. Мать целая (наверно). Видеокарта рабочая (наверно). Диск жесткий есть.
    Это уже будет хорошо.
    2. Дальше начинаем с ОС работать: ОС НЕ запускается.
    Сразу хочу предположить что диск SSD.
    Если так, то SSD страдают "склерозом" при долгом простое.
    Переустанавливаем ОС.
    Если переустановка прошла успешно - Все супер получилась!
    Если НЕ прошла Диску "капут". Меняем диск.
    Ответ написан
    4 комментария
  • Как правильно построить взаимодействие своей "внутренней" базы товаров с движком интернет-магазина?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Значит имеет место некий pipeline который работает в 3 фазы.

    1) Скачивание из гугло-таблиц в файлы. Здесь я предполагаю что у нас есть full-structured данные xlsx
    Тоесть таблицы и фиксированная шапка.

    2) Конверсия xlsx-csv. Ну здесь как-бы все понятно. Это можно сделать локально уже без веба.

    3) Загрузка (или merge) данных из CSV в реляционную базу данных.

    Мне кажется что интересно обсуждать только пункт (3). Потому что первый и второй - это просто задачи скачивания и конверсии без изменений. Задача чисто техническая и любой "школьник-парсильщик" это делает.
    Чисто утилитарная задача.

    Обсуждать одновременно сразу 3 пункта - это безсмысленный флуд. Слишком много неизвестных. Поэтому лучше вот в таком вот виде когда контракт понятен.

    Если в какой-то момент (например фазы 1-2) схема может быть изменена или сломана - то это надо тоже обсуждать как ветки алгоритма загрузки. Как грузить.

    Что делать если новая колонка зашла?
    Что делать если колонка изменила тип? Был int. Стал - string.
    Что делать если колонка дропнулась? Удалять ли в БД.
    Что делать если schema evolution нарушается. Был string, и пошел int. Это сужает возможности загрузки.

    Вот эти все вопросы надо ответить до разработки.

    UPD:
    Ответ написан
    4 комментария
  • Как правильно построить взаимодействие своей "внутренней" базы товаров с движком интернет-магазина?

    @mletov
    Проблема тут не столько программистская, сколько организационная.
    И главный ключевой вопрос тут в том: на какие трудозатраты со своей стороны готов владелец бизнеса.

    Когда каталог обновляется, он экспортит эти таблицы в xlsx и присылает мне -> я выгружаю из движка интернет-магазина текущий каталог в csv -> загоняю в Excel, вручную правлю -> загружаю назад.


    Вот это, с точки зрения автоматизации, никуда не годится. И логично посадить девочку, которая будет через веб-интерфейс вбивать товары в базу прямо в админку магазина. А уже из одного магазина можно полностью или частично экспортировать товары в другой, особенно, если это Битрикс какой-нибудь, в котором уже есть готовый XML формат. Или часть экспортировать, часть забить руками через админку другого магазина. В общем, варианты и простор для творчества есть.

    Но может владелец бизнеса эту эксельку еще где-то использует или просто принципиально не готов менять подходы со своей стороны, осваивать веб-интерфейс не захочет, "я всю жизнь через Excel делал, переучиваться не хочу".

    Еще есть вариант, что эту Excel заказчик формирует из 1C, тогда логично разобраться с импортом из него прямо в базу магазинов.

    В общем, я бы поговорил с заказчиком, обсудил варианты и выяснил возможности.
    Ответ написан
    1 комментарий
  • Как правильно построить взаимодействие своей "внутренней" базы товаров с движком интернет-магазина?

    @quad69
    Думается, что должно быть так: товары хранятся не в таблицах, а в единой БД. Когда владелец бизнеса что-то там меняет, эти изменения автоматически распространяются в каталоги интернет-магазинов.
    Как такое делают?


    А в чём сложность? Ставите тот же Mysql, складываете в него товары, потом подключаетесь, берёте данные и выводите.
    Ответ написан
  • Взаимодействие уровней сетевых моделей?

    hint000
    @hint000
    у админа три руки
    что конкретно означает "стучится вниз/вверх"? Ищет службу, которая может обслужить подобный запрос, и связывается с ней через некоторый интерфейс межпроцессного взаимодействия?
    Часть имплементации сетевого стека содержится в ядре операционной системы, часть - в драйвере сетевого адаптера, часть - в железе сетевого адаптера. Некоторые протоколы вынесены в службы\демоны (ppp, pptp, openvpn,..). Протоколы 6-го и 7-го уровня реализуются либо в службах, либо в прикладных программах.
    Например, браузер. Вот мы ввели qna.habr.com, браузер хочет открыть HTTP соединение. Он формирует набор данных для передачи, затем стучится вниз, на уровень TCP, и говорит: "вот у меня пачка данных, передай их серверу на таком-то адресе".
    Браузер сначала на уровне API операционной системы обращается к резолверу (клиенту DNS), резолвер (сперва проверив свой кэш) берёт адрес DNS-сервера из настроек ОС и стучится на порт 53/UDP с запросом, а не "ищет службу". Получает ответ и передаёт его браузеру. Браузер запоминает IP-адрес хоста qna.habr.com и снова через API операционной системы говорит "хочу установить соединение с хостом, адрес такой-то, порт 443/TCP". ОС устанавливает соединение, сообщает об этом браузеру и передаёт какой-то там хэндлер, через который можно использовать уже готовое TCP-соединение. Дальше браузер просто заливает свои данные в соединение, и читает оттуда же ответы. Более высокий уровень - протокол 7-го уровня http - браузер реализует самостоятельно, вот прямо самостоятельно, никого ни о чём не просит, когда дело в http. Более низкие уровни - как уже сказал, на совести ОС, драйвера, железа. Чтобы обеспечить высокую эффективность, там взаимодействие довольно низкоуровневое, такая каша, что не только в рамках ответа, а даже в рамках статьи не описать, целая книга нужна, а то и не одна. Причём для каждой ОС своя отдельная книга, в Linux сетевой стек будет отличаться от сетевого стека Windows, сетевого стека MacOS, сетевого стека BSD.
    Ответ написан
    2 комментария
  • Взаимодействие уровней сетевых моделей?

    @res2001
    Developer, ex-admin
    Взаимодействие между уровнями - это детали реализации.
    Тот же TCP/IP можно реализовать очень по разному с разными интерфейсами для прикладного приложения.
    Наиболее распространенное сейчас сетевое API это Berkeley Sockets (или просто сокеты). Сокеты реализуют в т.ч. и взаимодействие по TCP/IP. Есть и другие сетевые API, например TLI, но я никогда в реальности не встречал его использования.
    Сетевое API - это то с помощью чего прикладной программист использует сеть. Внутри тех же сокетов есть свои интерфейсы для передачи между сетевыми уровнями.
    Ответ написан
    2 комментария
  • Взаимодействие уровней сетевых моделей?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    На примере письма

    Вы пишете письмо- прикладной уровень
    Либо электронное либо бумажное протокольный уровень
    Его доставляют либо по земле либо по воздуху либо по энтернету это уже физика
    На каждом уровне лепят марку от кого и куда

    Когда идёт в обратную эти марки снимают и вы получаете ответ в итоге ваше письмо выглядит так в идеале

    7654321234567
    Ответ написан
    5 комментариев
  • Взаимодействие уровней сетевых моделей?

    Никто никуда не стучится.
    Просто "открытие http соединения" подразумевает собой открытие TCP.
    Открытие TCP подразумевает, что сетевая карта будет отправлять IP-датаграммы и так далее.
    Ответ написан
    8 комментариев
  • Взаимодействие уровней сетевых моделей?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    А что ты уже читал хотябы в википедии?

    Ну вот например протокол низкого уровня - мы по кабелю пересылаем данные при помощи дискретного сигнала. Это же явно уровень ниже, чем HTTP
    или вместо кабеля на каком-то этапе нам нужно перейти на wifi, и передавать данные уже радиоволной, со своими особенностями, синхронизацией сигнала, отвержением отраженных повторений.

    Разные уровни могут работать по-разному, для этого читается их спецификация.
    Стандартизация была введена для того, чтобы можно было придумать свою реализацию чего-либо, и внедрить в остальной стек так, чтобы выше/нижележащие протоколы продолжали работать как работали.
    Ответ написан
    5 комментариев
  • Произвольная папка для облачной синхронизации на Android?

    DamianLewis
    @DamianLewis
    Если Вы НЕ имеете ввиду синхру, где вы печатаете текст и буквы сразу появляются на другом устройстве, то я бы рекомендовал воспользоваться Syncthing
    Кросплатформенная программа. Можете добавить любые папки как на компе, так и на Android. Есть версирование файлов. Если где-то ошиблись, можете восстановить старую версию документа. Если устройства подключены к одной сети (wi-fi или локальной), то можете передавать файлы не используя интернет. Документы можете редактировать обычным офисом как компе, так и на android. Очень классная программа.
    Ответ написан
    1 комментарий