• Разработка web-сервисов – LAMP (Python/Django) vs. MEAN (Node.js)? Или что-то другое?

    @immaculate
    Программист-путешественник
    Мне кажется, предугадать, что будет через 10 лет, очень сложно. Все равно придется не раз переучиваться. Единственное, что стоит исключить из рассмотрения — PHP. Он вряд ли что-то даст в плане развития мышления или карьеры, разве что плохие привычки.

    То, что вы написали как преимущества Javascript - спорно. Зато у Javascript есть пара огромных недостатков
    1) это язык-костыль, сляпанный кое-как (да в курсе, что ситуация исправляется, но не радикально)
    2) это язык с очень низким уровнем входа, соответственно, часто придется сталкиваться с плохим кодом, потому что большинство разработки на Javascript идет методом копипастинга кусков из Интернета

    Взгляните, например, на вопросы по Javascript здесь. Очень много вопросов демонстрирует что задающие их люди не изучили даже основы языка, не понимают, где у них Javascript, где jQuery, где HTML и где DOM.

    Но разработчик на JS от голода точно не умрет, впрочем, так же, как и разработчик на Python. Субъективно мне кажется, что почти любой язык приятнее Javascript для изучения и разработки. Не люблю я его с давних пор.
    Ответ написан
    6 комментариев
  • Как написать скрипт в linux для удаления папок с переменной %date%?

    @immaculate
    Программист-путешественник
    Можно использовать rm -rf $(date +%Y%m%d), можно find /backup -mtime +30 -type d | xargs rm -rf
    Ответ написан
    6 комментариев
  • Какой максимальный срок хранения денег на апворк?

    @immaculate
    Программист-путешественник
    Выведите на PayPal. Получится дешевле и удобнее, чем с Payoneer.
    Ответ написан
  • Что делать если команда говнокодит?

    @immaculate
    Программист-путешественник
    Это сложный вопрос, на который нет однозначного ответа. Лично я для себя нашел следующие выходы: не связываться вообще с языками, в которых очень низкий порог входа (Javascript, PHP). Пытаться спорить и воспитывать коллег (это тяжело и дает плоды только на очень длинной дистанции). Менять работу.

    Те, кто говорят, что только хипстеров заботит красота кода: я еще не видел успешного проекта с говнокодом. Множество раз меня звали на проекты, я отказывался после первого взгляда на код, и больше я никогда об этих проектах не слышал. Когда люди пишут четыре одинаковых метода под разными именами, когда используют разработку копи-пастой, однобуквенные имена переменных, и т.п., они в итоге сами увязают в своем говнокоде, и проект не взлетает. Остается за ним дурно-пахнущее нечто, что никто не берется поддерживать и развивать, в итоге, проект тихонько загибается.

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

    @immaculate
    Программист-путешественник
    In [1]: len(string.ascii_uppercase + string.digits)
    Out [1]: 36


    Ответ очевиден: ваш алфавит не совпадает с алфавитом b32 encoding.
    Ответ написан
    Комментировать
  • Как реализовать комментарии без доступа к бэкенду?

    @immaculate
    Программист-путешественник
    Можно использовать свой self-hosted сервер комментариев, например, isso: https://posativ.org/isso/
    Ответ написан
    2 комментария
  • Как написать regex?

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

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

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

    @immaculate
    Программист-путешественник
    Sortable.js для упорядочивания самых разных списков при помощи Drag and Drop.
    Ответ написан
    Комментировать
  • Подходящая CMS как основа для сложного сайта?

    @immaculate
    Программист-путешественник
    Все это можно сделать на Django + Wagtail.
    Ответ написан
    Комментировать
  • Как версии сайтов для разработки попадают в поисковики?

    @immaculate
    Программист-путешественник
    Через различные плагины и тулбары поисковых систем. Думаю, что Google Chrome, например, напрямую может сообщать Google о существовании сайта.
    Ответ написан
    Комментировать
  • Как сделать всплывающие окно редактирование записи в django?

    @immaculate
    Программист-путешественник
    Вариантов масса. Если используется bootstrap и форм немного, например, то в шаблоне форму запихиваем в bootstrap modal, и все.

    Если форм много и/или они очень тяжелые, то делаем отдельный view, который возвращает только html с формой, без оформления. По клику показываем окно bootstrap modal, в которое посредством XMLHttpRequest загружаем форму.

    Если используется какой-нибудь фреймворк типа React на фронтенде, то можем реализовать редактирование через использование Django Rest Framework.

    В общем, можно реализовать множеством способов, в зависимости от предпочтений и требований.
    Ответ написан
    3 комментария
  • 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 комментария
  • Зачем нужны неизменяемые объекты?

    @immaculate
    Программист-путешественник
    Вам надо почитать статьи о функциональном программировании и языках функционального программирования (например, Lisp). Неизменяемость позволяет сократить количество ошибок в коде, так как состояние объекта не может быть внезапно изменено, например, в другом потоке, или другом вызове функции. Вы всегда знаете с чем работаете.
    Ответ написан
    Комментировать
  • Как защитить скрипт python?

    @immaculate
    Программист-путешественник
    Никак не сделать. И не нужно — это называется "security by obscurity" и никогда не работает. А в большинстве случаев, никому и не нужен исходный код.
    Ответ написан
    Комментировать
  • Как в Django сделать виджет регистрации через соц сети?

    @immaculate
    Программист-путешественник
    Реализуется в коде элементарно при помощи пакета django-allauth. У самого пакета документация не очень подробная, но в сети полно альтернативных описаний, как с ним работать (на английском). Да в принципе, там и код не особо сложный, я его вместо документации читаю, когда надо что-то сделать, а как — не помню.
    Ответ написан
  • Соит ли менять?

    @immaculate
    Программист-путешественник
    По моему опыту, объем RAM влияет на производительность таких задач намного сильнее. И традиционно заменить HDD на SSD.
    Ответ написан
    4 комментария
  • Что почитать по разработке API?

    @immaculate
    Программист-путешественник
    Мне понравилась эта книга: REST API Design Rulebook: Designing Consistent RESTful Web Service Interfaces (купил в электронном виде на Amazon, книга издательства O'Reilly, возможно, сейчас ее можно купить у них дешевле или вообще почитать бесплатно).

    Сложно спроектировать грамотный API, и данная книга в этом помогает. Разжевано как и для чего использовать разные HTTP methods, как лучше спроектировать структуру URL, и многое другое. Подробно, понятно, пошагово.
    Ответ написан
    Комментировать
  • Как общаться между процессами?

    @immaculate
    Программист-путешественник
    Насколько я понимаю, можно использовать PostgreSQL LISTEN/NOTIFY (если используется PostgreSQL): https://www.postgresql.org/docs/current/static/sql...
    Ответ написан
    Комментировать
  • Почему вываливается ошибка в консоли (node.js, curl)?

    @immaculate
    Программист-путешественник
    Плохо знаком с Node.js, но полагаю, что это потому что при завершении вашей функции ответ res закрывается. Когда заканчивается таймаут и запускается обработчик, сокет уже закрыт.
    Ответ написан
    Комментировать