Pull to refresh
7
Владимир Кудинов @fruxread⁠-⁠only

User

Send message

Wheel-indicator — плагин эмуляции touchstart при работе с трекпадами

Reading time4 min
Views4.7K
Инерционные устройства ввода — это такие устройства, как тачскрины, трекпады, magic mouse и пр., По своей работе трекпады и magic mouse напоминают тачскрины мобильных устройств, т.е. продолжают генерировать события мышинного колеса после того, как пользователь закончил жест. Но в отличие от оных у нас отсутствует нативное событие touchstart. Все, что мы имеем, это объект события wheel. Touchstart часто бывает необходим, чтоб комфортно реализовать работу так называемых fullpage-сайтов, где при скроллинге происходит переход между экранами. Примером такого сайта может послужить alfabank. На нем же присутствует проблема прокрутки двух экранов подряд при использовании magic mouse или трекпада (особенно на макбуках). Достаточно слабый жест скроллинга вниз прокручивает ко второму, а потом сразу к третьему экрану. Чтоб попасть на второй экран, приходится пользоваться скроллбаром. Именно такого рода проблемы мы попытались решить используя лишь объект события wheel.
Читать дальше →

Создание игр без Canvas

Reading time8 min
Views20K
Однажды мне попалась на глаза карточная игра HeartStone от Blizzard. Играя в нее пришла мысль, что подобные вещи можно создавать используя технологии html5, что позволит им быть кроссплатфорсенными. На мой взгляд, подобные вещи могут делать люди, до сих пор занимающиеся только созданием сайтов.

Итак, что мы имеем:
  • Выделенный сервер с LAMP (без phpDaemon);
  • Желание обкатать WebSockets.


Собственно, все. Этого вполне хватит, чтобы осуществить задуманное.
Читать дальше →

Манипулирование БЭМ-структурой с помощью Bemy

Reading time3 min
Views7K
Если вы используете БЕМ-методологию в своих проектах и выделяете БЕМ-сущности указанным ниже образом, то bemy существенно упростит вам жизнь, избавив от необходимости вручную создавать файлы блоков.



Если вы также используете deps.js файлы формата enb, то bemy будет вам особенно полезен, так как приняв на выход путь к этому файлу, bemy создаем файловую структуру блока (по умолчанию с css-файлами).
Читать дальше →

Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса

Reading time29 min
Views108K
На прошлой неделе BBC рассказала, что для новой версии главной страницы использовала методологию БЭМ, созданную в Яндексе. По такому случаю мы решили поднять материалы мастер-класса «Разрабатываем сайт с нуля на полном стеке БЭМ-технологий» и рассказать вам, как начать использовать полный стек БЭМ-технологий в своих проектах.

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



В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.

На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Читать дальше →

Математическая задача о 100 коробках и спасении заключенных

Reading time7 min
Views149K
Предлагаю читателям «Хабрахабра» перевод публикации «100 Prisoners Escape Puzzle», которую я нашел на сайте компании DataGenetics. Все ошибки по данной статье присылайте, пожалуйста, в личные сообщения.

По условию задачи в тюрьме находится 100 заключенных, каждый из которых имеет личный номер от 1 до 100. Тюремщик решает дать заключенным шанс на освобождение и предлагает пройти придуманное им испытание. Если все заключенные справятся, то они свободны, если хотя бы один провалится — все умрут.


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

ReactJS для глупых людей

Reading time5 min
Views488K
Пытаясь разобраться с библиотекой от Facebook ReactJS и продвигаемой той же компанией архитектурой «Flux», наткнулся на просторах интернета на две занимательные статьи: «ReactJS For Stupid People» и «Flux For Stupid People». Решил поделиться с хабравчанами переводом первой (а чуть позже и второй) статьи. Итак, поехали.

ReactJS для глупых людей


TL;DR В течении долгого времени я пытался понять, что такое React и как он вписывается в структуру приложения. Это статья, которой мне в свое время не хватало.

Что такое React?


Чем отличается React от Angular, Ember, Backbone и других? Как управлять данными? Как взаимодействовать с сервером? Что, черт возьми, такое JSX? Что такое «component»?

СТОП.

Остановитесь прямо сейчас.

React — это ТОЛЬКО УРОВЕНЬ ПРЕДСТАВЛЕНИЯ.
Читать дальше →

Все способы перебора массива в JavaScript

Reading time7 min
Views553K

Содержание:


  • I. Перебор настоящих массивов
    1. Метод forEach и родственные методы
    2. Цикл for
    3. Правильное использование цикла for...in
    4. Цикл for...of (неявное использование итератора)
    5. Явное использование итератора

  • II. Перебор массивоподобных объектов
    1. Использование способов перебора настоящих массивов
    2. Преобразование в настоящий массив
    3. Замечание по объектам среды исполнения


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

Отказываемся от коллбэков: Генераторы в ECMAScript 6

