• Какие полезные ресурсы используете в работе?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    UI developer. Верстаю неверстаемое.
    Большая часть ресурсов - ситуативные (в основном это документации к конкретным библиотекам). Из более-менее часто используемого могу вспомнить:
    MDN, DevDocs и Schema.org, чтобы вспоминать забытое.
    Can I use, чтобы смотреть поддержку браузерами (+ doiuse).
    WAVE и regex101, чтобы проверять себя.
    В Browserhacks иногда полезно заглянуть.
    FontPair и Coolors - если нужно без дизайнера подобрать шрифты и цвета.
    Snazzy Maps, чтобы брать готовые цветовые схемы для карт.
    Cubic-bezier, чтобы наглядно делать кривые для простых анимаций.
    Google - если затупил.
    Noisli - для фонового шума.
    Cross Browser Testing, чтобы тестировать результат.
    Ответ написан
  • Книга по распределенным отказоустойчивым системам?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    "Чистая архитектура" не про распределенные отказоустойчивые системы. А вот "Высоконагруженные приложения" Клеппмана - в самую точку, очень хороший учебник, толковый и доходчивый.

    Про надёжность могу посоветовать два шикарных букваря:

    Крис Клирфилд и Андраш Тилчик - "Неуязвимость"
    Duy5BJHWwAEL3_D.jpg
    Майкл Нейгард - "Release it!"
    1770007.jpg?t=20180111160337
    Ответ написан
  • Хочу сделать систему, чтобы при переводе с карты на карту часть оставалась у меня?

    @402d
    начинал с бейсика на УКНЦ в 1988
    Требования к деятельности платежных агентов
    Так как деятельность платежных агентов заключается в приеме денежных средств, то закон предъявляет к таким организациям особые требования.

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

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

    Но важно понимать, что если агент получает наличные от физических лиц, то всю сумму необходимо перечислить на свой специальный банковский счет (до этого момента вычесть свое вознаграждение нельзя). И уже со спецсчета можно будет перечислять средства на другие счета (п. 4 ч. 16 ст. 4 Закона от 3 июня 2009 г. № 103-ФЗ). При этом 103-ФЗ не конкретизирует, на чьи счета могут списываться средства.

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



    Ответственность
    Если платежный агент перечислит на свой специальный банковский счет не все наличные, полученные от граждан (ч. 2 ст. 15.1 КоАП РФ), он может быть привлечен к административной ответственности.

    За такое нарушение грозит штраф:

    для организации – от 40 000 до 50 000 руб.;
    для должностных лиц (главного бухгалтера, а если его нет – руководителя организации), предпринимателей – от 4000 до 5000 руб.
    Заметим, что индивидуальные предприниматели могут быть привлечены к ответственности только в качестве должностных лиц. Это следует из определения категории «должностные лица», которое дано в статье 2.4 Кодекса РФ об административных правонарушениях.

    Не исключено одновременное привлечение к административной ответственности как организации, так и ее руководителя. Правомерность такой позиции подтверждается письмом Минфина России от 30 марта 2005 г. № 03-02-07/1-83 и арбитражной практикой (см., например, постановления ФАС Московского округа от 14 июля 2005 г. № КА-А40/6231-05, Дальневосточного округа от 17 мая 2005 г. № Ф03-А16/05-2/984, Западно-Сибирского округа от 5 июля 2005 г. № Ф04-4410/2005 (12792-А03-32)).

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

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

    Еще желание осталось ?
    Ответ написан
  • Сколько вообще принципов ООП, не только основных?

    qonand
    @qonand
    Software Engineer
    Принципы ООП это инкапсуляция, наследование, полиморфизм и абстракция. Остальные принципы просто выступают в качестве рекомендаций для создания более качественного кода в рамках ООП. Помимо S.O.L.I.D есть еще:
    • LOD
    • Inversion of Control
    • CQS
    • GRASP-паттерны (как по мне это все-таки больше принципы чем паттерны)
    Ответ написан
  • Каковы основные принципы регистрации и авторизации через социальные сети OAuth2?

    hbuser
    @hbuser Автор вопроса
    Отвечу сам себе.
    Здесь есть полезная конкретная информация о технической реализации.

    А если вкратце, то...

    Для авторизации, регистрации используется все та же таблица 'users'. Вместе с обычной регистрацией и авторизацией, когда при регистрации (в самом простом виде) в таблицу 'users' добавляются email, password и login пользователя, а при авторизации проверяется соответствие введенных login'а и password'а существующим в базе данных, аналогичным образом используется и регистрация/авторизация через социальные сети. Только в данном случае источником данных о пользователе для его регистрации является не непосредственный пользователь, который вводит данные в форму, а соц. сеть. Регистрация в данном случае достаточно прозрачная, т.е. не видна пользователю. Схема примерно следующая (без особенностей работы Oauth-протокола):


    1) Пользователь выбирает вход через соц. сеть.
    2) Происходит обращение к странице авторизации в этой соц. сети, если человек еще не авторизовывался там. После ввода данных, а если он ранее авторизовывался, происходит запрос на разрешение использования его данных.
    3) Если человек отказывается, то на этом конец. Если дает согласие, то выполняется перенаправление на указанную в настройках Oauth страницу сайта.
    4) У каждого пользователя в соц. сетях есть свой уникальный идентификатор, который можно запрашивать. Для своей таблицы 'users' нужно добавить пару дополнительных полей (например, вот такие): auth_via (enum('native, 'vk', 'mailru', '...')) - для обозначения типа регистрации пользователя, и social_id - здесь будет храниться уникальный идентификатор в соц. сети. Если нужно хранить какие-то специфические данные этого пользователя из соц. сетей, то можно создать доп. поля для этих данных.
    5) После того, как пользователь дал разрешение на использование его данных, необходимо запросить нужные данные от соц. сети, в т.ч. и идентификатор пользователя в соц. сети. Вот здесь и начинается невидимый процесс регистрации. Нужно проверить есть ли в БД пользователь с таким social_id, если нет, то вставляем social_id, данные пользователя из соц. сети, по необходимости, в БД. Все, пользователь зарегистрирован.
    Если же данные о пользователе есть, то необходимо запросить актуальные данные из соц. сети, сравнить их с теми, что в базе и если они изменились, то обновить их и в своей базе данных, если нет, то просто переходим к следующему шагу.
    6) Создается сессия с данными пользователя.

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

    ca4a4b263fd1424085988c9deaeb6d5b.png

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

    'AND WHERE `auth_via`="native"'

    , чтобы исключить пользователей, зарегистрированных из соц. сетей.

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

    Imaginarium
    @Imaginarium
    Для изучения элементарной (школьной) математики попробуйте начать с книги Д.К. Фаддеева и И.С. Соминского "Алгебра для самообразования", в ней 530 страниц, она очень подробна и полностью охватывает весь традиционный курс советской нормальной школы по математике. Вот ссылка на нее (будет держаться месяц).
    Когда начнете переходить к высшей математике, необходимо освоить, прорешивая все задания, к примеру, книги И.А. Каплана "Практические занятия по высшей математике", в 5 частях (они лежат тут, вообще рекомендую этот сайт) - тоже очень подробные и с детальным разбором, рассчитанные на минимальный школьный уровень. Потом стоит перейти к книгам Зельдовича типа "Высшая математика для начинающих" и т.д. И- вэлком на любой инженерный факультет.
    Надо много читать и посещать форумы, типа dxdy.ru и прочие.
    Ответ написан
  • Как передать все параметры через разделитель?

    Stalker_RED
    @Stalker_RED
    В дополнение к перечисленным, передача данных в массиве вполне предусмотрена даже в чистом html.
    <form action="/echo/html">
      <input type="text" name="foo" value="bar">
      <input type="text" name="foo" value="buzz">
      <input type="text" name="foo" value="ololo">
      <input type="submit">
    </form>
    ovj4nQF.png
    <form action="/echo/html">
      <input type="text" name="foo[]" value="bar">
      <input type="text" name="foo[]" value="buzz">
      <input type="text" name="foo[]" value="ololo">
      <input type="submit">
    </form>
    8xBy3Ls.png
    Во втором случае, вебсервер распарсит foo в массив.

    sandbox.onlinephpfunctions.com/code/e9ec42e94f0f0c...
    Ответ написан
  • Какая книга по PyQT актуальна?

    @WorldEn
    Приведу несколько источников, которые пригодились мне когда-то:

    pyqt.sourceforge.net/Docs/PyQt5 (исчерпывающий гайд по PyQt5 и актуальный, но на английском)

    1.pyqtforlinguists.appspot.com/book.pdf (здесь можно смотреть примеры хорошие)

    python-3.ru/page/into-pyqt5 (здесь много хороших уроков с начального уровня и выше)

    zetcode.com/gui/pyqt5 (лучшая и актуальная книга по PyQT, но она на английском (но это не проблема, там всё понятно написано))

    А так в основном, при возникновении вопросов, можно глянуть информацию на stack overflow.
    Ответ написан
  • Нужны ли теги head и body при написании html?

    zooks
    @zooks
    Frontend и Django
    Как написали выше, сокращать не рекомендуется - все теги нужны.
    Но чисто для справки минимальный код для HTML5 следующий.
    <!DOCTYPE html>
        <meta charset="UTF-8">
        <title>Document</title>

    Для HTML4 это был
    <body>
    </body>
    Ответ написан
  • В чем заключается разработка игр на Unreal Engine?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    0. Написание дизайн-документа. Если не можете точно и детально написать, что из себя представляет игра, какие механики используются, сеттинг и т.п., то к разработке приступать не рекомендуется.
    1. Пре-альфа/Прототип. Этап, на котором набивается "скелет" игры, с минимумом контента. На нём можно успешно закончить, если понимаете, что не можете реализовать те или иные идеи диздока или игра не соответствует вашим ожиданиям.
    В UE4 - этап, состоящий из написания кода на 90% (даже если вы разрабатываете на блюпринтах - рано или поздно захочется уехать на чистый код, тем более что оттуда можно делать интерфейсы для них для удобства тестирования и гуманитариев).
    2. Альфа. Играбельно-багованое нечто, в котором реализованы все основные механики. На этом этапе обычно основной упор в разработке на базовый баланс, заполнение контентом и БАГИ. Тут по-полной используются все возможности: от моделей и анимации до активной работы с дебаггером и логами.
    3. Бета. Весь геймплей в наличии, контент готов на 95%. Баги - наше всё.
    4. Релиз. Момент рождения продукта.
    5. Пост-релиз. БАГИ, недовольные пользователи, призывы к бунтам. Возможно захочется делать допконтент.
    Про мобильную разработку: преимущества ue4: полный контроль над кодом, лучший редактор во Вселенной, вариативная производительность и бОльшие технические возможности, недостатки: больший порог вхождения, дольше и сложнее разработка, нет поддержки "из коробки" многих удобных фич типа AdMob и ачивок на платформе.
    Ответ написан
  • Какие методы верстки при работе с SVG-графикой?

    AMar4enko
    @AMar4enko
    Самый толковый и наиболее широко поддерживающийся способ это svg-спрайты через xlink:href (поищите статью на хабре).
    Смысл в том, что вы берете 100 мелких svg файлов и заталкиваете в один большой, помечая отдельные фрагменты идентификаторами.
    Этот файл загружаете одним XHR-запросом и вставляете в DOM, после чего можете делать
    <svg>
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#my-cool-icon"></use>
    </svg>

    У такого способа есть приятный плюс - спрайты можно перекрашивать через css. Извернувшись можно даже красить в два разных цвета (типа один элемент в красный, другой в синий), что невозможно с иконочными шрифтами.
    Используя css в качестве background-image такое не прокатит
    Ответ написан
  • Что понимается под словами "Основы Unix/linux"?

    ruFelix
    @ruFelix
    Предсказание будущего по руке, таро, кофе.
    Команды работы с файлами и папками: mkdir ls cd chmod chown
    уметь использовать (принимать такую конструкцию) такую конструкцию: cat foo.log | grep bar
    Уметь пользоваться каким то пакетным менеджером, команды типа: apt-cache search mysql, apt-get install mysql-server
    Понимать, что лежит в папках /etc, /etc/init.d, /home, /var
    Уметь запускать и перезапускать демонов, команда service
    А так же знать команды, управления процесами: ps, top, kill
    Для сетей знать: ping nslookup traceroute и конечно ssh на уровне зайти в консоль, ещё ifconfig на уровне посмотреть свой ip

    Уметь подсматривать основные ключи утилит через ключ --help, т.е. например grep --help
    уметь пользоваться простым текстовым редактором типа nano

    Ну и хватит, день тратите на то, что бы это освоить, как итог пишете для себя шпаргалку. Работодателю говорите, что опыта нет но прочитав требование к вакансии, потратили день, что бы разобраться составили шпаргалку, что бы не забыть и была по рукой - работодателю это понравится, гарантия 100%
    Ответ написан
  • Можно ли так использовать rem? Как делаете адаптивные сайты вы?

    @xenongattz
    web
    Однозначно можно.
    Rem крутая штука, позволяющая пропорционально масштабировать все элементы медиа-запросу:

    media (max-width: 320px) {
    html {
    font-size: 50%;
    }
    }

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

    А для старых браузеров это фолбэки на пиксели: https://css-tricks.com/snippets/css/less-mixin-for...
    Также, есть плагин для Grunt на эту тему, который автоматом гонит все px в rem: https://www.npmjs.com/package/px2rem

    А вообще, rem это единица нашего адаптивного будущего. Например Bootstrap 4 будет полностью переведен на rem'ы (кроме условий в media-запросах - там пиксели).
    Ответ написан
  • Математика для разработки игр. Что посоветуете?

    @diegocoder
    Основы 3D математики (координаты, ориентация, стол...
    FAQ: 3D математика
    Основы 3D математики: Векторные и матричные преобр...
    ЧАВО по матрицам и кватернионам
    Линейная алгебра для разработчиков игр
    Как вращается камера в 3D играх или что такое матр...
    Каверзные кватернионы
    Вращение и кватернионы. Сборник рецептов.

    на английском:
    Vector Math for 3D Computer Graphics
    General math
    Making WebGL Dance - лучше начать с этого для понимания всего в целом а затем уже перейти к остальным ссылкам

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