• Сколько длится время токена авторизации Вконтакте?

    Satanpit
    @Satanpit
    Front-end developer
    Если я правильно понимаю вопрос, то при получении токена Вы можете указать в scope параметр offline и в этом случае токен бесконечен.
    vk.com/dev/permissions
    Ответ написан
    Комментировать
  • Почему не вешается обработчик на react компонент?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    А с чего вы взяли что он там должен быть? Вам, думаю, стоит подтянуть основы JavaScript.

    Если используете синтаксис ES6, используйте импорты и экспорты:
    import React from 'react';

    export default Task;

    Хандлеры лучше биндить не в render, а в конструкторе:
    constructor(props) {
      super(props);
    
      this.state = {
        isOpened: false,
      };
    
      this.clickHandler = this.clickHandler.bind(this);
    }


    Или определяйте хандлер как class field arrow function:
    clickHandler = e => {
      // your stuff
    };

    Такая функция привязана к контексту экземпляра и биндить ее не надо.
    create-react-app поддерживает такой синтаксис из коробки.

    Нельзя передавать текущее состояние в метод setState, так как это асинхронный метод, к моменту вызова состояние может успеть измениться и будет использовано старое значение. Чтобы обновить состояние на основе предыдущего передавайте в setState функцию возвращающую объект. При вызове, первым аргументом в нее придет актуальное состояние на момент обновления:
    this.setState(prevState => ({
      isOpened: !prevState.isOpened,
    }));


    Вместо var используйте const для неизменяемых значений и let для изменяемых.

    Наконец, следите за чистотой кода. Вот хорошие гайдлайны от Airbnb:
    Гайдлайн Airbnb по JavaScript
    Гайдлайн Airbnb по React
    Ответ написан
    6 комментариев
  • Как вы деплоите django приложение на сервер?

    @artinnok
    бекенд-программист
    Исходя из вашего вопроса - "деплой" это разворот сервера с нуля до рабочего состояния.

    Все зависит от количества деплоев:
    1. Если вам достаточно задеплоить 1 сервак и забыть про него - проще поднять руками.
    2. Если вы постоянно разворачиваете > 2 серваков - однозначно надо использовать автоматизированные инструменты.

    Рассмотрим несколько популярных инструментов:
    1. Ansible - на мой взгляд самый удобный инструмент для быстрой и удобноый работы с парком серверов, устанавливает весь софт и настройки на вашей VPS.
    2. Docker - позволяет создать на вашей VPS еще одну виртуальную машину с заранее прописанными настройками и софтом, также его иногда используют для параллельного запуска нескольких БД / веб - серверов и т.д.
    3. Также есть Puppet, Chef, Salt - ими не пользовался.

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

    Тут все зависит от размеров проекта:
    1. Если проект маленький / средний fabric вполне справляется с такими задачами, как подтянуть изменения из репозитория / собрать статику / перезагрузить nginx и т.д., но использовать его для разворота сервера - это тяжелая работа, которую проще делать с помощью других инструментов (описано выше). Сам я тоже использую fabric для обновления прода.
    2. Если проект большой и приближается к хайлоаду - то надо использовать Continuous Integration, это позволит вам сделать автоматизированную выкладку кода на боевой сервер - к примеру, пушите коммиты в репозиторий на github, срабатывает хук, начинает работать Jenkins, идет прогон тестов, при успехе тестов обновляется прод.

    Инструментов для CI много:
    1. Jenkins - простой и бесплатный, с кучей расширений и прочих плюшек.
    2. Travis-CI - бесплатный для опен сорс, платный для приватных проектов (69$ минимальный план).
    3. Buildbot, tox - не использовал.

    P.S. Я думаю, что понятие "деплой" - это выкладка изменений на боевой сервер. То, что делаете вы - создаете новый сервер, разворачиваете окружение - ближе к развороту сервера. Если так делается каждый раз, когда льются изменения на боевой сервак - надо менять workflow.
    Ответ написан
    13 комментариев
  • Как правильно делать deploy с помощью docker registry?

    Tyranron
    @Tyranron
    Официальную документацию надо все же читать, проявив усидчивость. Тогда не будет путаницы в базовых понятиях, из-за которой возникает каша в голове.

    Давайте разберемся с инструментами и их предназначением, которые Вы используете:
    • Комманда docker - это консольный интерфейс (CLI) для работы с Docker
    • docker build создает по заданному Dockerfile образ контейнера
    • docker tag присваивает указанному образу указанный тег (опция -t для build делает то же самое)
    • docker pull скачивает указанный образ из удаленного регистра на текущую машину
    • docker push заливает указанный образ в удаленный регистр
    • docker run запускает новый контейнер из указанного образа
    • docker ps выводит список текущих "бегущих" контейнеров

    Команда docker не жонглирует файлами, она жонглирует образами и контейнерами, а они от нас абстрагированы Docker'ом, как что-то эфемерное. То есть выполняя комманду docker pull Вы не скачиваете образ в ту папку, где выполняете команду, и уж точно не скачиваете какие-либо файлы. Все что Вы делаете этой командой - это скачиваете образ в локальное хранилище Docker'а, дабы Docker daemon мог запустить контейнер на основании этого образа.

    Команда docker-compose - это уже совсем другая команда. Все что она делает - это читает указанный YAML-манифест и выполняет соответствующие команды Docker. Это всего лишь позволяет декларативно указывать желаемые сценарии при работе с Docker в удобном формате. Но ни команда docker, ни docker-compose, не предоставляют ничего для того, чтобы транспортировать/обновлять версии Ваших манифестов где-то там. Docker, опять таки, жонглирует образами и контейнерами, не более.

    У Вас в манифесте указана директива build:. Таким образом docker-compose пытается сначала собрать контейнер, вместо того, чтобы просто запустить его из образа.

    Касательно совета docker-compose.yml под каждый env, все правильно советовали. Именно так это и задумывалось. Вы в манифесте указываете отнюдь не разные окружения (development, production), а набор контейнеров, которые должны бежать в одной связке одной логической единицей (концепция POD'ов). Ничего не запрещает делать и так, как сделали Вы, но это сродни использованию дуршлага в роли миски для еды: сегодня Вы нормально из него наворачиваете пельмени, а завтра супчик в нем уже куда-то не туда утекает.

    Воркфлоу в Вашем случае можно организовать следующим образом:
    1. На dev-машине у Вас один docker-compose.yml, согласно которому контейнер перед запуском собирается из сорцов.
    2. Когда у Вас готова новая версия приложения, Вы его собираете через docker build, присваиваете ему номер версии через docker tag и отправляете в удаленный регистр образов через docker push.
    3. На prod-машине у Вас отдельный docker-compose.ymlв котором указано запускать конкретную версию образа (и никаких build). Новая версия приложения - меняем тег образа в манифесте и перезапускаем контейнеры. При выполнении docker-compose образ автоматически скачается перед запуском, если его нет локально. Если же Вы обновили образ конкретной версии, которая уже была скачана ранее, то да, нужно выполнить docker pull перед стартом, дабы скачать новый образ.


    Дополнительный совет:
    Сборку образа и его заливку в удаленный регистр часто удобно автоматизировать с помощь Makefile'ов.
    Ответ написан
    3 комментария
  • Как составить план обучения на ближайшиее время?

    aRegius
    @aRegius
    Python Enthusiast
    Добрый день, Дмитрий.

    1. В такой последовательности:
    Python
    a) Майкл Доусон - рус ... eng
    b) Марк Лутц - рус ... eng
    c) Дэвид Бизли + Лучано Рамальо
    Дальше - самостоятельный выбор, исходя из личных потребностей.
    Django
    a) Джейкоб-Каплан Мосс и Адриан Головатый - рус ... eng
    b) Django Girls Tutorial
    c) Гринфилды + Равиндран

    Параллельно читаем Django documentation

    2. HTML5 + CSS3 + JS + SQL.
    Знать на уровне, достаточном для реализации собственного проекта с нуля (скажем, свой сайт). Для этого, правда, достаточно HTML и CSS, в объеме указанных книг. Другой вопрос, что и JS, и SQL практически всегда требуются в багаже знаний при устройстве на работу (достаточно посмотреть вакансии).

    3. Нет, просто нету смысла. Актуальной качественной литературы по Python хватает. Есть некоторые исключения (некоторые из них мною упомянуты), но в целом, повторюсь, с современной литературой у Python все в полном порядке. Ищите на Amazon, сортируя по дате выхода.
    Ответ написан
    9 комментариев
  • Смотрят ли на корочку в IT?

    BBmike
    @BBmike
    Автор, иди и получай диплом.
    Он нужен не для такого, чтобы ты показывал его каждый день и наоборот - то, что тебя не будут просить показать его на каждом углу не говорит о его ненужности.

    Важность диплома проявляется один раз в жизни, когда уже ничего не изменить и когда это решает твою судьбу.
    Не будь буратиной. Найди приличный вуз и окончи его.
    Ответ написан
    2 комментария
  • Перехожу с RoR на Python (Django) нужна помощь?

    un1t
    @un1t
    1) обычно мне двух версий питона хватает которые есть в убунте, но можно еще юзать deadsnakes
    Для разных версий пакетов virtualenv.
    2) лучше 3
    3) у джанги даже pre-alpha версии довольно стабильные, а релиз уже сразу смело можно юзать.
    4) хрен его знает
    5) шаблоизатор встроенный либо jinja2. Так обычно pillow, djangorestframework, django-mptt, pytest, pytest-django, django-debug-toolbar, pytils, django-cleanup, sorl-thumbnail
    Ответ написан
    Комментировать
  • Как в nginx перенаправить роуты?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    > а остальные на ангуляр?

    вообще не понял, при чем тут ангуляр, но не суть...

    Вот часть реального конфига:

    server {
      listen  80;
      server_name example.com;
    
      location /all.css {
        root /srv/vek-node/static;
      }
      location /all.css.map {
        root /srv/vek-node/static;
      }
      location /img {
        root /srv/vek-node/static;
      }
      location /vendors {
        root /srv/vek-node/static;
      }
      
      location /media {
        alias /var/www/vek_staging/media;
      }
    
      location /catalog/metal {
        rewrite ^ http://metal.example.com$request_uri? permanent;
      }
    
      location /admin {
          uwsgi_read_timeout 600;
          client_max_body_size 30m;
          include /etc/nginx/uwsgi_params;
          uwsgi_pass unix:/run/uwsgi/app/vek_staging/socket;
      }
    
      location /static {
        alias /var/www/vek_staging/static;
      }
    
      location / {
        include /etc/nginx/proxy_params;
        proxy_read_timeout 120;
        proxy_pass http://127.0.0.1:3331;
      }
    }


    1) Первые четыре директивы location задают раздачу контента из папки static, при этом uri не содержит /static/. Здесь переопределяется root.
    2) Пятая директива location задают раздачу контента из папки media, при этом uri начинается с /media/. Здесь используется директива alias.
    3) Шестой location - все что начинается с /catalog/somesubpart - редиректим на поддомен, с таким же uri.
    4) location /admin - передаем запрос uwsgi-приложению (Django)
    5) location / - все остальное проксируем на 127.0.0.1:3331 (Node.js)

    Пример довольно показательный, используются почти все популярные фишки.

    UPD: первые четыре директивы location определяются довольно тупо - это плата за их распознавание без префикса. Но в реале это ничем не грозит - я генерирую этот конфиг галпом, конкретно gulp-nunjucks. Реальный конфиг примерно в 2 раза больше.
    Ответ написан
    Комментировать
  • Django rest framework + Angular?

    un1t
    @un1t
    проект как проект, особенностей никаких нет
    js на клиенте сжимать смысла нет.
    node.js нужен только для сборки верстки через gulp
    Ответ написан
    Комментировать
  • Где найти бесплатные текстуры и т.д для создания простенькой игры?

    JohnZoidberg
    @JohnZoidberg
    1. Kenney.nl

    Этот находящийся в Нидерландах сайт предлагает разработчикам замечательную графику. Присутствуют материалы, признанные Общественным достоянием. А это значит, что вы можете использовать их где угодно, не беспокоясь об авторских правах. Так же есть поиск графики по категориям, что значительно ускоряет процесс.
    Кроме того, на сайте представлены подборки бесплатной музыки.

    2. OpenGameArt.org

    Наверное, один из лучших сайтов в своём классе. OpenGameArt.org огромный сайт, предлагающий все виды графики, необходимые для разработки игр. Так же на сайте имеется бесплатная музыка (звуки). Основными плюсами данного ресурса являются наличие оживленного и весьма полезного форума, а так же постоянное обновление материалов за счет пополнения самими пользователями и рейтинговой системы оценивания. Так что вы всегда сможете быстро выбрать самое лучше и свежее.

    3. Untamed.wild-refuge.net

    Отличный ресурс для тех, кто задумывает или уже создает свою RPG.
    При переходе по ссылке справа вы увидите колонку ресурсов. Персонажи, предметы, локации и тому подобное, при нажатии на которых все-все объекты появятся на одной странице, что упрощает и ускоряет выбор. При клике на понравившегося персонажа, открывается ссылка на .png файл, со всеми 3d-проекциями и движениями, что идеально подходит для создания собственных спрайтов.

    4. Crateboy.itch.io

    Отличительная особенность данной коллекции - 8-битная графика городов. Вся библиотека совершенно бесплатна, и всё, о чём просит автор - упомянуть о нём в своей игре (credits).
    Цветовая гамма данной библиотеки является её отличительной особенностью, и при использовании в исходном виде вполне может определить дизайн всего проекта.

    5. Bagfullofwrong.co.uk

    Коллекция материалов, созданных и использованных в различных проектах дизайнером Робом Фероном для Вашего личного пользования.

    6. Gameart2d.com

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

    7. Wigdetworx.com

    Пусть это и не самая большая коллекция спрайтов из длиннопоста, но определенно каждый найдет себе здесь что-нибудь по душе. Для того чтобы скачать себе множество ландшафтов и персонажей достаточно лишь одного клика.

    8. Glitchthegame.com

    Создатели проекта Glitch, закрытого в 2012 году решили сделать всю её графическую часть Достоянием общественности (никакие авторские права для использование не требуются). К Вашим услугам более 10,000 изображений восхитительного качества собранные воедино и доступные по одному нажатию.

    9. Dumbanex.com

    Идеально для сайдскроллеров и платформеров
    Множество графики от дизайнера-фрилансера Брента Андерсона. Всё бесплатно при условии упоминания в приложении (Credits).

    10. Reinerstilesets.de

    Бесплатная графика от разработчика игр разработчикам игр. Помимо библиотек на сайте есть неплохие туториалы.

    11. Sharecg.com

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

    12. Roenica.com

    Отличный сайт с графикой для инди проектов и казуалок.
    Всё разбито на категории по типу игры и упаковано в ZIP архивы. Есть и 2D и 3D графика, но так же как и в предыдущем случае стоит внимательно смотреть на лицензию, под которой распространяется контент.

    13. Blogoscoped.com

    Сам сайт - форум про Гугл и всё, что с ним связанно, но в 2006 году его участник Philip Lenssen выложил на нем около 700 спрайтов, которые теперь распространяются под Creative Commons License

    14. Lostgarden.com

    Сайт немного отличается от рассмотренных выше. Это блог игрового дизайнера, в котором время от времени появляется бесплатная графика для разработчиков игр. Так же интерес представляет и сам блог, в котором дизайнеру можно найти уйму важной и интересной информации.

    15. Subtlepatterns.com

    Безумное количество фонов и текстур для Ваших игр и приложений. Всё как и прежде бесплатно - только не забудьте поблагодарить автора.

    16. Openclipart.org

    Обширное сообщество с огромными объемами графики. Всё, что сможете найти на этом сайте, совершенно бесплатно. Правда вот поискать придется как следует.
    Ответ написан
    12 комментариев
  • Как исправить ошибку в Django - add_view?

    @deliro
    exclude - поле класса, а не объекта. В __init__ вьюхи пропиши self.exclude = None
    Ответ написан
  • Стоит ли создавать интернет-магазин для портфолио на чистом PHP?

    StrangeAttractor
    @StrangeAttractor
    Смотря что Вы хотите продемонстрировать:

    Если умение программировать на PHP, скилл web-разработчика, то наличие в портфолио опенсорсного движка для магазина (или чего угодно, в общем-то), качество кода и UX которого характеризует ваш скилл в этом деле определённо не помешает. При этом совсем уж чистый PHP использовать не обязательно: посмотрите актуальные фрэймворки (Laravel, Symfony, Kohana, Yii, Zend, Nette, etc) и сделайте выбор между одним из них или голым PHP/велосипедом по критерию "в каком случае реализацующий мою задумку код будет наиболее читаем, расширяем, надёжен и производителен" (в особо простых случаях фрэймворк - это overkill, в большинстве более-менее сложных - лучше с фрэймворком).

    Если умение делать и поддерживать интернет-магазины - то реализованные проекты на общепринятых e-commerce CMS (PrestaShop, OpenCart, Magento, osCommerce/ZenCart, и т.п.) думаю будут в портфолио ценнее.
    Ответ написан
    Комментировать
  • Для совсем новичка в программировании php или ruby?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Python
    например
    1. захочется тебе что-то сделать под винду с GUI - Питон это может
    2. завтра нанялся делать сайт - Питон это может, при чем по организации веб-фреймворка даст фору любому языку
    3. послезавтра захотел покодить под Android - Питон это может
    4. плюнул на все, пошел в админы, а там 1000 серверов и опять Python
    5. проснулся мегаученым, потянуло в машииное обучение, нейронные сети и прочий Матан, читаешь требования/
    библиотеки: C, C++, Java, Python
    ... ну и всякие игры, консольные скрипты и т.д. как бы само собой, было бы упорство

    имей в виду, что PHP из списка - только (2), за Руби не скажу, но не все 5 точно
    Ответ написан
  • Каковы Ваши доводы за неиспользование транслита в коде?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Заставьте несколько раз сделать рефакторинг названий. А дальше сам начнет)
    Ответ написан
    Комментировать
  • Нарушу ли я авторские права данным логотипом?

    @Zewkin
    Я у мамы фронтэндер
    Я думаю, адвокаты Walt Disney могут доказать факт нарушения авторских прав даже если вы свою жену в постели Чубаккой назовете.
    Ответ написан
    Комментировать
  • Можно ли работать на Западе в сфере IT без диплома?

    Устроиться работать на западе без вышки вообще без проблем, но если ты уже там, например:
    - пригасили пожить близкие родственники или друзья
    - отучился в местном универе (год обучения и проживания для иностранцев минимум 10к зелени, самый дешёвый вариант это Германия - вышка бесплатно, но нужно иметь 8к евро на счёте для проживания и знать немецкий на уровне b1-b2, а это далеко не базовые уровни и с этим могут быть сложности, т.к. айтишники как правило учат английский)
    - и тому подобные мажорские ситуации.

    Если ты не там, а "здесь", то проблемы будут у тебя именно во въезде к ним при собеседовании с визовым офицером (основания? иммигрант чтоли?) и получении разрешения на работу (без бумажки (вышки) ты какашка) - визовый офицер на даст разрешение на работу без профильного диплома. Знаю ещё, что в США есть исключение - без вышки можно к ним приехать работать, но при наличии железных доказательств, что ты работал 12 лет по профилю. Для Германии это 5 лет + технарь (колледж).

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

    Также, если нет весомых доказательств откуда получены бабки на первый год обучения, и где ты будешь их брать для следующих годов (как правило студента спонсируют родители с родины), то также могут отказать.
    То есть, если ты не мажор, тебе нужно как минимум иметь белые деньги в размере минимум 20к, но это минимум. В идеале, по моим подсчётам для Канады это 50к, для США ещё больше. Для Германии хватит 20к, но нужно знать немецкий, все программы бакалавриата только на нём. На английском только магистратура.

    Так что даже если есть бабки, то тупо "купить" жизнь на западе через студенческую иммиграцию за 20к-50к не получиться, нужно будет сперва им доказать, что ты не олень, неспроста для "покупки" вида на жительство на западе существует программа инвестирования в экономику, но там уже другие деньги (сотни тысяч долларов).
    Я знаю о чём говорю, т.к. видел реальные истории как мальчикам и девочкам мажорам отказывали, видя что для своих лет на их счёте находились нереальные суммы денег, а родители светить свои доходы для спонсирования учёбы по каким-то причинам не желали

    Как обстоят дела в таких западных странах как Чехия, Финляндия я не изучал, но что то мне подсказывает, что везде требования одинаковые + их язык ну просто нереальный, поэтому как правило смотрел только по англоязычным странам, т.к. английский для айтишника можно сказать второй родной язык да и не спроста весь мир на него переходит, т.к. он реально простой

    Вся информация получена как с русскоязычных форумов иммигрантов, так и с официальных англоязычных источников. Интересуюсь темой уже пару лет.
    Ответ написан
  • Куда перейти с php?Python или Ruby?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Вопрос примерно так звучит:

    В какую религию перейти из Язычества? В Буддизм или Конфуцианство?

    Я бы в Буддизм пошел... Тьфу... То есть на Python. У него паства побольше и распространен он поболее. Последователи учения -- не злобливые, и помогут. А Ruby как конфуцианство как-то слишком узковатое... Хотя, может просто мало его последователей встречал.

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

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

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