• Революция или боль? Доклад Яндекса о React Hooks

      Меня зовут Артём Березин, я разработчик нескольких внутренних сервисов Яндекса. Последние полгода я активно работал с React Hooks. По ходу дела возникали некоторые сложности, с которыми приходилось бороться. Теперь хочу поделиться этим опытом с вами. В докладе я разобрал React Hook API с практической точки зрения — зачем нужны хуки, стоит ли переходить, что лучше учитывать при портировании. В процессе перехода легко наделать ошибок, но избежать их тоже не так сложно.



      — Хуки — это просто еще один способ описывать логику ваших компонентов. Он позволяет добавить к функциональным компонентам некоторые возможности, ранее присущие только компонентам на классах.

      Читать дальше →
    • Нахождения минимального расстояния до кривой с помощью API Яндекс.Карт

      Здравствуйте уважаемые читатели.

      Если вы когда-нибудь сталкивались с задачей описанной в топике, то наверное удивлены, тем что в посте будет что-либо кроме ссылки на описание метода getClosestPoint(), потому сразу скажу, что мое решение конечно основывается именно на ней. Однако, мне хочется поделиться не столько алгоритмической красотой (ее за меня реализовывала команда Яндекса создавая API), сколько готовым решением поставленной перед мной задачей.

      Наша компания занимается в том числе представлением услуг IP-телефонии и интернета, а так же километрами собственного оптоволокна. для нас весьма важен вопрос на сколько далеко от кабеля находится офис предполагаемого клиента.

      Готовое решение, от создания карты с маршрутами оптики, до реализации встроенной в формы определения кратчайшего расстояния ищите под катом.
      Читать дальше →
      • +22
      • 4.6k
      • 6
    • Разработка привлекательных реалистичных пользовательских интерфейсов

      • Translation
      Cекрет разработки привлекательных интерфейсов заключается в реализме. Ваша задача — придать плоским элементам объём, используя свойства реальных объектов, вроде неровностей и шероховатостей, бликов и теней, различных текстур поверхностей. В идеале они должны выглядеть как предметы на вашем столе. Создавая классный интерфейс, в первую очередь нужно думать не «как», а «почему».
      Читать дальше →
    • Распределенные вычисления на javascript

        На днях открыл для себя Life with Playstation, но суть не в нем, а в фоновом процессе Folding@home. Проект распределённых вычислений для проведения компьютерной симуляции свёртывания молекул белка. Пока мы читаем новости, смотрим погоду наша PS3 производит вычисления для Folding@home.

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

        Долго не мог придумать, что же такое можно вычислять распределенно, дабы материализировать идею… Рендерить 3D сцену — не оправдано для теста и затратно по передаваемым данным. Вспомнилась простая лабораторная работа из студентческих годов по КМФП — визуализация потенциала поля с несколькими зарядами. Предельно просто, можно вычислять распределенно.
        Читать дальше →
      • В Starcraft 2 можно играть с AI на нескольких спецкартах и на разных уровнях сложности

          Здравствуйте, игрозависимые хабралюди и им сочувствующие! Согласно последним новостям из интернетов, народные умельцы сделали карты, на которых можно играть с AI на разных уровнях сложности. Для того чтобы поиграть, надо заиметь старик, как сказано в этом посте, и после этого сделать следующее:
          Читать дальше →
        • Starcraft 2 запущен в оффлайне. Но играть пока не с кем

            Здравствуйте, игрозависимые хабралюди и им сочувствующие!
            Согласно последним новостям из интернетов, народные умельцы запустили-таки Starcraft 2 в оффлайне! Правда, играть не с кем, AI не работает. Но уже сейчас можно попробовать потыкаться за разные расы :-)
            Читать дальше →
          • Облегчение жизни пользователю Safari на iPhone

              Облегчение жизни пользователю Safari на iPhone.

              В моей прошлой статье, мы разбирали, как за короткий промежуток времени возможно изготовить версию сайта, адаптированную для Apple iPhone.Сегодня я продолжаю свою статью. Сейчас мы рассмотрим некоторые мета теги (и не только), которые облегчат жизнь не только посетителю сайта, но и разработчику веб-проекта.



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

              Читать дальше →
            • iWebkit как способ оптимизировать свой сайт под iPhone

                iWebkit как способ оптимизировать свой сайт под iPhone.

                Вчера мной была замечена библиотека разработки сайтов оптимизированных для iPhone и iPod Touch под названием PastryKit, библиотека включает в себя сборник из css и javascript. Все бы хорошо, но Apple не позаботилась о сторонних разработчиках и забыла (или не захотела) включить добавить документацию к своей разработке.


                Недавно для меня была поставлена задача оптимизации моего сайта, для таких девайсов как iPhone, iPod Touch и для аппаратов использующих Android.
                Для этого я выбрал другую, более легкую библиотеку под названием iWebkit, о которой сейчас и пойдет речь.

                Первый пост на Хабре, так что не ругайте особо.
                Читать дальше →
              • Google наконец-то выпустил в свет свой корпоративный javascript-фреймворк

                  Похоже, не все поняли, что произошло: вместо того, чтобы говорить о фреймворке от Google, народ обратил внимание на вторичную вещь — компрессор javascript-кода Closure Compiler.

                  А ведь Closure Library есть ни что иное, как внутренний javascript framework Гугла, компоненты которого использованы в Gmail, Google Docs и прочих веб-приложениях от Г. И это замечательно, друзья мои! Ведь это фреймворк от непревзойдённых профессионалов разработки популярных вебприложений. Что подразумевает собой качество, стабильность и оптимальность кода, единообразность разных частей фреймворка.

                  До сих пор подобных фреймворков была только одна штука — это YUI, корпоративный фреймворк Yahoo. Безусловно, YUI радует единообразием, отличной документацией, компонентами, удобными для создания вебприложений. Однако мне всегда казалось странным, что Yahoo, далеко не лидер в области rich internet applications, опубликовала свои библиотеки, а Google, та самая компания, которая своими Maps и Gmail просто заставила разработчиков браузеров поддержать всё то, благодаря чему мы сейчас имеем кучу 2.0 сервисов, не обнародавала свои javascript-библиотеки на пользу простым разработчикам.

                  И вот это произошло. Ура, товарищи!
                • Платформа gov.uk будет полностью открытой. Исходные коды опубликованы на GitHub

                    Правительство Великобритании создает полностью открытую платформу электронного правительства gov.uk
                    Платформа gov.uk призвана заменить текущую систему DirectGov.

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

                    Система написана на языке Ruby, ее код полностью открыт и опубликован на GitHub
                    Читать дальше →
                  • Прозрачный текст при совместном использовании фильтров Matrix и AlphaImageLoader в IE

                      imageНаткнулся на интересный баг(фичу) IE, при наложении на блок, с фоном из png картинки с альфа-каналом, AlphaImageLoader и какой-нибудь другой DX-фильтр содержимое блока становится своеобразной маской.

                      Читать дальше →
                    • Google добавил Chrome в Internet Explorer

                        Выглядит фантастически, но это правда. В Google разработали плагин для Internet Explorer под названием Google Chrome Frame, который может переключать рендеринг со стандартного на имеющийся на борту WebKit для поддержки фич от тегов html5 до быстрого javascript-движка. На рисунке представлен скриншот приглашения установить плагин для работы в Google Wave через Internet Explorer, который ранее не поддерживался в этом проекте.

                        image

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

                        <meta http-equiv="X-UA-Compatible" content="chrome=1">
                        

                        Когда Chrome Frame обнаруживает такой тег плагин автоматически переключает рендеринг на Webkit.

                        Под катом видео от разработчиков. В комментах картинка с работающим border-radius в IE8.

                        Читать дальше →
                      • Пять технологий, которые применялись в Иране

                          Власти любой страны мира фильтруют сетевой контент. Это естественно. Каждый фильтрует что-то своё. В Америке блокируют сайты казино, в Европе — сайты c нацистской символикой, в Китае и Беларуси блокируют сайты политических оппонентов. Недавно к числу «цензоров» присоединился Иран, причём некоторые технологические методы, применявшиеся там, представляют собой нечто новое, такого мы не видели даже в Китае.

                          Вот список технологий, которые использовали власти Ирана для цензуры в интернете во время недавних массовых народных волнений. Список приводится по документу, составленному правозащитной хакерской организацией NedaNet.

                          Блокировка по IP
                          Стандартная методика, которая используется правительствами многих стран, в том числе Беларуси и России. Неэффективна против P2P-коммуникаций, а также против сети прокси-серверов.

                          Классификация трафика (QoS)
                          Более продвинутая технология контроля, когда порче подвергается трафик, передающийся по определённым протоколам и определённым портам. Это делается для того, чтобы уменьшить общее количество трафика в местном сегменте интернета (пропускная способность внешних каналов связи оценивается в 6 Гбит/с), и уменьшить нагрузку на системы мониторинга, которые довольно ресурсоёмки, особенно в случае глубокой фильтрации по контенту.

                          Диаграмма показывает количество трафика на иранских бэкбонах в неделю выборов (TCP, порт 80). Как видим, в определённый момент власти просто перекрыли внешний канал.


                          Читать дальше →
                        • Идентифицируем провода

                            Решить проблему идентификации проводов, которые постоянно путаются, предлагает компания Dotz II LLC. Утверждая, что «лучшие идеи — всегда самые простые», товарищи продают Dotz Identifier — бирки на провода. В ассортименте.


                            Например, набор из 10 разноцветных круглых идентификаторов, которые можно будет прицепить на провода, чтобы их было проще различать между собой и знать, какой провод от чего. В комплекте с набором поставляется также 24 иконки с изображением наиболее распространенной техники. Эти иконки можно «прикрутить» к самим «идентификаторам». Есть и пустые иконки, которые можно разрисовать или подписать самостоятельно. Главное, что стоит эта прелесть всего 10 долларов.


                            А вообще, у них на сайте полно таких занятных и полезных штук.

                            via 2dayblog
                          • PenSpinning — спорт для программистов!

                              image
                              Что такое PenSpinning? Это, можно сказать, эдакий вид спорта. На русский правильнее всего переводится «манипулирование ручкой». Сам он появился относительно недавно и распространен в России мало, хотя в азиатских странах развит очень неплохо.
                              Наверное, каждый, сидев в свое время на лекции, начинал специально или непроизвольно крутить ручку в пальцах — вот это и есть пенспиннинг. Все дело не в том, что и где крутить, а в том, как :) Само по себе это занятие помогает не только скоротать время, но и доставляет массу удовольствия, кроме того, при должной тренировке со стороны это выглядит очень даже круто! В России уже существует несколько сообществ пенспиннеров, и на их умение действительно стоит посмотреть. Кстати, по количеству вариантов моддинга ручек этот «вид спорта» дает сто очков вперед любому другому, например, стритрейсингу!

                              Ну и, для разогрева, пример!

                              Сайт российского сообщества пенспиннеров

                              UPD: все о Penspinning на торрентах:
                              torrents.ru/forum/viewtopic.php?t=984359
                              torrents.ru/forum/viewtopic.php?t=1687450
                              Спасибо юзернейму TimTowdy!
                              UPD2: Отличная подборка обучающего видео онлайн
                            • Создание палитры

                              • Translation
                              imageОнлайн инструмент для создания цветовых схем. Есть 6 вариантов подборки цветов, возможность корректировки яркости контрастности отобранных цветов или выбор из имеющихся вариантов (темное / светлое и т. п.), возможность просмотреть шестнадцатеричные коды основного цвета и дополнительных, есть функция предпросмотра «сайта» с выбраными цветами со светлым / темным фоном, симуляция различных нарушений восприятия цветов людьми, рандомайзер, а так же API для интеграции с вашим сайтом. www.colorschemedesigner.com
                              Читать дальше →
                            • Cимвол з̶а̶ч̶е̶р̶к̶и̶в̶а̶н̶и̶я

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

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