• Что делать, если очень долгое подключение к SSH?

    hint000
    @hint000
    у админа три руки
    https://bbs.archlinux.org/viewtopic.php?id=277792
    It seems the issue is with the default IPQoS settings...
    Setting
    IPQoS lowdelay
    in ~/.ssh/config solves the issue
    Ответ написан
    3 комментария
  • Выгодно ли заморачиваться с своим хостингом или дешевле купить виртуальный?

    vabka
    @vabka
    Токсичный шарпист
    Что даёт хороший ДЦ:
    1. Резервное питание. Даже если отрубится электроенергия во всём городе - сервера продолжат работать от генераторов
    2. Резервирование интернета - обычно минимум два магистральных провайдера по двум разным линиям. Даже если одну из линий перекопает экскаватор - подключение к интернету останется
    3. Если приобретаешь VPS - тебе не нужно будет заморачиваться из-за железа - инженеры в ДЦ сами будут следить за износом оборудования и будут во время заменять диски. В случае даже если железяка, на которой запущена твоя VPS-ка упадёт - её перемигрируют на другую железку.
    4. Гарантии зафиксированы в договоре
    5. Если тебе нужно будет больше мощности - ты за пару кликов её получишь.

    Если ты будешь малинку дома держать, то:
    1. Не так легко масштабировать
    2. Не так много слоёв резервирования.
    3. Твой домашний интернет-провайдер не даёт таких-же гарантий по доступности, что и на коммерческих тарифах.
    4. Всё может накрыться тупо из-за того что у твоего соседа сверху произошёл потоп.

    Плюсы:
    1. Железо полностью в твоей собственности (в виде малинки)
    2. Вероятно немного дешевле выйдет (хотя с учётом того что новые малинки стоят под 10к рублей - выгода не так уж и очевидна. За эти деньги можно арендовать VPS похожей мощности на пару лет вперёд)
    Ответ написан
    9 комментариев
  • Что делать, если очень долгое подключение к SSH?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    UseDNS на сервере пробовали отключать?
    Ответ написан
    2 комментария
  • Как обойти ошибку 0xc00000e при замене SSD?

    @Drno
    Воспользуйся нормальным софтом.
    Clonezilla или rDriveImage
    Ответ написан
    Комментировать
  • Как реализовать такую функцию?

    Для того, чтобы реализовать функцию автоматического входа пользователя в приложение после активации аккаунта по ссылке, вам нужно выполнить несколько шагов.

    На стороне бэкенда вы должны обрабатывать запросы, поступающие по ссылке активации. Вам необходимо проверить UUID в БД и установить соответствующее значение в поле activated. После этого вы можете перенаправить пользователя на страницу приложения.

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

    Для автоматического входа в приложение после активации аккаунта, вам нужно использовать механизм аутентификации. В зависимости от того, как вы реализуете аутентификацию в вашем приложении, вам может потребоваться отправить запрос на сервер, чтобы проверить, что пользователь успешно прошел аутентификацию, после чего вы можете автоматически перенаправить его на главную страницу приложения.

    В целом, реализация этой функции может быть различной в зависимости от того, как вы организуете логику работы вашего приложения и механизмы аутентификации. Но основными шагами будут обработка запросов на сервере, реализация перенаправления на фронтенде и проверка аутентификации для автоматического входа в приложение.
    Ответ написан
    Комментировать
  • В чем можно хранить около триллиона значений key=>value?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте прикинем объем который понадобится. Что такое триллион?
    Это 12 нулей. Или 1 000 000 000 000 элементов. Какая у нас data-row?
    8 + 64 символов типа ASCII (байт подходит чтоб покрыть все символы).
    Итого 72 байта на строку. Там можно еще поужимать биты в байтах но только
    сложность повышает а большой пользы для дела не дает. Пускай будет ASCII == 1 байт.

    Вобщем такой расчет

    72000000000000 байтов на весь сегмент данных когда таблица загружена.
    Или 65 терабайт. А сколько магнитных блинов надо прикупить? Возьмем популярный магнитный
    Western Digital Purple 10TB 7200rpm 256MB WD102PURZ 3.5" SATA III при цене 290$
    Порядка 7 штук надо. Вобщем готовте котлету денег 290$ * 7 = 2030$

    По поводу DBMS. Да key-value здесь подходит. Можно начинать с LevelDb или RocksDb но у них
    расход дисковой памяти на 1 строчку может быть больше чем я посчитал. Я ведь считал эконом-эконом
    вариант в виде бинарного типизированного файла где все записи строго по 72 байта. Сколько именно
    захватит РоксДб или ЛевлДб - чорт его знает. Вряд-ли документация об этом что-то говорит.
    Но берите 1% датасета. Загружайте
    и аппроксимируйте сколько выйдет после полной прогрузкуи. Это - надежный способ оценки.
    Ответ написан
    12 комментариев
  • Как решить ошибку при установке Ubuntu 18.04?

    smorman
    @smorman
    When In Rome do as The Romans do...
    А почему у тебя Точки монтирования /target?

    Правильно должно быть для EFI - /boot/efi
    Для самой системы - /

    На LVM, что ли?
    Ответ написан
    3 комментария
  • Как решить ошибку при установке Ubuntu 18.04?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Текущая LTS версия 22.0. Зачем автор ставит морально устаревшую?
    Ответ написан
  • Чем меньше символов, пробелов и пропусков в коде, тем лучше?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Неправильно.
    Названия переменных и функций должны быть говорящими, чтобы их назначение сразу было понятно. Урезать названия до пары символов, лишь бы было покороче, - очень плохо.
    По пробелам, пустым строкам, отступам и пр. есть стайлгайды - рекомендации по оформлению кода. Например, PSR-1 и PSR-12 для PHP, Google Style Guide и Airbnb Style Guide для JS. В компании может быть принят и какой-то свой стайлгайд.
    Ответ написан
    Комментировать
  • Чем меньше символов, пробелов и пропусков в коде, тем лучше?

    Не правильно.

    Код должен быть читаем и понятен человеку. Причем, не только автору, но и «злому маньяку тим-лиду, который вооружен и знает, где вы живёте», как говорится в шутке программистов.
    Для этого пустые строки между блоками кода бывают полезны. Как и комментарии, и длинные осмысленные наименования переменных и фукций.
    Компилятор потом всё равно всё перелопатит по-своему в ацкие бинарные инструкции )

    Как форматировать код — договариваются. Есть общепринятые стандарты форматирования кода (coding style). Например, стандартный для PHP. Или принятый в компании AirBnB для JavaScript.

    Хороший-удобный редактор кода всегда подскажет, где накосячили со стилем вашего кода, почему, и как исправить.
    Ответ написан
    Комментировать
  • Какой ИБП выбрать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Максимально ваш компьютер вместе с монитором потребляют до 200Вт. (Процессор - 65Вт, видеокарта - 60Вт, монитор - 25Вт, прочая периферия ещё до 50Вт).
    Вбиваем значение в калькулятор, получаем модели ИБП и ориентировочное время на такой мощности. Если снизить мощность (выйти из игры), то потребление упадёт и время увеличится.
    Аналогичные калькуляторы есть и у других производителей, например у APC.
    Ответ написан
    Комментировать
  • Как сделать аутентификацию исключительно через SSH ключ?

    vabka
    @vabka
    Токсичный шарпист
    Нет.
    А в чём собственно безопасность? Токен можно выпустить только если залогиниться в твой аккаунт на сайте.
    Если злоумышленник в него залогинился - он легко может добавить свой SSH ключ или вообще коммитить через UI.
    Ответ написан
  • Какую key-value БД использовать с данными в 10 млрд строк записей?

    @rPman
    Ответ зависит от требований к данным и особенностей записи, многопользовательская или нет (транзакции на запись - сильно выставляет требования к ресурсам), есть ли модификация данных (очень важный момент роняющий производительность в зависимости, правда если данные фиксированного размера то возможно не сильно), виды запросов на поиск и аналитику, (кому то нужны поиск по значению, а кому то сравнения больше/меньше, поиск min/max и сортировки, кому то нужны группировки по значению в индексе и многое другое), наличие упорядоченных данных (когда данные записываются последовательно и в запросах часто фигурирует выгрузка данных на интервале).

    Отличный пример - числовое ключевое поле с монотонным ростом без пропусков позволяет использовать самый простой индексный файл где значение ключевого поля это смещение слова (например 4 байта) в индексном файле, а эти слова - это смещение в файле данных (например номер кластера фс, данные выровнены по нему). Файл данных это тупая последовательность размер+данные без разделителя.

    Достоинства - максимальная из возможных производительность (файл данных и индексный файл могут храниться без файловой системы прямо в блочных устройствах), буквально 2 запроса на запись/поиск (при использовании файловых систем операций будет в несколько раз больше), ни одна универсальная база данных не даст такой. Кода - строк 20-30 на любом языке программирования, красиво можно пользоваться memory mapped files (они дают самую быструю работу с файлами и удобную под задачу). Данные пишутся линейно на диск (оптимально для hdd, само собой если не одновременно с чтением), большинство файловых и операционных систем поддерживают sparce файлы (будут накладные расходы, но константа), это значит можно с некоторыми оговорками пользоваться большими пропусками в порядке индексов (дырка в файле вернет нули, на диске храниться не будет).

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

    Пример - временной ряд, в секунду происходят тысячи событий, хранить группами по секунде, т.е. ключевое поле для индекса - это timestamp-стартовое время файла, при среднем размере информации о событии в 100байт и 4 тысячи событий в секунду, на 3терабайтовый диск hdd индексы будут порядка 30 мегабайт, что прекрасно влезает в оперативную память. У меня самый дешевый toshiba3тб выдавал 60 req/sec случайных запросов (как в синтетических бенчмарках), при этом запрашивать можно было сразу большими интервалами, что роняло скорость максимум в 2-3 раза, пока данные влезали на дорожку (в зависимости от расположения там по разному). Последовательное чтение данных само собой работало на максимуме скорости диска в 150-200мб/с.
    p.s. от такой модели отказался за ненадобностью, данные хорошо упаковывались большими блоками (в 10 раз), храню теперь просто в архивах большими блоками по несколько часов, на время работы нужные данные переливаются во временные файлы.

    Помню тут на хабре была статья где человек залил в mssql миллионы записей, и радовался секундам на запрос (правда там хеши но это не так важно, для них тоже есть решения)
    Ответ написан
    2 комментария
  • Ошибка с Git, что случилось?

    vabka
    @vabka
    Токсичный шарпист
    1. Генерируешь ключ. Для этого в консоли надо ввести
    ssh-keygen -t ed25519
    На вопросы всегда отвечай ентером, ничего не пиши. (Но лучше всё-таки написать пароль, чтобы приватный ключ не лежал в открытом виде)
    6064a4dd0cc01593209113.png
    2. Потом пиши консоли
    cat ~\.ssh\id_ed25519.pub
    Вывод этой команды копируй и иди на гитхаб.
    6064a56e4e389328241008.png
    3. На гитхабе иди в настройки:
    жмёшь на свою аватарку справа вверху и потом выбирай пункт settings в выпадающем меню
    Потом выбираешь раздел SSH and GPG Keys
    Создаёшь новый SSH Key
    6064a5ac5e236897883208.png
    В название пиши что хочешь
    В тело вставляй то, что скопировал ранее.
    6064a60e7d605276301726.png
    4. Профит
    Ответ написан
    3 комментария
  • Какую key-value БД использовать с данными в 10 млрд строк записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько мыслей.

    1) У меня устойчивое дежа-вю. Периодически в топик заходят люди с именно этим вопросом. Разница только в количестве. Кому 1 млрд. Кому 10. Можно также поискать и слинковать эти вопросы в один большой вопрос.

    2) MySQL который указан в тегах - нормально справляется с этой задачей. Он и не такое число строк
    умеет хранить. И если взять MariaDb - там есть куча новых engines которые можно крутить для тюнинга
    именно скорости чтения. Разумеется жертвуя чем-то другим. Транзакциями и записью например.

    3) Непонятно что такое минимальное время? Если использовать дисковую БД типа MySQL то деградация времени
    поиска будет примерно зависеть от логарифма количества строк. Тоесть деградация будет но очень медленно.
    Для 10 млрд индекс по key будет содержать порядка 4-5 уровней BTree дерева. Тоесть дисковой системе
    нужно будет сделать до 5 или до 6 рандомных чтений (если нужные данные лежат в таблице). Это достаточно
    быстро для того чтобы моргнуть глазом за это время. Рандомное чтение любого блока из магнитного диска
    класса SATA-3 занимает порядка 20 милисекунд. Тоесть для 5 уровней - это 100 милисекунд. Для дисков
    класса SSD и это время можно уже считать меньше милисекунды. Точно я не знаю надо мерять.

    Испортить это время может сетевой лаг который в данной задаче мы просто не учитываем. Считаем что сеть идеальна.

    4) Непонятно зачем здесь указан Redis. Его задача не хранить 10 млрд а хранить только горячие
    ключи по котороым идет очень частый доступ. Если автор хочет In-memory хранение - то время можно
    еще сильнее улучшить. Его можно свести практически до нуля (я вангую несколько микро-секунд)
    но придется прикупить планок памяти побольше и посчитать сколько памяти
    надо для 10 млрд key/values неизвестной длины. Вообще крутить регулятор в направлении
    микро-секунд нет особого смысла т.к. другие звенья вашего стека (приложение и сеть) могут
    быть на порядки медленнее а это вообще нивелирует всю пользу от такой оптимизации.
    Ответ написан
    41 комментарий
  • Что нужно для авторизации через Google?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    "Sign in with google" реализуется при помощи OIDC:
    В документации есть ссылки и на стандарт, как это работает, и что примерно нужно сделать у себя в приложении, чтобы это заработало.
    https://developers.google.com/identity/openid-conn...

    Кстати, если ты такую кнопку добавляешь у себя в приложение на яблоке, то ты также будешь обязан сделать "Sign in with apple"
    https://developer.apple.com/sign-in-with-apple/get...

    Но на яблоке вроде для игр есть какой-то свой API, так что ты вполне можешь на Android использовать Google Play Games, а на яблоке - яблочное.
    Ответ написан
    3 комментария
  • Как в Google Chrome убрать ya.ru при открытии новой вкладки?

    Cheery
    @Cheery
    Можешь воспользоваться расширениями для новой вкладки.
    Сделать пустую страницу: https://chrome.google.com/webstore/detail/blank-ne...
    Задать свою ссылку для перенаправления при открытии: https://chrome.google.com/webstore/detail/new-tab-...

    К слову, почему у тебя на новом скрине не выбрано "новая вкладка"?
    Ответ написан
    Комментировать
  • Как сделать свою сборку Windows 7 с нужными обновлениями?

    @rPman
    ntlite
    позволяет вручную указать список обновлений, которые нужно интегрировать в установочный образ (а так же драйвера и кучу настроек таких как тип запуска служб), работает с файлами, скопированными с cdrom/iso, обратно записывать любым соответствующим приложением (можно сделать загрузочную флешку и прямо на ней обновлять, но быстрее скопировать на ssd диск)

    поддерживает кажется даже winxp, но вот возможность загрузить обновления с офф сайта хз (для win7 в этом году еще работало)
    Ответ написан
    3 комментария
  • Как сопротивление может влиять на напряжение?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А мне нравится другая метафора.
    Представьте, что у вас в школе есть длинный коридор (это проводник).
    Коридор полон слоняющихся в нём туда-сюда школьников (это электроны). В среднем в коридоре ток равен нулю.
    Вдруг (прозвенел звонок) и в коридор с одного конца стали ломиться новые школьники, движимые желанием идти нахрен подальще от класса (минус "батарейки"). Напор школьников - это потенциал. Он разный в начале и в конце коридора.
    Школьники давят с одного конца, а второй конц коридора открыт на улицу (плюс).

    Разница потенциалов (напоров) между началом и концом коридора - это напряжение.
    Представьте, что перед звонком в коридоре хаотично расставили стулья.
    Стулья мешают - это сопротивление. Школьники спотыкаются, ломают стулья, накаляют обстановочку (часть энергии желания школьников погулять тратится на это).
    Чем больше стульев, тем больше разница давления школьников между началом и концом коридора.

    Это был закон Ома для участка цепи.
    На примере школьников проще объяснять, чем на примере гидравлики. Так можно рассказать и про полупроводники, транзисторы, правило Кирхгофа... да что угодно.
    Ответ написан
    16 комментариев
  • Сложный и интересный проект для новичка?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    ## Анонимный чат с темами для обсуждения деликатных офисных проблем
    Иногда хочется обсудить что-то с коллегами в офисе, но не хочется смущать их или показывать лишнюю инициативу.
    Например кто-то не смывает в туалете или слишком громко орёт и сам того не замечает. Может быть кто-то слишком интенсивно пользуется парфюмом.
    - Анонимность
    - Постоянная ссылка на чат, тему или дерево чатов
    - ссылки в виде QR-кодов
    - голосовалка
    - закрепленные посты

    ## Сайт checklist
    Веб-сервис и мобильное приложение для краудсорсинга чеклистов для всего: зарегать ИП, получить визу, что делать при ДТП, как влезть в ипотеку, как вылезть из неё, чем заняться с ребенком на выходных (N-ле

    - Коллекция чек-листов снабженных тегами, доступная для краудсорсинга.
    - Краудфандинг составления и поддержки нового листа.
    - Фильтрация чек-листов.
    - Фильтрация пунктов.
    - Тегирование пунктов.
    - Графовые алгоритм обхода чек-листа.
    - Мастер обхода чек-листа.
    - Отчет по чек-листу.
    - Вложенные чеклисты, гиперссылки между разными листами.
    - Параметризация.
    - Экспертная система, логические связи (расширенный режим).

    Примеры:
    - Что делать при ДТП
    - Открыть ИП
    - Осмотр авто при покупке (подветки для разных конкретных моделей)
    - Первая помощь при...
    - Диагностика инсульта
    - Зомби-акопалипсис: как приготовиться
    - Атомный взрыв неподалёку - что делать
    - Планетарная катастрофа - как выживать
    - Поход выходного дня - что взять
    - Подготовка авто к поездке
    - Путешествие: Алжир (виза, прививки, документы, отели, транспорт)
    - Как влезть в ипотеку
    - Как вылезть из ипотеки
    - Как быстро заработать (во все тяжкие)
    - Покупка квартиры (на что обратить внимание)
    - Самостоятельное строительство дома (общий план)
    - Чем заняться с ребёнком N-лет
    - Как отметить новый год
    - Что интересного в районе <пос. Майский>
    - Номера телефонов и документы в автомобиле

    ## Эротический краудфандинг
    Интернет ресурс, где девушки могут делать крауд-фандинговые кампании

    - Крауд-фандинговая кампания по сбору средств на проект
    - оформление проекта (доказательство личности в виде фото с сигном, некое обещание, порог недовольных результатом, целевая сумма)
    - посетители анонимно финансируют проект в биткоинах
    - если кол-во лайков среди профинансировавших (в соответствии с весами) > порогового, учредитель получает сумму за вычетом комиссии
    - если кол-во лайков не превысило порог, сумма возвращается обратно инвесторам

    ## Простой открытый сервис для обмена сообщениями
    - HTTP API, Web-sockets
    - p2p rtsp
    - опциональное end-to-end шифрование
    - хранение истории на клиентах
    - возможность использования нескольких серверов
    - возможность использования альтруистичных клиентов для проксирования трафика p2p
    - поиск узлов на основе блокчейн технологий и DHT таблиц

    ## Онлайн-журнал путешествия
    - публикация трека в реальном времени
    - комментарии путешественника и фолловеров
    - стримы (аудио, видео, фото)
    - отложенная загрузка
    - журнал(расходы, чек-поинты, расписания, цены, погода)
    - FAQ
    - голосовалка

    ## Поэтический онлайн редактор
    - выбор стопа, стиля и жанра
    - шаблон с плейсхолдерами, разбивающий текст на слоги
    - облако рифм
    - подражающий автогенератор
    - многосегментный словарный банк (дифференциально-слоистая древовидная структура, своя специфика в верхнем слое, поэлементное ранжирование сегментов)
    - тезаурус
    - словарь сочаетаемости
    - N-граммы поэзии по авторам и стилям
    - корпус поэзии
    Ответ написан
    13 комментариев