• Как устроен современный сайт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Вот если брать образцовый сайт в 2020, то как он будет устроен?

    Лучшее - враг хорошего. Сайты бывают разные, назначение разное, бюджет разный, аудитория разные.

    Например, как сверстан (с помощью чего), где хранится(где-то слышала что сайты хранятся на гитхабе, но это не точно Т_Т), какие инструменты используются для администрирования и т.д.

    Разное.

    Поскольку я вообще начинающая начинашка есть опасения что самостоятельно могу случайно обучаться уже неактуальным вещам из нулевых( а хотелось бы изучать то, что сейчас делают крутые программисты


    С таким подходом - как бы изучить поменьше - нужно СРАЗУ выбирать другую сферу. Потому что тут нужно учить побольше. "Изучить" ненужные вещи из 2000 очень сложно, потому что
    1. ненужно углубляться в некоторые старые вещи, а на базовом уровне ничего особо ненужного нет
    2. В 2000 в веб технологиях было почти ничего, разве что флеш.

    Вот, например. Я решила сделать сайт интернет-магазина. Там есть аккаунты, возможность оплачивать и добавлять и редактировать товары и он может работать на разных устройствах и т.д.. Вопрос: с помощью чего бы вы такой проект реализовали?интересно все: от хранения и БД, до того как и что написано, что используется(например, какие языки, какая структура)

    Бери вордпресс и смотри

    И еще: актуален ли сейчас пхп?

    более чем.

    и про верстку: я правильно понимаю что большинство сайтов сейчас верстается с помощью гридов и адаптивной верстки?

    Это же не название технологий а просто подход.

    в какую сторону посоветуете исследовать? может быть материалы какие-нибудь можете подсказать

    Гугл. на конкретные технологии.

    и еще: как можно узнать каким образом устроены топовые сайты?

    Балансировщики, кластера, возможно где-то свои движки.
    Но тебе зачем?
    Если ты начинающий, почему СРАЗУ магазин и СРАЗУ топовый?
    Начинашкам нужно учиться на простых вещах. А топовый - ну посмотри на амазон. Поможет?
    Ответ написан
    Комментировать
  • Как создать язык программирования?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    Все создатели ЯП именно так и начинали – с вопроса на тостере.
    Ответ написан
    6 комментариев
  • Кто сейчас производит качественные кнопочные мобильные телефоны?

    fedorez
    @fedorez
    Хатуль мадан
    решал этот вопрос в начале года.
    из качественных, собранных прямыми руками и не из сушёного кизяка - чтоб пойти и купить - только Нокия. По слухам есть варианты у Сяоми, но лень было ждать.
    в итоге купил в феврале Nokia 2720 Flip
    в общем работает не хуже, чем то, что я помню о кнопочниках
    о том что там специфический вариант андроида быстро забываешь - нормальный шустрый телефон.
    глюк за это время был один - начал _дико_ тупить, вылечилось общим сбросом.
    Ответ написан
    1 комментарий
  • Стоит ли в своем канале Telegram использовать сторонние сервисы?

    vabka
    @vabka
    Токсичный шарпист
    Если вас беспокоит, что в любой момент чужой бот может перестать работать, то используйте своего бота, если уверены, что он будет работать стабильнее
    Ответ написан
    Комментировать
  • Как проверить уникальность пользователя в боте Telegram?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Самый компактный вариант:

    INSERT IGNORE INTO allusers3 ...

    При этом telegram_id должен быть PRIMARY KEY или UNIQUE. IGNORE делает именно то, что нужно - игнорирует вставку, если она нарушает ограничения целостности.
    Ответ написан
    Комментировать
  • По поводу прошивки?

    Кто вам сказал, что удаляется все? Можно спокойно обновляться
    Ответ написан
    Комментировать
  • Как шифровать заголовки/атрибуты файлов С++ в MFT?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Мне кажется, Вы занимаетесь ерундой, прости Господи.

    Почему.

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

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

    Итак,
    1. накладывать оганичения нужно только на энтропию пароля, остальное пойдёт только во вред.
    2. ограничения должны нести рекомендаельный характер, имеет смысл сделать два порога энтропии. Совсем слабые пароли не допускать, средние допускать с предупреждением. Пусть пользователь осознаёт сложность пароля и сам соотносит ее с рисками злонамеренного подбора. Порог энтропии можно проверять на клиенте, базу популярных паролей придётся чекать на сервере.
    3. как следует солите пароли и не храните их в открытом ввиде. Это правило следовало бы вынести на первое место, но это не рейтинг мер, а просто важные замечания. Соль для каждого пароля можно хранить рядом с хешем пароля через разделитель, рядом же можно указать и название алгоритма хеширования.
    4. сложность пароля - не панацея. Нужно делать эффективную систему распознавания попыток подбора пароля. Если сильно ограничить скорость подбора пароля то пароль можно делать простым. Пример тому - пинкоды на вашей банковской карте. У вас всего три попытки неправильного ввода на сутки, ошибочные попытки на следующий день вовсе окирпичат вашу карточку. Не бывает простых решений. Нужно понимать также, что пароли могут брутфорситься не с целью подбора, а с целью блокирования входа законного владельца аккаунта.
    5. Не забывайте про двухфакторную авторизацию. Это важно.
    6. Обновляйте сессию пользователя при штатной работе в аккаунте. Не вынуждайте каждый раз вводить пароль по несольку раз на день. Этим, к примеру, постоянно грешит алиэкспресс. Но у них многое ерез задницу.
    7. Не делайте нестандартных форм авторизации, важно, чтобы ваша форма нормально работала с основными стандартными менеджерами паролей. Если пользователь пользуется менеджерами паролей, то это его осознанный выбор, он может быть вполне обоснован. Это гораздо лучше, чем пароль на стикере, прилепленый к монитору.
    8. Если делаете API, не требуйте использования в нём паролей. Сделайте нормальный менеджмент ключей, не заставляйте светить пользовательские пароли в открытом виде в скриптах и исходниках. Не все, пока еще, грамотно работают с секретами.
    Ответ написан
    1 комментарий
  • Ошибка python SyntaxError: invalid syntax как решить?

    @Hanneman
    Это потому что в вашей системе по умолчанию установлен Python 2.7.
    Вы-то поставили третью версию, но вторую он не заменяет (вы даже не указали, как скрипт запускаете) - вот потому второму Python не нравится print(), потому что во второй print это оператор, а в третьем оператор print был заменён функцией print().

    Python2:
    print "Дважды два: ", 2*2
    Python3
    print("Дважды два: ", 2*2)
    Ответ написан
    2 комментария
  • Как мне поставить django на хост(деплой?) heroku?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Что мне сделать, что бы исправить эту ошибку?

    Перестать доверять видео-урокам и начать читать документацию.
    Ответ написан
    Комментировать
  • Почему парсер выдает ошибку?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Зачем стрелять себе в ногу, если они все отзывы отдают json'ном? Вот простой код:
    import requests
    import json
    
    import requests
    headers = {
        'content-type': 'application/json',
    }
    
    data = '''{"filter":{"rated":"Any",
    					"orderBy":"WithRates",
    					"tag":"",
    					"reviewObjectId":276,
    					"reviewObjectType":"banks",
    					"page":"1",
    					"pageSize":20,
    					"locationRoute":"",
    					"regionId":"",
    					"logoTypeUrl":"banks"
    					}}'''
    
    response = requests.post('https://www.sravni.ru/provider/reviews/list',data=data,headers=headers)
    
    reviews = json.loads(response.text)
    
    total = reviews['total']
    
    print(f'Всего отзывов: {total}')
    
    for review in reviews['items']:
    	title = review['title']
    	text = review['text']
    	print(f'{title} - {text}')

    Так как всего отзывов 8718, а на каждой странице по 20 отзывов - получаем 436 страниц. Меняем параметр page в запросе от 1 до 436 и получаем все отзывы в удобном виде.
    Структура json:
    5f9da3b368e7d183722613.png
    Ответ написан
    Комментировать
  • Как открыть файл txt для редактирования одной конкретной строки, при этом все остальные остануться неизменны?

    adugin
    @adugin Куратор тега Python
    В списке lines модифицируйте нужную строку lines[i] и сохраните lines обратно в файл. Для сохранения файл нужно будет открыть в режиме записи. Вообще, конечно, для таких задач лучше использобвать БД. Посмотрите в сторону работы хотя бы с SQLite3, там всё просто.
    Ответ написан
    4 комментария
  • Как придумать название игровой компании и саму же игру для начала?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Придумай, что мешает-то? Бухни винища, курни травки - авось в расширенном состоянии сознания посетит Шиза... :)
    Ответ написан
    Комментировать
  • Как правильно выполнить команду одной строкой с несколькими аргументами, где один из них список?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    юзай xargs
    echo -n /etc/AlterPro/apps_{sys,map,ctrl,port}.conf | xargs -d" " -n1 -I NAME appman -f NAME standby unregister --sys-id 3
    Ответ написан
    1 комментарий
  • Как запретить ввод пробелов, скобок и тире в поле?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    https://regex101.com/r/nV9ZLS/1
    ^[^\s()-]*$
    Первая "крышка" означает, что это начало строки. Последний "доллар" означает конец строки.
    Между ними любое (0 или более символов) из множества, описанного в квадратны скобках.
    В квадратных скобках крышка означает, что множество инвертировано. То есть допускаются любые символы, кроме перечисленных.
    То есть, данное множество представляет собой НЕ: пробел, скобки и минус, но любые другие символы.
    Ответ написан
    1 комментарий
  • ДДос атака на nginx пакетами 1 байт?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    500 строк в секунду - это не мощно и, вероятно, даже не DDoS. Если адрес один, то просто закройте ему доступ брандмауэром, а если адреса разные, то настройте лимит запросов в Nginx.

    nginx.conf
    http {
        ...
        limit_req_zone $binary_remote_addr zone=reqlimit:10m rate=30r/s;
        ...
    }

    some_site.conf
    server {
        ...
        location / {
            ...
            limit_req zone=reqlimit burst=10 nodelay;
        }
    }

    После этого запросы с одного ip-адреса начиная с 31-го в секунду будут отбрасываться.

    Как вишенку на торт, можно добавить ещё фильтр для fail2ban:

    nginx-req-limit.conf
    [Definition]
    
    failregex = limiting requests, excess: .* by zone .*, client: <HOST>
    ignoreregex =

    и правило в jail.local
    [nginx-req-limit]
    enabled = true
    port = http,https
    filter = nginx-req-limit
    logpath = /var/www/*/*/logs/error.log # Здесь укажите свой путь к логам виртуального хоста
    findtime = 600
    maxretry = 10
    bantime = 7200

    После этого адреса DoS'еров будут автоматически блокироваться брандмауэром на два часа. Что разгрузит Nginx от обработки паразитного трафика.
    Ответ написан
    11 комментариев
  • Что нужно, чтобы стать junior-разработчиком или компании взяли на работу в качестве стажёра?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Но каких-либо понятий о них у меня нет, а также пособия по ним не могу найти.

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

    https://www.ozon.ru/context/detail/id/144895863/
    https://www.ozon.ru/context/detail/id/24939188/
    https://www.ozon.ru/context/detail/id/146287471/
    https://www.ozon.ru/context/detail/id/140939231/
    Ответ написан
    Комментировать
  • Как выучить Kotlin?

    zagayevskiy
    @zagayevskiy Куратор тега Kotlin
    Android developer at Yandex
    В смысле нигде нет материалов?
    Доки
    Коаны
    Но если джава тебе слишком сложно, то лучше бросай ты это дело. Котлин так-то не проще, тк концепций в нём больше.
    Ответ написан
    7 комментариев