Reading time6 min
Views34K
Я постоянно слышу людей, ноющих об асинхронных коллбэках в JavaScript. Держать в голове порядок исполнения в этом языке немного трудно (это тот случай, который называют «Callback Hell» или «The Pyramid of Doom»), если до этого ты имел дело с синхронным программированием. Моим обычным ответом было «тебе придется как-то с этим обходиться». В конце концов, ожидаем ли мы, что все языки программирования будут выглядеть и ощущаться одинаково? Конечно нет.

Все поменял недавний обзор черновика ECMAScript 6, в котором описываются генераторы — возможность языка, которая целиком изменит наш способ написания и серверного, и клиентского JavaScript. С помощью генераторов мы можем превратить вложенные коллбэки в похожий на синхронный код без блокирования нашей единственной event loop.
Например, этот код:
    setTimeout(function(){
        _get("/something.ajax?greeting", function(err, greeting) {
            if (err) { console.log(err); throw err; }
            _get("/else.ajax?who&greeting="+greeting, function(err, who) {
                if (err) { console.log(err); throw err; }
                console.log(greeting+" "+who);
            });
        });
    }, 1000);

может быть написан так:
    sync(function* (resume) {
        try (e) {
            yield setTimeout(resume, 1000);
            var greeting = yield _get('/something.ajax?greeting', resume)
            var who = yield _get('/else.ajax?who&greeting=' + greeting, resume)
            console.log(greeting + ' ' + who)
        }
        catch (e) {
            console.log(e);
            throw e;  
        } 
    });

Интересно, не правда ли? Централизованная обработка исключений и понятный порядок исполнения.
Читать дальше →

Выразительный JavaScript: HTTP

Reading time19 min
Views125K

Содержание




Мечта, ради которой создавалась Сеть – это общее информационное пространство, в котором мы общаемся, делясь информацией. Его универсальность является его неотъемлемой частью: ссылка в гипертексте может вести куда угодно, будь то персональная, локальная или глобальная информация, черновик или выверенный текст.

Тим Бернес-Ли, Всемирная паутина: Очень короткая личная история

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

Software renderer — 1: матчасть

Reading time29 min
Views86K
Программный рендеринг (software rendering) — это процесс построения изображения без помощи GPU. Этот процесс может идти в одном из двух режимов: в реальном времени (вычисление большого числа кадров в секунду — необходимо для интерактивных приложений, например, игр) и в «оффлайн» режиме (при котором время, которое может быть потрачено на вычисление одного кадра, не ограничено настолько строго — вычисления могут длиться часы или даже дни). Я буду рассматривать только режим рендеринга в реальном времени.

У этого подхода существуют как недостатки так и достоинства. Очевидным недостатком является производительность — CPU не в состоянии конкурировать с современными видеокартами в этой области. К достоинствам стоит причислить независимость от видеокарты — именно поэтому он используется как замена аппаратного рендеринга в случаях, когда видеокарта не поддерживает ту или иную возможность (так называемый software fallback). Существуют и проекты, цель которых — полностью заменить аппаратный рендеринг программным, например, WARP, входящий в состав Direct3D 11.

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

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

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

В конце статьи будет ссылка на гитхаб проекта, который можно рассматривать как пример реализации.
Читать дальше →

Курс пиксель-арта

Reading time4 min
Views294K
Это перевод публикации «Les Forges Pixel Art Course».

pdf на английском.

Часть 1: Правильные инструменты
Часть 2: Линии и кривые
Часть 3: Перспективы
Часть 4: Тень и свет
Часть 5: Палитры цветов
Часть 6: Сглаживание
Часть 7: Текстуры и размытие
Часть 8: Мир тайлов

Предисловие


Есть много определений пиксель-арта, но здесь мы будем использовать такое: изображение пиксель-арт, если оно создано целиком руками, и присутствует контроль над цветом и позицией каждого пиксела, который нарисован. Несомненно, в пиксель арте включение или использование кистей или инструментов размытия или машин деградации (degraded machines, не уверен), и других опций ПО, которые «современны», нами не используются (вообще-то put at our disposal значит «в нашем распоряжении», но по логике вроде правильнее так). Он ограничен инструментами такими как «карандаш» и «заливка».

Тем не менее не скажешь, что пиксель-арт или не-пиксель-арт графика — более или менее красива. Справедливее сказать, что пиксель-арт другой, и он лучше подходит для игр стиля «ретро» (как Супер Нинтендо или Гейм Бой). Вы можете также комбинировать техники изученные здесь, с эффектами из не-пиксель-арта, для создания гибридного стиля.

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

Официально представлена SailFish OS

Reading time1 min
Views37K
Представители финского стартапа Jolla, занятого разработкой мобильной операционной системы SailFish, которая основана на MeeGo, сегодня в Хельсинки провели официальную презентацию своего продукта и SDK preview для разработчиков. Лично презентацией руководил новый CEO Jolla Марк Диллон (предыдущий — Юссия Хурмола (Jussi Hurmola) — месяц назад внезапно покинул компанию)

