• Недокументированные приемы CSS

    • Tutorial
    Всем привет! Зовут меня Дмитрий Григоров. Работаю фронтедером в Райффайзенбанке в команде RBO PRO. Я расскажу и покажу вам, как можно творчески применять данные возможности CSS. В статье мы рассмотрим следующие темы:

    • Фоны и рамки;
    • Фигуры;
    • Визуальные эффекты.

    Читать дальше →
  • Как я делал веб-версию KeePass

      Как-то мне надо было добавить в админку просмотр списка паролей. База хранилась на сервере в формате KeePass (kdbx v2), сервер был на ноде — недолго думая, я взял первый попавшийся пакет и сделал. А потом понадобилось то же самое, но прямо у пользователя в браузере, без сервера. Ничего не нашлось. Первым желанием было форкнуть либу и заменить использование node api, но от первого просмотра кода желание пропало, решил сделать сам.



      Под катом расскажу о проблемах, с которыми я столкнулся, и способах их решения
      Читать дальше →
    • У нас проблемы с промисами

      • Перевод
      Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

      У нас проблемы с промисами


      Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

      Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

      — Многие из нас используют промисы без действительного их понимания.

      Если вы мне не верите, решите такую задачку:

      Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

      doSomething().then(function () {
        return doSomethingElse();
      });
      
      doSomething().then(function () {
        doSomethingElse();
      });
      
      doSomething().then(doSomethingElse());
      
      doSomething().then(doSomethingElse);
      

      Узнайте решение задачи
    • Autofill: чего не знают веб-разработчики, хотя должны знать

      • Перевод


      Многим известно, что в мобильной версии Safari можно отсканировать свою банковскую карту. Но многие ли разработчики умеют создавать формы, поддерживающие эту возможность?

      Готов поспорить, что немногие.

      Дело осложняет полное отсутствие документации от Apple по работе этой функции. Но тут есть один момент. Функция сканирования банковских карт является подмножеством автозаполнения — браузерного функционала, давно игнорируемого веб-разработчиками. Понятно, почему они не уделяли ему должного внимания: когда регулярно заполняешь форму тестовыми данными, автозаполнение обычно мешает. Но для наших пользователей это важная функция. В Google выяснили, что при использовании автозаполнения пользователи на 30% быстрее заполняют формы. Так что давайте изучим работу автозаполнения, разберёмся, как создавать формы, поддерживающие кросс-браузерное автозаполнение, и воспользуемся преимуществами новых возможностей наподобие сканирования банковских карт.
      Читать дальше →
    • Web-приложения в режиме offline. ServiceWorker и CacheStorage

      О чём речь?


      Всё чаще возникает задача научить frontend-приложение работать в автономном режиме. Это значит придать web-приложению свойство mobile- или desktop-программы — функционировать в отсутствии связи с Интернет, а также в случае отказа сервера.

      Цель — оградить пользователя от проблем соединения на его устройстве. Как было бы обидно не сохранить созданные в google docs таблицы из-за потери wi-fi в ближайшем фастфуде!

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

      Решение задачи заключается в следующем:
      Читать дальше →
      • +24
      • 28,5k
      • 2
    • Я хочу, чтобы сайты открывались мгновенно

        Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик. Я расскажу, как сделать так, чтобы ваш сайт открывался быстро. Очень быстро.


        Я хочу, чтобы мой сайт открывался быстро
      • Онлайн размещение документов на сайте

        В наше время, когда Интернет широко шагает по стране, компании все чаще создают собственные сайты. Почти на каждом присутствует информация о ценах на продукцию, услуги и т.д., проще говоря – прайсы. Зачастую прайсы сразу сверстаны в html страницу или дается ссылка на их скачивание. В первом случае хорошо, если на сайте установлена CMS и можно редактировать страницы, а если нет? Во втором, нужно закачать прайс по ftp. Оба случая могут явиться камнем преткновения при обновлении прайса на сайте, если нет собственного вебмастера. Да и копирование информации из готового прайса на сайт, может привести к неточностям и ошибками, особенно если прайс не маленький. А это чревато потерей клиентов. Рассмотрим, как упростить размещение прайсов online. Сразу оговорюсь, что рассматривать мощные системы, где CMS сайта взаимодействует с бухгалтерией компании я не буду.
        Читать дальше →
      • Загрузка контента через YQL

          Возможно для вас, как и для меня, станет новостью то, что используя язык запросов Yahoo! Query Language — можно выдрать контент практически с любой страницы непосредственно в браузере (через javascript). Т.е. отпадает необходимость в использовании сервер-сайд кода и библиотек типа curl.

          Выглядит это примерно так:
          DELETE FROM HTML WHERE 1=1

          Даже больше. YQL позволяет выполнять GET и POST HTML запросы.

          Как это использовать — да по разному. Вот, для наглядности/примера — украл яндекс) (view source code вам поможет). Можно подглядеть информацию, закрытую корпоративным фаерволом.
          А можно и поиграться с кросс-доменными запросами.
          Тут уж у кого какая фантазия.
        • Мой опыт восстановления зрения

          • Tutorial
             Этим летом я был на некоторое время предоставлен сам себе – всех своих я отправил подальше от дыма, а сам, недолго думая, решил немного подтянуть здоровье. Не просто записаться в тренажерный зал и накачать «квадратиков» для пляжа, а именно обследоваться у некоторых врачей, чтобы выработать для себя вектор дальнейших действий, дабы совсем не превратиться в «овоща».

          image

             Расскажу лишь про свой опыт восстановления зрения – именно оно больше всего подвержено риску у любого «компьютерного» человека.
          Читать дальше →
        • Проклятье веб-сайтов и волшебный UX design

            Представьте себе обычного директора, который решил сделать обычный сайт для своей не менее обычной компании. Он нашёл ближайших веб-разработчиков с честными глазами и в двух словах на одной салфетке описал им стандартные пожелания обычного корпоративного сайта. А может быть он поступил проще — указал на похожий сайт и сказал: “Мне надо тоже самое, только круче!”. Разработчики привычно сами себе написали техническое задание и с честью его выполнили. Потом как смогли наполнили сайт контентом и запустили, помолясь. За месяц работы на сайт зашло десяток роботов и несколько случайных посетителей. Директору рассказали о SEO, на которое ему, скрепя сердце, пришлось выделить на три месяца по 50 тыс. руб. — “чтобы попробовать” и “чтобы наверняка”. Благодаря раскрутке сайт начал появляться в поисковой выдаче и счётчик стал показывать почти тысячу посетителей в день. За это время к менеджерам звонило по 5-10 человек в месяц, говоривших что они смотрят сайт и у них есть вопросы о товарах. Реальным клиентом стал только один, да и то, по-мелочи.

            Убитый печалью директор отменил всё это бессмысленное SEO и с негодованием отказался от предложений потратить ещё денег на услуги “партизанского” и “социального” маркетинга со “100% результатом”. Попытки выяснить причину неудачи ни к чему не привели — все эксперты только разводили руками и опять советовали потратить денег на SEO, контекстную рекламу и маркетинг. Или заказать новый сайт у новых разработчиков — вдруг на этот раз он получится лучше. И вот поиск причин неудачи перешёл из области разума в область метафизики. Ведь неизвестно — может у разработчиков сайта отрицательная карма (на хабре), или хостинг сайта расположен на старом индейском кладбище, или сервер не окропили святой водой, или сглазили по ftp, или это конкуренты заплатили денег энергоинформационному экстрасенсу и он с помощью генератора акустического резонанса (модель бубен) взял, да и сайт весь ПРОКЛЯЛ!
            Читать дальше →
          • Альтернативный способ распространения файлов

              В последнее время в сети стало распространённым выкладывание различных файлов на различные ресурсы-«файлопомойки». Сейчас я не хочу обсуждать проблемы, связанные с просмотром рекламы при или перед скачиванием, проблемы получения премиум-эккаунтов и удаление файлов по претензиям правообладателей. Найденный мной способ может использоваться как во благо — для автоматического распространения файлов внутри группы, так и во вред — для распространения вирусов, патчей и кряков и т.д. Виноват не изобретатель пистолета, а рука, его держащая.
              Читать дальше →
            • SICP теперь по-русски! Часть третья

                image
                Перевод третьей лекции из курса «Структура интерпретация компьютерных программ».

                Это самый известный курс по программированию за последние 25 лет; с 1980г читается в MIT, а с недавних пор что-то подобное читается и в Беркли.
                Курс сменил преподавателей и даже язык программирования Scheme на Python(на мой взгляд совершенно зря) и тем не менее информация, которая дается в этом курсе остается архи актуальной в любое время. Я бы сравнил этот курс с чем-то очень фундаментальным и важным для программистов, типа математики или теории алгоритмов.
                Мне бы очень хотелось, чтобы программирование у нас в стране преподавалось таким вот образом.
                Приятного просмотра!
                Читать дальше →
              • BBCode-enabled Growl Webkit Style

                  Продолжая тему Изучаем иностранные выражения (и не только), создал отдельный плагин для Growl, который поддерживает расширенное форматирование. Я считаю что для изучения языка (а не просто выражений) надо выводить немного больше информации, чем просто строчку «оригинал — перевод», например, добавлять контекст. Но в этом случае надо как-то отделять смысловые блоки друг от друга, желательно, визуально. Данный плагин это позволяет делать.

                  Естественно, возможности использования плагина не ограничены — он поддерживает полный набор BBCode-тегов. В данной заметке я расскажу как проинсталлировать и использовать плагин.
                  Читать дальше →
                • Удаление запущенного .exe с помощью потоков NTFS

                    Про потоки NTFS на хабре писали уже не раз, я же покажу, как с их помощью преодолеть одно ограничение Windows по работе с процессами. Тут эта тема в одном посте уже поднималась, но как-то вскользь. Я же хочу обратить на неё внимание.

                    Вы наверное знаете, что .exe файл работающего процесса невозможно удалить, пока он работает. Можно перемещать файл, но только в пределах своего раздела. С помощью потоков NTFS всё таки можно удалить файл процесса во время его работы.
                    Читать дальше →
                  • Пара слов о разработке и публикации add-ons для FireFox и Chrome

                      image
                      На днях мне обломился инвайт на лепру. В связи с чем появилось желание поэкспериментировать с плагинами для отображения картинок из комментариев к посту. Дальше о лепре ни слова, просто несколько тезисов о написании и публикации простого или чуть более чем простого адд-она для FireFox и Chrome. Ну и в конце — ссылки на поделки.
                      Читать дальше →
                    • Собеседования с разработчиками: вы делаете это неправильно

                      • Перевод
                      Истории о том, как люди проходят собеседования в Google, напоминают мне о тех давно ушедших днях, когда я работал в стартапе. За десять лет проведения «современных» IT-интервью наша компания ничему не научилась, и я был частью этой проблемы несколько лет. Я просто скопировал стандартный механизм интервью тех времен, и тем самым совершил большую ошибку. Я думаю, проблемы с производительностью в компаниях, в которых во главе угла ставятся разработчики, выжжены в их ДНК процессом найма новых сотрудников — в корне порочным.

                      Как мы это делали


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

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

                      Читать дальше →
                    • Эффективная обработка фотографий в Photoshop

                        Эффективная обработка фотографий в Photoshop

                        Читая статьи о Photoshop, я часто удивляюсь тому, насколько многие авторы усложняют решение по сути простых задач по обработке. Этим страдают и многие «монументальные» писатели, например Дэн Маргулис. Но ему это простительно – его задача написать о всех тонкостях и нюансах процесса обработки, рассмотреть его со всех ракурсов и сторон. Хотя именно эта особенность подачи материала в его книгах отталкивает многих читателей.

                        На самом деле, корни подобных способов «увеличить резкость в 40 действий» растут из очень простой вещи – люди, которые пишут эти уроки, никогда не работали с большим объемом фотографий. То есть, как правило, у них есть пара фотографий и они готовы в процессе их обработки убить вечер-другой. Но когда у тебя идут постоянные заказы, и с каждой фотосессии тебе надо серьезно обработать несколько десятков кадров – начинаешь задумываться о более простых и удобных способах обработки.

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

                        Читать дальше →
                      • Ричард Фейнман. Характер физических законов. Лекция 1

                          Мой хороший друг по собственной инициативе решил сделать перевод популярных лекций известного физика-теоретика, лауреата Нобелевской премии Ричарда Фейнмана, прочитанных им в Корнельском университете в 1964 году.

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

                          Итак, «Характер физических законов», лекция первая.



                          Те, кто интересуется, кто же такой Ричард Фейнман и почему его лекции настолько интересны, для начала могут ознакомиться со статьей в Wiki.

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

                          Кстати, у главного идеолога и реализатора идеи русскоязычного перевода нет аккаунта на Хабре, поэтому если понравится результат работы, он будет рад получить приглашение на почту. Спасибо, инвайт получен! Организатора перевода зовут ztarlitz.

                          UPD. Перенес в переводы.

                          UPD2. Для тех, кому неудобно смотреть на vimeo, есть вариант на Яндекс.Видео.