• Based url views django?

    sim3x
    @sim3x
    get abs url нужно писать в модели
    https://docs.djangoproject.com/en/1.8/ref/models/i...

    бреадкрамбс стоит писать в зависимости от того как у тебя устроено иерархия на сайте
    Ответ написан
    4 комментария
  • Как мне заставить себя изучать Java EE?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Ну вы поняли, в вопросах бэкенда и разработки серверов я пока плаваю

    - Это вы точно подметили, только вы неправильно характеризуете свои ощущения. Мой тихий внутренний голос часто говорит мне, что нет ничего нового. Просто нужно уметь найти правильную точку зрения при которой всё становится понятным и процесс осмысления идёт как по маслу. Если всё идёт со скрипом, значит вы что-то не так поняли.

    Что же касается JavaEE - это чистой воды фикция. Это просто спецификация:
    Java Platform, Enterprise Edition, сокращенно Java EE (до версии 5.0 — Java 2 Enterprise Edition или J2EE) — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий. И вы вольны даже при разработке EE-приложений не придерживаться её.

    Может нужно было ограничиться Python или PHP?
    - это вы сами решайте. Но JavaEE не делает чего-то особенного, чего вы не знаете. Просто представление о backend-е у вас срослось с Python и PHP. Разделять то, что приросло - очень трудно. Так что это больше работа над собой, чем изучении JavaEE.
    Ответ написан
    Комментировать
  • Какие обязательства 1С системного администратора?

    A1ejandro
    @A1ejandro
    youtube блогер, ИТ-специалист
    Я бы разделил фирмы использующие SQL-сервер и работающие на файловых базах.
    Если конечно админ умеет и обработки писать и формы строчить - то конечно загрузят на полную. Но нужно стойко говорить - НЕТ, кодить не умею, обработки не пишу, формы не делаю. Всё =)

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

    @VanKrock
    Angular всего лишь инструмент, если вы умеете им пользоваться и он решает ваши задачи, используйте его, если нет используйте другой инструмент. На Angular достаточно просто решать большой пул задач, если вы будете постоянно только сравнивать инструменты и искать который лучше, то в итоге вместо проекта вы все еще будете искать инструмент, который лучше.
    Ответ написан
    4 комментария
  • Как попасть в backend-разработку?

    yucom
    @yucom
    Ruby on Rails Developer
    У вас хорошая база. Я бы посоветовал написать небольшое приложение на Django с использованием методологий TDD и Gitflow, например, микроблог - пользователи, сообщения, подписка. И выложите код на github, чтобы показывать работодателям. Интерфейс можно сделать просто на bootstrap. Потом ищите проект на фрилансе или в офис, где в команду требуется джуниор на бекенд и начинайте решать поставленные задачи, смотрите как работают другие. Изучайте теорию и функциональное программирование. Так от простого к сложному дорастете до сеньора и высоких нагрузок.
    Ответ написан
    2 комментария
  • Как попасть в backend-разработку?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    dtony: То что Вы до сих пор не нашли работу это не умение ее искать. Как бы Вам сказать. Научить фреймворку можно! Научить писать качественный код, тоже можно! А вот научить думать головой и пользоваться этим инструментом на всю катушку - это уже ой как сложно!!!

    Вы просто себя преподносите не так! Как только покажете напор работодателю, так у Вас все заработает и взлетит! И не беда, что у Вас знаний девелопера нет, их можно преобрести. Вы КТН. А значит можете правильно и разумно разбивать сложные задачи и в конечном итоге можете их решать. Там где среднячок может упереться и даже не будет знать как двигаться дальше, для Вас худо бедно все будет упираться только в не знание технологий и языка
    Ответ написан
    5 комментариев
  • Как попасть в backend-разработку?

    @IvanOne
    Я Вам советую пройти курсы по html, css, js пригодиться в работе или нет, не известно, но плюсик будет в резюме что есть представление о фронтенде, лучше изучить еще jquery, так как он используется очень во многих конторах. Далее читайте доки по django и пишите тестовое приложение которое там представлена. Ваш опыт плюс эти знания сделают из вас уверенного джуниора, а может даже выше. Основная проблема это конечно зп, ищите условия допустим на подработку, если деньги не главное то можете устроится джуниором, прикладывая усилия за год можно вырасти очень прилично. Конечно это руководство к действию, можно не заниматься фронтендом но тогда и шансы ниже, да и стремиться надо я думаю Full-stack.
    Если начнется изучать фронтенд советую сильно не углубляться, там можно глубоко завязнуть. Потом с опытом придут и более глубинные познания. Не бойтесь писать свои приложения и выложить на гитхаб, это тоже плюс в резюме. Не помешает знание MVC, и хорошее понимание ООП.

    ссылки: https://htmlacademy.ru/ https://www.codecademy.com https://www.codeschool.com/ www.wisdomweb.ru htmlbook.ru

    Ну и желаю удачи)
    Ответ написан
    4 комментария
  • Как попасть в backend-разработку?

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

    > Насколько критично знание фреймворков при устройстве на работу, насколько глубоко, и какие обязательны?
    Ну вот таки доучите Django, раз начали. Конечно от совсем начинающего этого требовать не должны, но такие вакансии будут называться "стажер". Если вы доучите, то будете Junior-ом.

    > Существуют ли альтернативы web-backend'у, позволяющие не терять накопленный опыт в сетях (разработка каких-либо сетевых сервисов и т.п.)?
    На мой вкус и ваши требования идеальная альтернатива такая: https://moikrug.ru/vacancies/1000014166 . Еще интереснее вакансии в совсем крупных фирмах, например у Близзов - там часто требуются именно сетевые программисты для разработки большого числа нагруженных сервисов, которые у них есть. Например, вот, прям по вашему описанию (protobuf, wireshark), но на такие позиции конечно нужен конкретный опыт, потому что берут лучших. Возможно стоит подтянуть и C++ в пару к Питону - раз вы работаете с сетями, то низкоуровневых вещей бояться не должны)
    Ответ написан
    1 комментарий
  • Нужно ли фрилансеру платить налоги?

    Подавать в конце года декларацию на 13% как физлицо
    Или зарегиться как ИП платить в конце года ~20к рублей + 6% от дохода
    Ответ написан
    6 комментариев
  • Какие разделы английского стоит выучить для фриланса?

    @heartdevil
    плыву как воздушный шарик
    Учите сугубо ИТ английский.

    Открою секрет.

    Сидите часто на stackoverflow и читайте самые популярные вопросы и ответы от крутых разработчиков (владеющих отличным английским). Там легко понять уровень английского по ответам и вопросам. Это поможет не только "вариться" в своей среде, но и "вариться" по-английски. Запоминайте структуру сложных вопросов. И как они вообще подготавливаются. Далее смотрите, как на них отвечают. Зачастую, всегда просят описать задачу. Что, собственно, на самом деле и происходит на фрилансе. Далее, просят уточнить некоторые моменты. Затем постят свои решения с описаниями. Тут тоже нужно уделить внимание на подготовку ответа. Часто, конечно, это просто код)), но вам никто не запрещает, к примеру, спросить уточнения (не для понимания кода или алгоритма, а для понимания того, как разработчик будет разжевывать вам ответ на английском ;-)), если самолюбие позволяет)). Можете даже выписывать отдельные словосочетания, которые они применяют. К примеру, создал массив, присвоил значения переменной, пробежался циклом по массиву, создал класс, имплементировал интерфейс, перегрузил чего-то там и так далее.

    В таком ритме быстро научитесь понимать вопросы на английском и умело отвечать, но все это письменно. Разговорный вам может понадобиться, если клиент будет часто по скайпу вам названивать. Его освоить в разы сложнее. Поэтому можете честно заявлять клиенту, что уровень пока у вас не позволяет вести разговор. А там все от клиента будет зависеть.
    Ответ написан
    3 комментария
  • Как защитить денежный баланс на сайте от накрутки?

    copist
    @copist
    Empower people to give
    Пользуйтесь ключами RSA, у каждого пользователя своя пара ключей. Один (публичный) передаётся на сервер, другой (приватный) остаётся у пользователя. Когда делается транзакция, например покупка, то на сервер должна поступать информация:
    1. идентификатор покупателя
    2. номер счёта покупателя
    3. идентификатор продавца
    4. номер счёта продавца
    5. идентификатор покупки
    6. валюта
    7. точная сумма покупки
    8. точное время транзации в таймзоне UTC

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

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

    Проверяйте время транзакций. У каждого покупателя все транзакции должны быть строго хронологическими. Не должно быть чтобы покупка N+1 была ДО покупки N.

    Это вычисляется долго. Чтобы ускорить вычисление остатка, можно ввести специальный тип транзакции "состояние на начало месяца". Его должны выполнять сторонний доверенный сервер, имеющий свою специальную пару ключей. Тогда текущий баланс = последний остаток на начало месяца + все поступления - все оплаты. Вычисляется значительно быстрее.

    Если злоумышленник взломает базу данных, то внесёние записей будет чрезывычайно затруднительным, потому что подделать отпечаток транзакции будет невозможно. Слабое звено - можно просто выгрузить базу или таблицу в файл и затем дропнуть таблицу или базу и шантажировать вас потерянными данными. Чтобы исключить такое, запретите пользователям (не покупателям, а тем, которые подключаются к базе) делать DROP TABLE/DATABASE. Ещё делайте резервные копии. Ещё держите зеркало базы данных.

    Всё что я описал, будет бесполезно, если злоумышленник заменит исходный код платёжного сервера, так как он сможет просто вырубить все проверки на отпечатки. Поэтому платёжный сервер не должен быть скриптовым. То есть не PHP, node, Python, Ruby. Это должен быть компилируемый код. С цифровой подписью. Сервер не должен исполнять приложения с отсутствующей или неправильной цифровой подписью.

    Но это не мешает подменить список доверенных центров сертификации на сервере, чтобы запустить поддельное приложение вместо платёжного сервера. Поэтому на стороне СУБД нужно реализовать механизм, который не даёт подключиться к базе любому приложению. Это приложение должно иметь специальный механизм доступа. Ограничение по IP, специальные заголовки, особенная сессия. Значит это не MySQL и, скорее всего, не PostgreSQL.

    Ещё о каком-нибудь головняке рассказать или уже достаточно?

    Специалисты из WebMoney, PayPal, Yandex.Деньги и онлайн-банков сейчас не скрывая улыбки смотрят на мой алгоритм. Привет вам всем, друзья!

    Относительно реализации на PHP. Два сервера с запросами через AJAX не сделают сервер надёжнее, потому что всё можно подделать в браузере.

    Нужно предотвратить доступ пользователя к серверу. В Интернет огромное количество статей на эту тему. Я боюсь, что полный список средств предотвращения доступа я просто не вспомню. В любом случае, способов взлома больше, чем методов защиты в PHP.

    Вот списочек способов проникнуть на сервер:
    • Через уязвимости серверных компонентов;
    • Через уязвимости в веб-окружении сервера;
    • Через удаленное выполнение произвольного кода;
    • Через наличие переполнений;
    • Через инъекции (внедрение кода) (например, SQL Injection);
    • Через обход системы аутентификации веб-ресурса;
    • Через XSS / CSRF;
    • Через перехват привилегированных аккаунтов (или сессии таких аккаунтов);
    • Через Remote File Inclusion / Local File Inclusion;
    • Через компоненты CMS, CMF и фреймворков с известными уязвимостями;
    • Через перенаправление на другие сайты c помощью открытых редиректов;
    • Через сканирование директорий и файлов (поиск дампов, данных про git, svn);
    • Через подбор паролей.


    И вот списочек способов снижения вероятности проникновения и нанесения непоправимого ущерба:

    Состояние серверов
    • Держи сервера в актуальном состоянии, следи за найденными уязвимостями, обновляй серверные приложения
    • Делай бакапы файлов и баз данных, держи зеркальную базу данных; в случае беды - используй копию
    • Используй виртуальные машины, делай периодически снимки, а в случае взлома восстанавливай машины из снимков
    • Больше не вспомню. Держи админа под рукой.


    Доступ к серверам
    • Не подключайся от имени пользователя root, заведи другого.
    • Установи на всех пользователей длинный пароль.
    • Запрети всем пользователям делать sudo. Можно разрешить делать некоторые отдельные операции, например, nginx reload.
    • Для подключения к серверам пользуйтя SSH или SFTP, авторизация по ключам
    • Смени порты сервисов SSH и SFTP
    • Установи ограничение на список IP, с которых можно подключиться к серверу. Сделай себе белый IP адрес.


    Внутренние сервисы
    • Если всё приложение на одном сервисе, то все внутренние службы (mysql, memcached, raddis, rabbit) должны слушать только интерфейс 127.0.0.1. ( habrahabr.ru/post/212265 )
    • Если приложение включает несколько серверов (отдельно база, отдельно PHP), то есть представляет собой кластер, то службы должны слушать только те IP, которые относятся к кластеру.
    • Смени стандартные порты всех сервисов
    • Пользователю UNIX от которого работает PHP-FPM / NGINX/ APACHE, должны быть открыты для записи только несколько директорий (upload, логи, временные файлы), а для исполнения - вообще ничего нельзя.
    • Пользователю базы данных не должны быть доступны деструктивные и небезопасные операции (DROP/ALTER/CREATE PROCEDURE), может быть даже для INSERT/UPDATE/DELETE в данных по финансам использовать другой аккант в базе данных


    Приложение PHP
    • Защищай сайт с помощью SSL
    • Используй дополнительный платёжный пароль, ограничивай количество попыток оплаты с неверным паролем
    • Используй server side http cookie, короткие сессии с привязкой ключа сесии к IP и UserAgent клиента
    • Все запросы к базу должны быть только с использованием связываемых параметров, никаких конкатенаций запроса с параметрами (Внедрение SQL-кода, SQL injection, php.net/manual/ru/security.database.sql-injection.php и другое по фразе SQL injection )
    • Не доверяй проверкам данных на стороне клиента. Да, они ускоряют работу, но их можно легко подделать. Поэтому все проверки дублируй в коде на сервере.
    • Не доверяй данным пользователя: фильтруй строки, отрезай теги, укорачивай до допустимой длины, приводи к числам все числа (wikipedia: CSS, Cross Site Scripting — «межсайтовы..., XSS для новичков, Яндекс: XSS-атаки и другое по фразе "XSS")
    • Все запросы на сервер должны сопровождаться токеном безопасности ( https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D... https://learn.javascript.ru/csrf habrahabr.ru/post/235247 и другое по фразе "CSRF" )
    • Нигде не делай авто-редирект на страницу, указанную в параметрах запроса - так обычно делают, чтобы после логина вернуться туда, откуда была вызвана форма логина
    • Про содержимое транзакций уже писал, не знаю что из этого тебе пригодится
    Ответ написан
    4 комментария
  • Как сделать треугольник с изображением?

    copist
    @copist
    Empower people to give
    1. картинка-треугольник codepen.io/mikehobizal/pen/EHDsu
    a5627b5350334bf090f5d2049ed569ea.gif

    2. картинка-треугольник с zoom при наведении
    codepen.io/zajonsss/pen/nzCie
    941fa4584ff50675263b57cfdef1e134.gif
    Ответ написан
    Комментировать
  • Приведите пример задачи на JavaScript, в которой не обойтись без использования паттерна?

    copist
    @copist
    Empower people to give
    Шаблоны проектирования и шаблоны программирования - это описания лучших вариантов решений для типовых задач. Многие тыщи программистов уже решали такие типовые задачи и у большинства получалось добиться хорошего результата приблизительно одинаковым способом.

    Под задачей иногда подразумевается глобальные:
    как сделать так, чтобы второй программист понял мой код (например, MVC/MVVM - разделение кода на логику и представление, шаблонизация Twig/Jade, фреймворки)
    как сделать так, чтобы мы кодили быстро (фреймворки, деление кода на фронт/бак, шаблонизация Twig/Jade, доступ к данным через ORM/ADO, препроцессоры LESS/SCSS/Stylus)
    как сделать так, чтобы мы к себе смогли легко включить сторонний модуль или наш код могли подключить к чему-нибудь (плагины, модули)

    Средне-масштабные
    как сделать так, чтобы по возможности было меньше обращений на сервер (кэш, lazy init, client-side validation, rich internet application)
    как обрабатывать долгие запросы (очередь, асинхронная обработка, comet, websocket, long polling)
    что делать, если интерфейс "замёрз" (показать spinner, вывести "сожалелку :(")
    как сделать мега-форму из 50 полей (сделать пошагового мастера)
    как показать что-то очень важное (popup, модальное окно)

    Мелкие
    как сделать так, чтобы интерфейс реагировал на поведение пользователя (события)
    как сделать так, чтобы код выполнялся периодически (таймеры, интервалы)
    как сделать так, чтобы у меня скрипты JS подключались по мере необходимости и только один раз (requirejs)
    как сделать так, чтобы у меня одинаковая задача запускалась только если предыдущая уже закончилась (например, не посылать запрос AJAX, если предыдущий не отработал; не анимировать два раза один и тот же объект DOM)

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

    Вот тут на примерах на Javascript с объяснением habrahabr.ru/post/132472
    Ответ написан
    Комментировать
  • Почему после отправки POST - запроса через AJAX идет перенаправление на localhost:8000/?

    MAKAPOH
    @MAKAPOH
    многостаночник
    исходный адрес локального серва - localhost:8000, после отправки запроса меняется на - localhost:8000/?. Почему это происходит?
    По всей видимости из за этой строки:
    return redirect('/')

    Можно ли использовать AJAX без формы
    Можно, повесьте на кнопку обработчик нажатия и внутри отправляйте ajax запрос. Вы собственно так и делаете, поэтому форму можно просто удалить из разметки.
    Ответ написан
    Комментировать
  • Как подтягивать картинки в Python-Django через media?

    syschel
    @syschel
    freelance/python/django/backend
    Serving files uploaded by a user during development.

    На продакшене статик и медиа работают через нджинкс/апач, без участия джанги.
    На девелоп сервере, под runserver нужно в урлах прописывать доп настройки.
    Ответ написан
    Комментировать
  • Верстка -> Frontend -> Full Stack developer - какой оптимальный путь развития?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что бы быть full stack вы должны понимать что происходит на каждом уровне вашего приложения. от кнопочек которые вы верстаете, до того как обрабатываются запросы на сервере, в плодь до взаимодействия с базой данных через все прослойки.

    Вне зависимости от выбранного языка или фреймворка, принципы остаются примерно те же. С Symfony мы можем говорить о гексагональной архитектуре, луковой архитектуре, data mapper и т.д. С nodejs мы тоже можем обо всем этом говорить но там не особо развиты идеи data mapper (на данный момент). Приходится жить с active record или dbal. Ну и опять же управление зависимостями в js и в php по разному организованы, хотя суть (dependency inversion) остается той же.

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

    @dmitryKovalskiy
    программист средней руки
    Предложение странное. За 2 дня вы не сделаете ничего. 1 день только настройка рабочего места, второй - поверхностное погружение в проект и знакомство с командой. Я бы потенциально готовился к худшему - возможно вы исправите бесплатной какой-то баг и вас отправят домой.
    Ответ написан
    Комментировать
  • Как сделать midleware в django, который меняет TEMPLATE_DIRS?

    @marazmiki
    Укротитель питонов
    Когда Вы делаете такие штуки, нужно иметь в виду, что объект settings глобален. Вот зайдёте Вы с мобильной версии, миддльварь сменит TEMPLATE_DIRS. А сразу же следом за Вами (пока джанга не успела начать рендерить шаблон) — кто-нибудь с компьютера. И значение TEMPLATE_DIRS вернётся в исходное.

    Ключевое слово для поиска решения — thread locals.
    Ответ написан
    9 комментариев
  • Нужен совет по направлению развития начинающего программиста?

    Dit81
    @Dit81
    Security researcher, pentester, internet-marketer
    Я бы остался на Python'е. Сейчас вакансий меньше, но они есть... И постепенно растут и места и зарплаты... ) А если вы чуть поизучаете основы, библиотеки и фреймворки, то уже можно будет смотреть в сторону middle программиста. Есть вариант поискать opensource решения или включится в разработку реальных проектов. И с этим идти к работодателю и просить большую зарплату... :)
    Ответ написан
    2 комментария