Задать вопрос
  • Как принимать деньги от физиков и передавать их другим людям онлайн без юрлица или ИП?

    vabka
    @vabka Куратор тега Веб-разработка
    1. Юридическое лицо обязательно придется завести

    2. Налоговая в любом случае увидит тут признаки дохода и ты будешь обязан взимать НДФЛ с исполнителей, как налоговый агент.
    Вот и требование отчитываться в налоговую.
    Вот тебе, получается, нужно узнавать полные данные и ИНН исполнителей.
    Вот и закон о персональных данных кокетливо машет рукой, а РКН ждёт от тебя стопку бумаг о том, как ты с этими ПД работаешь и как защищаешь. Очень возможно, что придётся ещё потратиться, чтобы всем требованиям соответствовать.

    3. А ещё тут очень легко можно попасть на отмывание денег. Возможно, для того что ты хочешь сделать, нужно ещё получать лицензию. Стоит проконсультироваться с юристом по поводу того, какой у тебя ОКВЭД тут будет.

    4. Учитывая это - я хз как ты собираешься не получать с этого прибыль. Ибо только на то чтобы запустить такой сервис и чтобы он работал придется немало денег вложить и регулярно тратить.

    Без юридического лица можно попробовать крипту, но тут тоже есть нюансы, начиная опять же с комиссий(говорят есть варианты с небольшой комиссией) и волатильности (по идее есть стейблкоины, но и они умеют обваливаться), заканчивая серым статусом, зато всего остального получится избежать.
    Ответ написан
    14 комментариев
  • Можно ли увеличить скорость wi-fi, если она ограничена тарифом?

    @Drno
    Внутри локальной сети - да, будет работать передача данных со скоростью вифи \ роутера
    Во "внешний мир" - ограничение провайдера
    Ответ написан
    Комментировать
  • Можно ли увеличить скорость wi-fi, если она ограничена тарифом?

    @default_route
    Возможно ли обойти это

    Нет
    или всё зависит от проведённого интернет-кабеля?

    Всё зависит от шейперов/полисеров провайдера
    Ответ написан
    Комментировать
  • Что не так? Почему возникает ошибка? Что надо исправить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Зачем объявлять enum, если им не пользоваться?
    - status: "published"
    + status: QuestionStatus.PUBLISHED
    Ответ написан
    Комментировать
  • Почему выдается неправильный результат при операциях c long int в Си?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Проблема в выводе. Вы пытаетесь вывести переменную unsigned long long через спецификатор "%d". Надо использовать "%llu" какой-нибудь.
    Ответ написан
    Комментировать
  • Может ли соединение между 2 серверами на Linux быть одновременно и локальной сетью и мостом?

    Afranius
    @Afranius
    Из говорящих дольше живут те, что говорят меньше.
    А зачем такие извращения? Кабель от провайдера в свитч, а от свитча на оба компа.
    И устанавливай PPPoE - соединение по очереди хоть с первого, хоть со второго (если только пров привязку по маку не делает). Потому что одновременно с обоих PPPoE работать не будет.

    Вообще задача не понятна. Если первый комп настроен как шлюз, то при наличии локальной сети и поднятом PPPoE интернет и так будет на обоих. Зачем нужна другая сессия?
    Ответ написан
    1 комментарий
  • Как правильно работать с гит, если у тебя 2 фронтендера?

    xez
    @xez
    TL Junior Roo
    Каждый пусть создаст свою ветку и в ней делает что хочет.
    Когда разработка будет готова - нужно будет создать pull request (merge request), пройти ревью и залить уже свою ветку в мастер.
    Т.о. никто никому мешать не будет, возможные конфликты будут решаться перед мержем.
    Ответ написан
    Комментировать
  • Как правильно работать с гит, если у тебя 2 фронтендера?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git — это система контроля версий, которая помогает работать над проектами параллельно, не мешая друг другу. А то, что вы называете «залить на гит», скорее всего, значит «отправить изменения на GitHub» (или другую платформу). Эти понятия важно различать.

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

    Что касается описаний изменений. Ваш друг прав: нужно объяснять, что сделано, но вручную перечислять каждую строку не требуется. Git сам показывает разницу между версиями, а платформы вроде GitHub делают это наглядно.

    Вам стоит пройти курс по основам Git, чтобы понять, как он работает, зачем нужны ветки и как решать конфликты. Тогда таких споров не будет, и работа пойдёт быстрее.
    Ответ написан
    Комментировать
  • Как задать переменной тип с данными в зависимости от условия?

    @historydev
    Mistkerl, drück den Knopf.
    if else должен возвращать один тип.
    - Ты не можешь указать динамический тип переменной user.

    Оборачивай свои структуры в перечисление:
    enum UserRes {
    Res(Res),
    User(User),
    ErrServ(ErrServ)
    }
    
    let user = if a == b { UserRes::Res(Res { / * ... */ }); } else { UserRes::User(User { /* ... */ }); };
    Ответ написан
    Комментировать
  • Как создать комнату в браузерной игре?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Без бэкенда тут не обойтись. Знаете python? Если нет, стоит подучить. Если да, то знаете ли какой-нибудь фреймворк, типа Flask/Django? Если не знаете, то опять же стоит освоить. Без этого по-нормальному вы ничего не напишите.
    На flask простейший пример будет выглядеть примерно так

    from flask import Flask, redirect, url_for, request
    import random
    import string
    
    app = Flask(__name__)
    
    rooms = {} # здесь будем хранить комнаты и игроков, которые к ним подключились
    
    def generate_room_code(): # функция генерация id комнаты
        return ''.join(random.choices(string.ascii_uppercase, k=4))
    
    @app.route('/')
    def index(): # тут делаем стартовую страницу. Сейчас это зашито прямо в скрипт, но можно возвращать файл
        return '''
        <!doctype html>
        <html>
            <head>
                <title>Новая игра</title>
            </head>
            <body>
                <h1>Добро пожаловать!</h1>
                <a href="/start">Начать новую игру</a>
            </body>
        </html>
        '''
    
    @app.route('/start')
    def start(): # это будет выполняться после нажатия на ссылку "Начать игру"
        room_code = generate_room_code()
        rooms[room_code] = [] # тут добавляем id комнаты. Список пустой, т. к. игроков ещё нет
        return redirect(url_for('waiting_room', room_code=room_code)) # перенаправляем пользователя в комнату
    
    @app.route('/waiting/<room_code>')
    def waiting_room(room_code): # тут делаем комнату.
        if room_code not in rooms:
            return "Not found", 404 # если нет такой комнаты
        return f'''
        <!doctype html>
        <html>
            <head>
                <title>Комната</title>
            </head>
            <body>
                <h1>Комната {room_code}</h1>
                <form action="/join" method="post">
                    <input type="hidden" name="room_code" value="{room_code}">
                    <input type="text" name="player_name" placeholder="Имя">
                    <button type="submit">Присоединиться</button>
                </form>
                <h2>Игроки:</h2>
                <ul>
                    {''.join([f'<li>{player}</li>' for player in rooms[room_code]])}
                </ul>
            </body>
        </html>
        '''
    
    @app.route('/join', methods=['POST'])
    def join_room(): # обрабатываем запрос на присоединение
        room_code = request.form['room_code']
        player_name = request.form['player_name']
        if room_code in rooms:
            # добавляем игрока и перенаправляем его обратно
            rooms[room_code].append(player_name)
            return redirect(url_for('waiting_room', room_code=room_code))
        return "Not found", 404
    
    if __name__ == '__main__':
        app.run(debug=True)
    Это, конечно, просто пример, для того, чтобы вы понимали, как это выглядит

    ИМХО Flask или Bottle (вообще изи) для вас самое лучшее, если вы пока не в теме. Django для новичков не подходит. Ну и конечно, думайте, точно ли вам нужен python
    Ответ написан
    2 комментария
  • Есть что то проще чем php?

    Если без динамики, то Pug - отличный шаблонизатор
    Ответ написан
    Комментировать
  • Что будет с пингом, если между пк и роутером, добавить второй роутер?

    GavriKos
    @GavriKos
    Ну чуть чуть кнчн увеличится пинг - потому что роутеру надо будет как то пакеты обработать. Но скорее всего даже в тестах вы это не заметите. Если кнчн роутер нормальный.
    Ответ написан
    4 комментария
  • Почему сорт не работает?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    я что то не до понимаю?
    Ага

    console.log(obj.sort((a, b) => a.title.localeCompare(b.title)));
    Ответ написан
    1 комментарий
  • Существуют ли эталонно красиво написанные программы?

    @res2001
    Developer, ex-admin
    Код должен решать определенную задачу. Читать абстрактный код без понимания сути решаемой им задачи - бессмысленное занятие. Т.е. вы должны сначала вникнуть в задачу и хотя бы в черне представить как бы вы ее решали. В этом случае, читая код, уже можно оценивать те приемы, которые там применены.
    У меня сложилась такая практика: когда мне требуется использовать библиотеку, в которой реализован нужный мне функционал (т.е. я изначально уже знаю какую задачу должна решать библиотека), я сначала читаю обзорно документацию на нее, потом лезу в исходники и смотрю как оно там все устроено. Некоторые библиотеки после такого анализа отбраковываются, из других можно вынести для себя что-то полезное, но в любом случае начинаешь лучше понимать как работает библиотека.
    На изучение кода толстых библиотек может уйти много времени, поэтому смотрю только какую-то небольшую часть, которая нужна в данном конкретном случае.
    Многие просмотренные мной библиотеки написаны не плохо с моей точки зрения, но на сколько они "эталонно красивы" судить не берусь.
    В целом считаю, что читать чужой код - полезный навык. Но все таки умение программировать самому еще более полезный. Поэтому надо правильно расставить приоритеты.
    Ответ написан
    Комментировать
  • Существуют ли эталонно красиво написанные программы?

    @Everything_is_bad
    Беда в том, что довольно трудно найти хорошо написанный код, который можно было обозреть целиком.
    бесполезное занятие, больше похоже на прокрастинацию, короче пока сам не начнешь понимать какой код "красивый", какой нет (а это только когда сам напишешь кучу кода), толку от рассматривания не будет.
    Ответ написан
    Комментировать
  • Как перезаписать переменную по нажатию кнопки в sass?

    inkShio
    @inkShio
    :root {
      --primary-color: #f9f9f9;
      --text-color: #424242;
    }
    
    :root.dark-mode {
      --primary-color: #161625;
      --text-color: #e1e1ff;
    }
    
    body {
      background: var(--primary-color);
      color: var(--text-color);
    }

    Ну и на js напишешь, что бы при нажатии на кнопку добавлялся класс dark-mode к html.
    Ответ написан
    Комментировать
  • Как теперь запустить Linux на внешнем SSD?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Винда при переустановке сбросила данные в EFI - она так постоянно делает. Можно шаманить с виндовыми EFI-менеджерами, но проще загрузиться с любого дистриба линуха и прогнать grub-install, указывая нужные устройства, даже если граб стоит уже. Главное, что сделает grub-install - восстановит запись в EFI, указывающую на него. Можно, конечно и вручную через efibootmgr пошаманить, но grub-install проще.
    Ответ написан
    3 комментария
  • Как теперь запустить Linux на внешнем SSD?

    @rPman
    Если используется EFI то по стандарту разработчиков материнских плат не обязали давать такую возможность из биоса, т.е. нужно прописать в биосе (это можно сделать из linux с помощью efibootmgr) какая еще ОС у тебя на машине доступна.

    Исключение сделали для removable drives но трактовать что есть что оставили за производителем материнки (обычно это работает только для usb flash и cdrom, но не для внешних sata/nvme контроллеров).

    Все автоматически может сделать grub-install, достаточно загрузиться с liveusb любой linux (настоятельно рекомендую тот же что установлен, как минимум аритектура та же), смонтировать корневую и boot в какой-нибудь каталог, например /mnt (если там отдельно есть /boot и /boot/efi то их тоже смонтировать соответственно в /mnt/boot и /mnt/boot/efi), удостовериться что sdX это диск с linux и сделать
    grub-install /dev/sdX --root-directory=/mnt

    p.s. для legacy mbr режима достаточно было бы выбрать диск из BIOS но многие контроллеры в биосе не доступны, потому что драйверов нет.

    p.p.s. совмещать загрузчик linux и windows на одном диске чревато его удалением (inux загрузчика) windows при очередном обновлении, это уже происходило, поэтому если с драйверами проблема, то устанавливают grub на маленький носитель, с которого загрузка работает, типа миниатюрный usb flash или карту памяти (например многие ноутбуки имеют картридер)
    Ответ написан
    2 комментария
  • Из-за чего программа C++ на amd работает быстрее чем на intel?

    @Zerg89
    Есть два варианта, то что вы не использовали в коде не значит что компилятор не использовал оптимизацию под платформу по которую был собран код, для чистоты эксперимента пробуйте пересобрать проект с процом под которым будете тестировать
    Второй вариант до банального простой, частота процессора в однопотоке при турбо-бусте процы амд в большинстве случев имеют большую частоту на ядро
    Ps и ещё одно вспомнить о p и e ядрах в интелле да и арм(м1,м2) тоже вроде гибриды с разными ядрами в проце
    Ответ написан
    Комментировать
  • Что лучше юзать для восстановления системы BTRFS или RSYNC на Linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Ох, это "импортозамещение".
    Вы неправильно подходите к "поставленной задаче"!
    Ее нужно исполнять, думать тут нечего. Ставьте! Разберетесь потом!

    Я бы предложил вместо RedOS ставить DeepStupidOS....

    Ну а теперь по делу.
    Чтобы что-то восстановить нужно сначала подумать - как это делать (стоп! думать?! отставить!).
    А делать это можно разными способами:
    - первичной установкой ОС, а затем накатыванием бекапа
    - полным восстановлением системы из бекапов
    - восстановлением системы из снапшота файловой системы...

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

    Я рекомендую "первичной установкой ОС, а затем накатыванием бекапа" с использованием restic/borg/bareos/urbackup (далее везде). Конкретная система бекапов подбирается из кучи факторов и умения работать с конкретной из них (даже clonezilla, которая тоже очень хороша). Мне нравятся restic/borg/urbackup, но и bacula себя отлично показывает на парке серверов в ~100 штук.

    ЗЫ. Сколько же анекдотов хороших на тему "поставленной задачи" вспомнилось...
    "копать отсюда и до заката", "поезд! стой! раз, два", "думать не нужно, за нас подумали"....

    PSS. Кстати, подозреваю, что бекапами и восстановлением Вы совсем никогда-никогда не занимались. Ибо, что в линуксах, что в юниксах, что в уиндоуз - все задачи решаются примерно одинаково и очень похожими инструментами.
    Ответ написан
    2 комментария