Насколько можно понять, пока никакого живого устройства с запущенной системой пока нет, также как и слайдов с примерами UI — в пресс-релизе указана ссылка на рекламное видео, которое можно посмотреть ниже и на котором хорошо заметно, что для управления экранами используются swype-жесты (а при некотором внимании хорошо заметен и маленький зеленый android). Уже имеются характеристики, сравнивающие интерфейс SailFish с комбинацией Windows Phone и Android.



Также можно посмотреть как некто показывает, что SailFish уже работает на его Nokia N950.

UPD: Видео-демонстрация SailFish OS:



В основе SDK Sailfish OS лежит ядро Mer, Qt Creator, оригинальные Jolla UI и другие фреймфорки.
Пресс-релиз

Публикация приложения в Windows Store

Reading time9 min
Views70K
Привет.

Я студент-партнер Microsoft, и в этой статье я хотел бы поделиться с вами своим опытом публикации приложения в Windows Store и рассказать о некоторых особенностях сертификации и публикации.
Читать дальше →

Бесплатная регистрация в Windows Store для студентов и выбор банковской карты

Reading time3 min
Views65K
Совсем недавно Windows Store стал открыт для всех разработчиков. Я хочу поделиться своим опытом бесплатной регистрации в Windows Store через DreamSpark как студент и рассказать о преимуществах и особенностях использования виртуальных банковских карт.


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

С Днём Рождения, Хабр!

Reading time1 min
Views5.1K
Ровно шесть лет назад, 26 мая 2006 года, Денисом deniskin Крючковым был зарегистрирован первый пользователь сайта — habrahabr

Ежедневно Хабрахабр даёт нам массу полезной и интересной информации. Ежедневно мы задаём не простые вопросы и получаем качественные ответы от знающих людей. И всё благодаря тебе, Хабр!

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

С 6-летием, Хабр! Ура!

Музей Apple

Reading time1 min
Views5.4K
На нескольких ресурсах в тырнете прочитал что открылся музей техники Apple. Решил сходить. Под катом много фоток снятых на телефон. Очень рекомендую, довольно интересно посмотреть на «эволюцию компьютеров», и еще кажется странным, что в то время (а там много компов 1992-1995 гг.) были такие возможности. Все экспонаты можно трогать руками, большинство работает.



Пестовский переулок, дом 16, строение 1, второй этаж (ст. м. «Таганская», «Марксистская»).
 Работает каждую субботу и воскресенье с 12 до 18 часов. Вход бесплатный.

Профессионалы журналисты:
www.bg.ru/places/10131
www.appleinsider.ru/istoriya-apple/v-moskve-otkrylsya-muzej-apple.html

Музей:
ФБ и ВК

Больше фото на гугл+ plus.google.com/photos/113349912825051902718/albums/5713474632724480833
Читать дальше →

Какие в РФ бывают патенты. Ликбез, ч.3

Reading time3 min
Views8.3K
Итак, если Вы прочли ч1 и ч2 ликбеза, то Вы более-менее понимаете что такое патент и зачем он нужен. Теперь попробуем разобраться какие вообще бывают патенты.

Сразу замечу, что речь тут идёт только об РФ, но в большинстве прогрессивных стран дела обстоят примерно так же.
Читать дальше →

Детская порнография на сервере Первого канала

Reading time1 min
Views41K


В последнее время на федеральных каналах активно педалируется тема борьбы с детской порнографией.

Вероятно, для более эффективной борьбы, на сервере Первого канала размещен эталонный ролик:

Ссылка: нло://прилетело_и_удалило_ссылку_но_она_была (305 мб)

Папа, а почему на ноль делить нельзя?

Reading time6 min
Views238K
Моя трёхлетняя дочка София в последнее время частенько упоминает «ноль», например, в таком контексте:
— Соня, вот ты вроде сначала не послушалась, а затем послушалась, что же получается?..
— Ну… ноль!

Т.е. ощущение отрицательных чисел и нейтральности нуля уже имеет, о как. Скоро поинтересуется: почему же это на ноль делить нельзя?
И вот решил я простыми словами записать всё, что я ещё помню про деление на ноль и всё такое.
Читать дальше →

Модульные комиксы — простой способ увлечь аудиторию

Reading time2 min
Views34K
Борьба за внимание читателя/аудитории набирает обороты. Автор длительное время наблюдает за поведением людей на презентациях (сидя рядом) и слегка шокирован скоростью вхождения большинства индивидуумов в полусонное состояние.

Лекции о визуальном мышлении и разнообразные рецепты улучшения «перевариваемости» информации уже успели набить оскомину. Собственно, почему комиксы?

image

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

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead
Git
SQL
JavaScript
React
CSS
HTML
TypeScript
Node.js
Express
Webpack