• Может ли физ лицо создавать интернет-проекты?

    xenon
    @xenon
    Too drunk to fsck
    Законы разные, очень советую посмотреть на ютубе интересное видео "Раздел 230 - свободный интернет | Михаил Пожарский". Как раз про вашу ситуацию, объясняющий, почему площадки вроде вашей или Facebook возникли в США, а не в ЕС, например (сюрприз - в Европе законы тоже не очень хороши).

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

    xenon
    @xenon
    Too drunk to fsck
    У вас как выглядит directory? Это список строк, как я понимаю. А writerows ожидает "список списков строк". (каждый элемент верхнего списка, список из строк, каждая строка в отдельную клетку).
    Вот поэтому он строку и итерирует побуквенно, обрабатывая ее как список.

    попробуйте в directory.append() давать не строку, а список из одного элемента (этой строки) и должно быть счастье.
    Ответ написан
    3 комментария
  • Как с помощью Flask сделать динамический вывод данных из txt файла?

    xenon
    @xenon
    Too drunk to fsck
    Да, разными способами.
    1. можете поллить раз в секунду javascript'ом и обновлять содержание textarea
    2. можете просто на страничке только раз подгружать тот файл, но в страничке сделать <meta http-equiv="refresh" content="30">
    3. если прямо красиво хотите - можете использовать websocket (socket.io). Может вам понравится, я писал для этого удобный модуль - https://github.com/yaroslaff/ws-emit , там пример dir2web.py как раз на Flask, прямо с вашей задачей (только он еще и появление новых файлов в каталоге отслеживает). Изменение контента на странице происходит моментально после изменения файла. (в ютуб видео с примером это с 50-ой секунды).
    Ответ написан
    Комментировать
  • Добрый вечер, что нужно использовать, чтобы сделать генерацию числа на сайте, чтобы для каждого IP было свое число?

    xenon
    @xenon
    Too drunk to fsck
    IPv4 и есть число (32-битное). Можете, например, выдавать именно его как есть. Или пройтись xor с определенной маской. Или прохешировать (md5, sha1, ...) и в качестве числа взять сколько-то байт хеша. еще CRC можно использовать.

    Либо вообще другой подход - использовать http cookie.
    вариант 1) просто записать число в куку (и при заходе пользователь сам его вышлет вам)
    вариант 2) в куку записать session id, а на сервере хранить задуманное число, и session id для которого его придумали.
    Ответ написан
  • Почему отличаются результаты lighthouse в devTools от pagespeed insight?

    xenon
    @xenon
    Too drunk to fsck
    Ответ выше хорошо поясняет, почему отличается оценка Performance. Но у вас и Accessibility и Best Practices отличаются... Будто бы проверяется разный контент сайта...

    Вообще, как web.dev переделали и утащили мерилку в PageSpeed - она очень ненадежная стала, и иногда в принципе не срабатывает. (раньше было лучше)

    Я сам использую https://github.com/andreasonny83/lighthouse-ci - чтобы хотя бы быть независимым от аддонов и загрузки в других табах. Еще вариант (еретический, но все же) - поищите другие онлайн-тестилки по той же Lighthouse методологии на других сайтах. Возможно сторонний сайт будет надежнее-стабильнее чем гугловский.

    А насчет чертовщины с Accessibility и Best Practices - поглядите, за что именно снижается оценка в одном случае, и почему этого снижения нет в другом - может быть так получится понять проблему.
    Ответ написан
    Комментировать
  • С чего начать изучение web разработки?

    xenon
    @xenon
    Too drunk to fsck
    Немного HTML, CSS (не до мастерства, а до уровня, когда примерно понятно, что-где смотреть, если непонятно). Очень желательно git. Почти обязательно javascript (хотя бы на уровне fetch данных из API и отрисовать их).

    А дальше на выбор, смотря что хотите. Если backend - то Flask (это пайтон). Хорошее сочетание между простотой и высокой популярностью.

    Если фронтенд - то какой-нибудь из фронтенд фреймворков. Мне очень нравится svelte, но у других - другие вкусы. Какой-нибудь react, vue - точно пригодится востребован.

    Вот то что написано выше - это первый шаг :-) Все выучить до уровня "как-то немного смутно понимаю", а дальше сами ставите себе любую несложную задачу, придумываете проектик, и делаете. По ходу делания - поймете, чего вам не хватает и подтянете.
    Ответ написан
    Комментировать
  • Как обращаться к элементам json через точку?

    xenon
    @xenon
    Too drunk to fsck
    Вроде нет. Тем более, что JSON - это вообще строка, по индексу вы обращаетесь уже когда преобразовали его в словарь (dict).

    Но два варианта:
    1. Вы можете после преобразования "расплющить" словарь, сделать его плоским, преобразовав вложенные ключи в вид foo.bar.
    2. Вы можете сделать свой класс (от dict), и переписать метод __getitem__(self, index)
    Ответ написан
  • Почему высвечивается OSError: [Errno 98] Address already in use после выхода из программы и повторного запуска?

    xenon
    @xenon
    Too drunk to fsck
    Добавьте одну строчку после socket.socket:
    self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    Ответ написан
  • В каком банке можно открыть виртуальную prepaid card анонимно?

    xenon
    @xenon
    Too drunk to fsck
    Вам надо не банки искать и не "выпуск" карты (услуга), а просто искать где купить prepaid карты. На plati.ru есть много вариантов, но очень высокие цены и карты действуют короткое время. Я делал так - искал "buy prepaid card", и выбирал, где есть оплата криптой. При заполнении формочек лучше указывайте другую страну.

    Получить зарубежную карту гражданину РФ - сложно. А вот гражданину Румынии, Туркменистана, США купить АНОНИМНУЮ предоплаченную карту (не показывая свои документы) - легко. Почувствуйте разницу :-)

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

    xenon
    @xenon
    Too drunk to fsck
    Бот может тестировать-показывать приватность аккаунта юзера. Показывать юзеру все, что он (этот бот, и, следовательно, другие боты) видит о юзере (имя, телефон, ник, last seen, ...). Чтобы юзер мог поиграться с настройками и проверить потом на боте, как они сработали.
    Ответ написан
    Комментировать
  • Как оплатить зарубежные сервисы, если Visa, Mastercard и PayPal приостановили деятельность?

    xenon
    @xenon
    Too drunk to fsck
    Мое решение (частичное, но дешевое). Через зарубежные prepaid карты. Но возникает проблема, как оплатить. И на этот случай - оплачивать криптой. Палить места, где так продается - не хочу. (Кому реально нужно - легко найдут).

    Как пользоваться криптой (если вообще не знаете) - можно посмотреть в видео на канале "диджитализируй" по запросу "крипта". Потратите может быть полчаса на все, а потом будет не сложнее, чем в банковском приложении.

    У меня получилась такая схема:
    1. Prepaid карта (я взял Mastercard, есть и Visa) на 10 USD (минимальная, для теста) продается за 11.
    2. На сайте где продаются карты за крипту честно указал Россию.
    3. Оплатил эфиром (у меня был эфир, можно было оплатить и другой валютой, может быть меньше бы ушло за транзакцию. Но я не разбирался. У меня вышло 0.0065762 ETH за саму карту + 0.00110887 ETH за транзакцию. В пересчете - 13 долларов. Гораздо дешевле, чем у нас prepaid продают.
    4. Минут через 5-10 платеж полностью обработался и мне прислали "код" для получения карты и ссылку где получать
    5. Там тоже пришлось зарегаться, но России там не было, указал другую страну (а ZIP российский). Карту выдали.
    6. Карта работает. Оплатил ею scaleway. Карта проходит "привязку" (когда надо посмотреть транзакции и сказать код из транзакции) - смотреть транзакции можно.

    Минусы - это именно prepaid карта, с нее можно платить, но Google Cloud и Oracle Cloud ее не берут, им нужна "настоящая" (не prepaid) карта, привязанная к счету. С другой стороны, если нужно купить хостинг, домен или VPN, то очень много кто (может быть, большинство) принимают prepaid - им же, главное, деньги получать, а деньги с нее снимаются вполне хорошо.
    Ответ написан
    Комментировать
  • Как хранить сайт на гитхабе?

    xenon
    @xenon
    Too drunk to fsck
    Хостить такие статические сайты можно на разных хостингах: github pages, gitlab pages (да, у них же хостите и гит-репозиторий и у них же сайт), netlify, cloudflare pages.

    Общая схема: если хостинг там же, где и репозиторий, то обычно через CI/CD делается. Если снаружи (например, репозиторий на гитхабе, а хостинг на cloudflare), то при обновлении репозитория дергается хук и хостинг выкачивает новые странички себе.

    Возможно вам будет интересно почитать про концепцию JAMstack, это как бы "старые" статические сайты (которые быстро загружаются из CDN, не рендерятся на сервере), как из 90-ых, но со всеми фичами из XXI века через javascript API. Вот авто-обновление контента на хостинге из репозитория - это часть JAMstack.
    Ответ написан
    Комментировать
  • Что интересного полезного можно писать на GO для прокачки как разработчика?

    xenon
    @xenon
    Too drunk to fsck
    У Go есть хорошее преимущество - он быстрый, относительно интерпретируемых языков. У меня была идея сделать на базе Go сервис быстрых вычислений, куда можно накидать разных данных из другой программы (на php/python), и вызвать какую-то операцию, которую этот сервис сделает быстрее, чем родной интепретируемый код.

    Примерно, как redis делает для key-value данных. Ведь почти все нужные от редиса функции можно реализовать и внутри python/php программы, но redis все сделает гораздо быстрее.

    Одна из задач для "вычислителя" - безопасный eval(), я такой делал для python (evalidate). eval() почти всегда - очень опасная функция, чтобы использовать ее в своем коде, но хочется. evalidate - только для python, и это плохо. Удобнее было бы как отдельный сервис (на том же хосте), куда можно загрузить данные, юзерский код и исполнить его. Причем сервис с максимально ужатыми правами, чтобы были минимальные риски по безопасности. Я думал сделать evalidate как сервис, но на пайтоне он слишком медленный был бы, а вот на Go - в самый раз.

    Пример типовой задачи: Онлайн-магазин, у нас есть список товаров (может быть в mysql или в redis или прямо в нашу программу загружается как список). Потом пользователь задает какой-то свой сложный поиск, вроде "Найти все смартфоны до 25 000 рублей, с памятью 128, но не Huawei, а если Apple, то можно и до 50 000" и медленное веб-приложение прокидывает это запрос на наш быстрый вычислитель и получает от него ответ.

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

    Если интересно, можно обсудить эту идею.
    Ответ написан
    Комментировать
  • Как сделать так чтобы бот упоминал пользователя который написал ему команду(в группе)?

    xenon
    @xenon
    Too drunk to fsck
    В моем случае, в моем боте, с той либой, которую я использую:

    tgname = message.from_user.username

    Чтоб можно было ответить конкретнее - надо знать, какая библиотека для телеграм-бота используется.
    Но универсальный ответ - смотрите все доступные в коде данные (параметр message обычно), и печатаете его на консоль или делаете dir(message) и увидите имеющиеся поля. Что-то из них наверняка будет тем, что нужно.
    Ответ написан
    Комментировать
  • Используются ли сегодня back end templating engines?

    xenon
    @xenon
    Too drunk to fsck
    Не как вариант ответа/решения, а как дополнение - мне кажется, сегодня все больше "новых статических" вебсайтов (JAMstack), так что, шаблонизаторы (стандартные или собственные) используются еще и в них.

    Но если цель - просто учеба-образование, то изучать стоит на уровне чуть-чуть глубже, чем hello world, может на уровне первой четверти-половины туториала. А остальное просто пробежаться глазами по диагонали, чтобы примерно понять о чем там. А когда (если) возникнет необходимость в более-менее сложных аспектах этого - тогда и вникать уже.
    Ответ написан
    2 комментария
  • Как сделать sleep на N секунд либо до прихода HTTP запроса (асинхронный cron с http сервером)?

    xenon
    @xenon Автор вопроса
    Too drunk to fsck
    Был совет использовать Firebase Cloud Messaging (FCM), которым доставляются push уведомления на устройство. Немного странно, но похоже, его невозможно использовать на десктопе в качестве клиента (принимать сообщения). В python библиотеке нет кода для этого. Даже задал вопрос разработчику PyFCM, его ответ:

    You can only receive messages via an Android, iOS or web client https://firebase.google.com/docs/cloud-messaging#h...

    An iOS, Android, or web (JavaScript) client app that receives messages via the corresponding platform-specific transport service.



    Для себя решил так:

    from http.server import BaseHTTPRequestHandler, HTTPServer
    class RequestHandler(BaseHTTPRequestHandler):
            # implementation
    
    httpd = HTTPServer((self.address, self.port), RequestHandler)
    httpd.timeout = 1
            
    while True:
        httpd.handle_request()
        # check if quit


    Использование метода handle_request вместо serve_forever() позволяет нам получать управление каждый раз по обработке каждого запроса и проверять, не пора ли выйти или исполнить другие действия. А использование timeout=1 дает нам возврат через 1 секунду даже если запросов не было. В итоге
    Ответ написан
    Комментировать
  • Стоит ли идти в NoCode разработку?

    xenon
    @xenon
    Too drunk to fsck
    Общее правило: Если технологию можно легко освоить в короткое время, тогда, даже если такая технология будет в самом деле ценной, все равно, в ней будет слишком много специалистов, высокая конкуренция и низкие доходы. (например, Uber. Стать таксистом несложно, зарабатывают таксисты немного.)

    Либо же технология в принципе будет мало востребована (каждый, кто хочет, сам себе может пожарить яичницу и заварить растворимый кофе, специалисты, освоившие эту технологию не слишком востребованы)
    Ответ написан
    1 комментарий
  • Создание DNS сервера с ответом по умолчанию?

    xenon
    @xenon
    Too drunk to fsck
    Может быть проще на всех доменах прописывать алиасы (CNAME) на другое доменное имя, и тогда если надо всем "переехать" - то достаточно будет поменять только одну запись ?
    Ответ написан
  • Почему Flask игнорирует SESSION_COOKIE_SAMESITE?

    xenon
    @xenon Автор вопроса
    Too drunk to fsck
    Разобрался сам. Текущая версия Flask-Session (0.3.2) в принципе "не знает" про samesite, и использует такой код для установки куки:

    response.set_cookie(app.session_cookie_name, session_id,
                                expires=expires, httponly=httponly,
                                domain=domain, path=path, secure=secure)


    Требуются очень простые изменения в код, Pull request'ы уже есть, но маинтайнер их так и не принял пока что. Сделал свой форк, ставится:
    pip install git+https://github.com/yaroslaff/flask-session.git@samesite


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

    xenon
    @xenon
    Too drunk to fsck
    На всякий случай, если нужно для регистрации в ВК, то SMS-сервисы тоже подходят. ВК делает звонок, но через минуту можно выбрать "послать SMS"
    Ответ написан