• TSP problem. Mixed algorithm

      Всем доброго времени суток. В прошлых статьях мы сравнивали два эвристических алгоритма оптимизации на симметричной задаче коммивояжера таких как: ACS (ant colony system — муравьиный алгоритм) и SA (simulating annealing — алгоритм имитации отжига). Как мы убедились у каждого свои плюсы и минусы.
      Читать дальше →
      • +20
      • 2,8k
      • 5
    • Делаем GraphQL API на PHP и MySQL. Часть 1: Установка, схема и запросы

      • Tutorial
      image

      В последнее время я все чаще и чаще слышу про GraphQL. И в интернете уже можно найти немало статей о том как сделать свой GraphQL сервер. Но почти во всех этих статьях в качестве бэкенда используется Node.js.

      Я ничего не имею против Node.js и сам с удовольствием использую его, но все-таки большую часть проектов я делаю на PHP. К тому же хостинг с PHP и MySQL гораздо дешевле и доступнее чем хостинг с Node.js. Поэтому мне кажется не справедливым тот факт, что об использовании GraphQL на PHP в интернете практически нет ни слова.

      В данной статье я хочу рассказать о том, как сделать свой GraphQL сервер на PHP с помощью библиотеки graphql-php и как с его помощью реализовать простое API для получения данных из MySQL.
      Читать дальше →
    • Пишем URL, получаем бесплатную иконку

        Сервис omg-img позволяет вставлять иконки вот так:

        <img src="https://png.icons8.com/search">
        



        Чувствуете, к чему я клоню? Сделали вставление иконок не выходя из IDE. Просто пишете URL, параметры вроде цвета и стиля — мы отрендерим иконку и отдадим через хороший, годный CDN.

        Вместо search можно написать любое название иконки:

        • home
        • sheep-on-bike
        • trump

        Читать дальше →
      • Selenium за 60 секунд

        • Markdown

        Представляю вам перевод моей статьи на Medium.com.


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



        Читать дальше →
      • React медленный, React быстрый: оптимизация React-приложения на практике

        Всем привет! Хочу поделиться своим переводом статьи React is Slow, React is Fast: Optimizing React Apps in Practice автора François Zaninotto. Надеюсь, это кому-то будет полезным.


        Краткое содержание:


        1. Измерение производительности React
        2. Почему ты обновился?
        3. Оптимизация через разбиение на компоненты
        4. shouldComponentUpdate
        5. Recompose
        6. Redux
        7. Reselect
        8. Остерегайтесь объектных литералов в JSX
        9. Заключение

        React может быть медленным. Я хочу сказать, что любое React приложение среднего размера может оказаться медленным. Но прежде, чем искать ему замену, вы должны знать, что и любое среднее приложение на Angular или Ember может также оказаться медленным.


        Хорошая новость в том, что если вы действительно заботитесь о производительности, то сделать React приложение очень быстрым довольно легко. Об этом — далее в статье.

        Читать дальше →
      • Типографика: процесс выбора шрифта

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


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

        Эта статья замышлялась как небольшое введение для тех, кто хочет научиться правильно подбирать шрифты для дизайна. Она подтолкнёт вас к тому, чтобы расширять набор шрифтов и их сочетаний, которые вы используете в макетах, не ограничиваясь хорошо знакомыми вариантами.
        Читать дальше →
        • +12
        • 12,4k
        • 2
      • Управление рисками. Часть 2


          Первую часть вы можете найти здесь: Управление рисками. Часть 1

          «Нужно пожертвовать многим, чтобы спасти все» Тадеуш Костюшко

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

          Здесь существуют следующие возможные стратегии:

          • принятие
          • передача
          • уменьшение
          Читать дальше →
        • 7 препятствий для внедрения гибких методологий в больших организациях

          Я работаю с большими компаниями, которые пытаются применить Agile, начиная со Scrum. Хотя каждая организация находится в своем секторе, использует разные технологии и имеет свою культуру управления, у всех была одна общая болезнь — своего рода «гигантизм». В этой статье содержится список общих проблем гибкости в больших организациях и исследуется возможность избежать симптома «гигантизма».

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

          Одна из очень известных компаний, которая была примером успешного применения Scrum в 1997 году, обратилась за помощью в Danube Technologies, Inc. в 2009 году, потому что «рынок» показал, что они оказались менее гибкими, чем конкуренты. Начинания по внедрению Scrum, которые начались 1997 году, по-видимому, не могли выдержать десятилетие сосуществования с проблемами, присущими крупным предприятиям. К сожалению, большинство попыток внедрить Scrum в крупных организациях не приводит к долговременным преобразованиям. Препятствия для внедрения Scrum обычно также мешают достижению успеха в бизнесе в целом, а устоявшиеся организации обычно неохотно избавляются от них.

          Препятствие #1: Наивный менеджмент ресурсов


          В Руководстве PMBOK написано:
          «зачастую возникает необходимость увеличения бюджета, чтобы добавить дополнительные ресурсы для выполнения того же объема работ в более сжатые сроки»
          В отношении программного обеспечения, Фред Брукс (в книге «Мифический человеко-месяц») дает утверждение, которое противоречит предыдущему:
          «Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше»

          Чтобы разрешить этот парадокс, давайте рассмотрим определение «ресурса».
          Читать дальше →
        • Введение в криптографию и шифрование, часть первая. Лекция в Яндексе

            Чтобы сходу понимать материалы об инфраструктуре открытых ключей, сетевой безопасности и HTTPS, нужно знать основы криптографической теории. Один из самых быстрых способов изучить их — посмотреть или прочитать лекцию Владимира ivlad Иванова. Владимир — известный специалист по сетям и системам их защиты. Он долгое время работал в Яндексе, был одним из руководителей нашего департамента эксплуатации.


            Мы впервые публикуем эту лекцию вместе с расшифровкой. Начнём с первой части. Под катом вы найдёте текст и часть слайдов.

            Читать дальше →