• Как регистрируются домены?

    martin74ua
    @martin74ua
    Linux administrator
    Есть корневые DNS сервера. Они обслуживают зону ".", которая неявно присутствует в любом доменном имени и которая фактически содержит список всех доменов первого уровня. Каждый домен первого уровня кому то принадлежит. Вот например, домен com - компании verizon.
    Фактически, при регистрации домена superdomain.com необходимо в зону com внести что то типа
    superdomain IN NS ns1.superdomain.com.
    superdomain IN NS ns2.superdomain.com.
    ns1.superdomain.com. IN A 1.1.1.1
    ns2.superdomain.com. IN A 1.1.1.2

    Также необходимо внести соответствующую информацию в базу whois.

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

    Зарегистрировать новый домен первого уровня - надо договориться с владельцем корневых днс серверов, чтобы он внес аналогичную запись. Грубо говоря - владелец корневых серверов - ICANN.

    ну вот если на пальцах.
    Ответ написан
    Комментировать
  • Где найти учебники по PDF?

    AxianLTD
    @AxianLTD
    Конвертировать ps в pdf ghostscipt-ом и не задавать таких вопросов. "Учебник" по pdf называется спецификацией если уж сильно напрет. Даже я, начинавший программировать в восьмеричных кодах, не стану связываться с ручным кодированием pdf ;-)
    Ответ написан
    Комментировать
  • На что ругается питон в этом случае?

    Winsik
    @Winsik
    сис.админ, недопрограммист :)
    вторая часть вопроса:
    import random
    def GenCharNum():
       return random.choice('QWERTYUIOPASDFGHJKLZXCVBNM')+random.choice('0123456789')

    token=GenCharNum()
    print (token)
    Ответ написан
    5 комментариев
  • На что ругается питон в этом случае?

    Bastax13
    @Bastax13
    Что-то я не понял, зачем у вас так много string.ascii_uppercase + string.digits

    Данный код генерирует строку из букв и цифр длиной n символов (подробнее тут [ENG], ну или в комментарии напишите, что именно нужно сгенерировать)
    import random
    import string
    a=''.join(random.choice(string.ascii_letters + string.digits) for x in range(n))
    print(a)


    Ну и вторая часть вопроса:
    Генерация букв/цифр
    • Генерация букв любого регистра - string.ascii_letters
    • Генерация букв нижнего регистра - string.ascii_lowercase
    • Генерация букв верхнего регистра - string.ascii_uppercase
    • Генерация цифр - string.digits
    Готовый пример генерации
    A-Z
    a=''.join(random.choice(string.ascii_uppercase) for x in range(n))

    a-z
    a=''.join(random.choice(string.ascii_lowercase) for x in range(n))

    0-9
    a=''.join(random.choice(string.digits) for x in range(n))

    Не забудьте указать n, а также импортировать модули random и string
    Ответ написан
    1 комментарий
  • Как организовать процесс постоянной доработки сайтов компании?

    @kn0ckn0ck
    Продюсер
    В вашем случае хорошо будет объединить поддержку и Kanban. Процесс при этом может выглядеть следующим образом:
    1. Через поддержку клиенты оставляют заявки, где описывают что им нужно.
    2. Менеджер разгребает эти заявки, уточняет их (добавляет нужную информацию) и может как-то классифицировать, например, Сайт или Инфраструктура или еще как-то. Менеджер может оценивать сложность заявок по шкале X, L, M, S.
    3. Члены команды берут по мере возможности себе те задачи, которые подходят им по классу и по оценке сложности. Выполняют работу и перетаскивают карточку в состояние "Выполнено".
    4. Менеджер принимает выполненную работу и отмечает заявку как завершенную, либо отклоняет ее на доделку/переделку. Заказчику уходит письмо о том, что его заявка выполнена, ну и дальше он смотрит, отклоняет или принимает ее решение.

    В этом процессе минимум взаимодействия, все видно на Kanban-доске. Видно где затык, кто сидит ковыряет в носу и т.д. В качестве инструмента, в котором такой процесс можно организовать, могу посоветовать devopsboard.ru
    Ответ написан
    Комментировать
  • Что больше добавит производительности SSD или 8 гб памяти?

    Ommonick
    @Ommonick
    qa+dev (scala, golang, ts/js, api, grpc)
    Сначала память, потом ссд
    теперь поясню. Хоть я и ярый сторонник ссд взамен хдд и рассматриваю хдд только как неторопливые хранилища данных (кино, архивы, бэкапы), практика показывает что малое количество памяти вызывает излишние обращения к файлу подкачки, что по сути порождает лишние операции, сказывающиеся на производительности. Когда достаточно памяти - система не дергает хдд для подкачки и общее впечаление от работы хорошее. Не сомневаюсь что можно поставить ссд и файл подкачки на нем будет работать быстрее, но я считаю, что если есть возможность не выполнять какую то работу, то лучше ее не выполянть, чем искать варианты как ее выполнить быстрее\менее затратно.
    В общем ставьте память, а потом ради комфорта докупаете ссд, как будет возможность
    Ответ написан
    6 комментариев
  • Как написать regex?

    @immaculate
    Программист-путешественник
    \[\d+\] выбирает число в квадратных скобках
    Не знаю, какую документацию вы читаете, но в документации по Python никогда не говорилось, что символ / что-то экранирует.
    Ответ написан
    1 комментарий
  • Как исключить повторяющиеся записи из QuerySet?

    timofeydeys
    @timofeydeys Автор вопроса
    Свобода творцов
    Вопрос снят. В итоге сделал так.
    Discussion.objects.all().annotate(
                    comment_old_date=Max(
                        Case(
                            When(
                                comments__date_create__isnull=True,
                                then=datetime.datetime.strptime('1950-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')
                            ),
                            default='comments__date_create'
                        )
                    )
                ).order_by('-comment_old_date')
    Ответ написан
    Комментировать
  • Как прописываются пути к django на серверах хостера?

    syschel
    @syschel
    freelance/python/django/backend
    Первая и главная ошибка в том, что сайты на Python и под фреймворком Django имеют свою специфику установки и запуска. Там нужен, по первости, очень большой бубен и много терпения. То что на хостинге прописали, это правила для HTML(голый) или PHP сайтов, которые в 98% используются "веб разработчиками". Вам нужно гуглить "установка Django на %ваш_хостинг%" или "Deploy django". Проще всего попросить хостера вам помочь, сразу сказав, что сайт на python`e, либо найти фрилансера на разовую услугу установки плюс составление инструкции пошаговой его действий.

    upd: разница между html(php) сайтами и python(django) в установки на веб хостинг в том, что первые обычно ограничиваются залитием файлов в строго указанную хостером папку, просто как набор файлов. А Django сайт устанавливается как программа, условно говоря "через инсталлятор" и по этому требует больше обычных прав пользователя, больше знаний оператору и наплевать на "папку на сервере".
    Ответ написан
    5 комментариев
  • На Апворке можно работать только с 18 лет?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    https://www.upwork.com/legal/
    3. UPWORK ACCOUNTS
    3.1 ACCOUNT ELIGIBILITY
    You understand that you must comply with any licensing or registration requirements with respect to your business, and you represent that you comply with all such requirements. To register for an Account, you must be, and hereby represent that you are, a legal entity or an individual 18 years or older who can form legally binding contracts.
    Ответ написан
    Комментировать
  • Django, как сделать простой поиск по атрибутам?

    @immaculate
    Программист-путешественник
    У вас неправильный код. Есть же отличная родная документация по Django, куча дополнительных материалов, книг. Зачем методом проб и ошибок делать?

    Правильно писать:
    OurFoto.objects.filter(Q(name__startswith=query) | Q(text__startswith=query) | 
    Q(date_added__startswith=query))


    При этом в коде еще есть несколько проблем:
    1. непонятно, зачем здесь ловить исключение KeyError, если изучить Python, то можно написать более простой и понятный код типа request.GET.get('query') или if 'query' in request.GET
    2. лучше переходить уже на Class Based Views и Generic Views - код будет проще и не надо будет переписывать в следующих версиях Django (функции-view уже вроде как deprecated)
    Ответ написан
    4 комментария
  • Почему cms на python не такие популярные?

    @immaculate
    Программист-путешественник
    У PHP был и остается предельно низкий порог входа. Для того, чтобы установить (тем более, настроить и кастомизировать) сайт на какой-либо CMS на Django надо хоть что-то знать. Понимать Python хотя бы на уровне туториала, уметь работать в командой строке, понимать, что там за буковки выводятся, когда пишешь mkvirtualenv или pip install.

    С PHP ничего вообще знать не надо. К сожалению, эта монета имеет и обратную сторону — с любым кодом на PHP после Python работать просто невозможно. Глаза слезятся и вытекают.
    Ответ написан
    4 комментария
  • Есть ли программы для написания кода голосом?

    devspec
    @devspec
    Помогло? Отметь решением
    Такого нет не потому, что это невозможно сделать. А потому, что это быстро приведет к профессиональной деформации. Будете заходить в супермаркет и говорить - мне запятая пожалуйста запятая один большой пакет точка спасибо точка
    Ответ написан
    2 комментария
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    Трудно - и с каждым годом будет все сложнее и хуже. С каждым годом растет объем пула "минимально-необходимых для программиста компетенций" . Каждый год появляются какие-то новые фреймворки, инструменты, фишки - которые по идее должны облегчать и упрощать разработку - но на деле вырастают непреодолимой стеной между тобой и "реальным миром веб-разработки". Потому что ты стареешь, а технологии молодеют.

    Я бы картинку нарисовал, но там очень уж нецензурный вид получается ;-)

    И "впихнуть" в себя все новые технологии ну не получается никак - ты или распыляешься и все знаешь по верхам... или идешь вглубь темы. Но тогда приходится откладывать новые технологии в сторону, потому что на них тупо не хватает времени и/или сил. В молодости - времени. Позже - сил.

    Уже сейчас чтобы тебя считали верстальщиком/программистом/фронтэндером/бэкэндером - надо знать в 2 раза больше технологий, чем 2 года назад. Этакий Закон Мура наоборот. Да вы сами просто посмотрите эти списки "компетенций"!

    Читаешь список требований к "Web-программистам" и видишь, что месяц за месяцем, год за годом HR-ы и те, кто там им задачи ставит, вписывают в требования все больше умных словечек, которые они сами услышали и не понимают, зачем оно им нужно и нужно ли? Все ближе и ближе ситуация подходит к "Если бы водителей принимали на работу как програм.... В 2010 году это была "шутка юмора". Сейчас это уже почти реальность.

    Пример хотите?

    Одна государственная организация выставила список требований к "веб-программисту". При зарплате в 35000 рублей он должен уметь чуть ли не МКС программировать и чуть ли не кластера из сотен серверов настраивать. А на деле основной задачей человека будет - таскать проекторы из аудитории в аудиторию, чистить мышки студентам, переставлять winxp и изредка, раз в полгода - добавлять статью на сайт гос.организации. Откуда информация? Связался с человеком, которому 45, который в этой организации работает уже 18 лет. Ему стаж капает, а деньги он зарабатывает совсем в другом месте.


    Что уж говорить об организациях коммерческих? Особенно тех, для которых веб-программист - и чтец, и жнец, и на дуде игрец?

    Но это все лирика и крик души. Извините.

    И да, к 35-40-45 годам по мнению "молодых и амбициозных IT-специалистов" ты должен обладать строго определенным списком компетенций как в профессии, так и по жизни (к примеру, я столнулся с отказом в приеме на позицию программиста потому что у меня нет... автомобиля. Зачем программисту автомобиль? Ну там сложная и длинная логическая цепочка, сводящася к "раз у тебя нет автомобиля - ты лох, а лохи нам не нужны").
    Мне кажется, проблема в том числе и в том, что подавляющее большинство этих самых "молодых и амбициозных" специалистов совершенно не думают о своем будущем. Нет, я не про то будущее, которое "куда я пойду, когда закончу вот этот крутой проект". Я о реальности. В их понимании 35 лет - это недостижимо далёкое будущее, а до 50 они не доживут (а если и доживут - то в мечтах тимлидами в гугле).

    Соответственно "молодые и амбициозные специалисты" с презрением смотрят на людей, которые отдали 15 лет разработке определенной платформы, платформы, которую сейчас тщится заменить какой-то пул новых технологий. По их мнению - все что старше 5 лет - ненужное устаревшее говно мамонта. А те, кто не знают появившуюся полгода назад технологию - отставшие от жизни ламеры.
    Also, Эффект Даннинга—Крюгера тут работает в полную силу.

    Резюмирую: трудно, если у тебя нет в резюме стапятисот сделанных проектов. И чем дальше - тем сложнее и труднее будет. Но тебе может повезти - если ты компетентный специалист в узкой области (даже если она 'legacy'). Или ты можешь найти синекуру - гос.организацию, в которой ты присоединишься к когорте таких же скинутых с паровоза прогресса "молодыми и амбициозными". Не переживай, через 20 лет скинут их. А ты останешься.

    Вот только кушать хочется сейчас. Хотя бы просто хлебушка.
    Ответ написан
    23 комментария
  • Django, как обезопасить админку?

    sim3x
    @sim3x
    Хватает переноса на другой поддомен-домен-адрес
    +nginx auth
    Ответ написан
    Комментировать
  • Почему код не работает?

    Ivanq
    @Ivanq
    Знаю php, js, html, css
    password = input(Pass: ") # Кавычку перед Pass: забыли
    bool1 = Welcome # В кавычки
    bool2 = access_denied # В кавычки
    
    result = bool2 # Лучше перенести после else:
    
    if password == "555":
        result = bool1
    else:
        print(bool2)
    
    if result is not bool2: # Лучше result != bool2
        print("Password:", result)


    А я бы написал так:

    Передумал
    Ответ написан
    Комментировать
  • Получение данных с сервера на Python, как организовать?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    1) Push notification
    2) Периодический опрос сервера
    Ответ написан
    Комментировать
  • Как упростить список исключений?

    А что в m.text?
    Пример:
    Ну и допустим что m.text != ETH+DCR, иначе можно просто все условия положить в список и проверять m.text in list_if
    Сделайте функцию
    def check_if(value):
        list_if = [
            ('ETH+PASL', 7),
            ('ETH+DCR', 8),
            ('/pools', None),
    
            # и так далее
        ]
        for check_v, check_len in list_if:
            if value in check_v and ((check_len == len(value)) if check_len else True):
                return True
    
    
    check_if(m.text)


    так и расширять в последствии будет проще
    Ответ написан
    Комментировать
  • Как отправить запрос со смартфона на локальный сервер django?

    @Ruswak Автор вопроса
    Мне помогло добавить свой ip adress(узнать через ipconfig на windows) в ALLOWED_HOSTS в settings.py, запустить на нем сервер(python manage.py runserver адрес) и можно идти по этому адресу с телефона
    Ответ написан
    Комментировать