Search
Write a publication
Pull to refresh
26
0
Send message

learnopengl. Урок 1.8 — Системы координат

Reading time17 min
Views121K
imageВ предыдущем уроке мы узнали о том, какую пользу можно получить от преобразования вершин матрицами трансформаций. OpenGL предполагает, что все вершины, которые мы хотим увидеть, после запуска шейдера будут в нормализованных координатах устройства (NDC — normalized device coordinates). Это означает, что x, y и z координаты каждой вершины должны быть между -1.0 и 1.0; координаты вне этого диапазона видны не будут. Обычно мы указываем координаты в диапазоне, который настраиваем самостоятельно, а в вершинном шейдере преобразовываем эти координаты в NDC. Затем, эти NDC передаются растеризатору для преобразования их в двумерные координаты/пикселы вашего экрана.

Отслеживание js-ошибок с помощью Метрики

Reading time3 min
Views14K

Использование системы отслеживания js-ошибок трудно переоценить. Даже на покрытом тестами сайте возникают js-ошибки, важно их найти и починить. Расскажу как искал подходящее решение.

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

Web PUSH Notifications быстро и просто

Reading time17 min
Views365K

Добрый день. В этой небольшой заметке я хочу рассказать как быстро и просто настроить push-уведомления на вашем сайте. Эта статья ни в коем случае не претендует на звание исчерпывающего руководства, но, я надеюсь, что она даст точку старта для дальнейшего изучения.


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


Web PUSH Notifications


Я думаю, вы уже знаете что такое push-уведомления, но я всё же напишу коротко о главном.


Пользователь, заходя на сайт, вытягивает (pull) с него данные. Это удобно и безопасно, но с развитием интернет ресурсов, появилась необходимость оперативно доставлять информацию пользователям не дожидаясь пока те сами сделают запрос. Так и появилась технология принудительной доставки (push) данных с сервера клиенту.

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

Детский столярный станок PLAYMAT: обработка дерева своими руками — это интересно

Reading time4 min
Views36K

Из нескольких станков PLAYMAT можно собрать целый промышленный комплекс

Многие дети с самого раннего возраста стремятся что-то делать самостоятельно, помогая родителями или просто развлекаясь. Кто-то вместе с мамой подметает, кто-то учится забивать с папой гвозди. К сожалению, часто дальше выполнения детьми простых работ дело не идет. А ведь известно, что детишки учатся очень быстро, показывая, зачастую, отличные результаты. Что, если научить своего ребенка выполнять какие-то сложные задачи, чтобы полученные навыки могли пригодиться и в будущем?

Один из вариантов — это обучение своего чада основам электроники и программирования. Для этого существуют различные игрушки, конструкторы, мини-ПК с набором сенсоров. Кроме того, можно научить ребенка плотницкому и столярному делу. Здесь можно гарантировать, что для ребенка это будет чрезвычайно интересно, а навыки, полученные в детстве, помогут обрести уверенность в том, что он сможет сделать все, что нужно, своими руками. Но как это возможно? Ведь все эти пилы, гвозди, сверла, лезвия и прочие вещи очень опасны для малышей! На самом деле, выход есть. Было бы желание, а способ его реализовать можно найти почти всегда. В нашем случае выход — многофункциональный станок по дереву PLAYMAT. Детский станок, рассчитанный на использование детьми старшего дошкольного возраста.

Google выпустила TensorFlow 1.0

Reading time4 min
Views27K

TensorFlow 1.0 с моделью нейросети нового поколения Inception поддерживает аппаратное ускорение на DSP Hexagon в мобильных процессорах Qualcomm Snapdradon 820. Скорость работы приложений вроде Prism и программ машинного зрения увеличится в 8 и более раз, а энергопотребление снизится в 4 раза. Фильтры от нейросетей можно будет накладывать на видео почти в реальном времени

На первой конференции для разработчиков TensorFlow Dev Summit компания Google объявила о выходе мажорного релиза библиотеки TensorFlow 1.0, обратно несовместимого с предыдущими версиями. Это значит, что программы, работавшие на версиях TensorFlow 0.n, могут не работать на версии TensorFlow 1.0. Разработчики из Google говорят, что изменения в API были необходимы «для обеспечения внутренне согласованных программных интерфейсов», и больше такого не повторится: ломающих обратную совместимость изменений в будущих версиях 1.x не планируется. Сейчас разработчикам рекомендуется изучить руководство по миграции и использовать скрипт для преобразования.

TensorFlow — свободная программная библиотека для машинного обучения в применении к различным видам задач на восприятие и понимание языка. В данный момент она используется в научно-исследовательской работе и в десятках коммерческих продуктов Google, в том числе в Google Search, Gmail, Photos, Youtube, Translate, Assistant, а так же всевозможных системах распознавания, в том числе распознавания речи.
Читать дальше →

Node.js, Express и MongoDB: API за полчаса

Reading time11 min
Views246K
Начинающему программисту разработка для Node.js может показаться сущим кошмаром. Виной всему – гибкость этой платформы и отсутствие чётких руководств. Но, на самом деле, всё не так уж и страшно.


Вот, например, типичная задача: разработка REST API, серверной части некоего приложения. Обилие собственных возможностей Node и множество дополнительных модулей, которые способны помочь в решении этой задачи, способны завести новичка в тупик, вызванный богатством выбора. Основные вопросы здесь заключаются в подборе компонентов и в настройке их совместной работы.
Читать дальше →

Эволюция CSS: от CSS, SASS, BEM и CSS–модулей до styled-components

Reading time15 min
Views81K


С самого начала истории интернета мы нуждались в стилях для наших сайтов. Многие годы нам для этого служил CSS, развивавшийся в своём темпе. И здесь мы рассмотрим историю его развития.

Думаю, все согласятся с таким определением: CSS используется для описания представления документа, написанного на языке разметки. Также ни для кого не будет новостью, что за время развития CSS стал довольно мощным средством и что для использования в команде нужны дополнительные инструменты.

Async/await это шаг назад для JavaScript'a?

Reading time5 min
Views44K


В конце 2015 года я услышал об этой паре ключевых слов, которые ворвались в мир JavaScript, чтобы спасти нас от promise chain hell, который, в свою очередь, должен был спасти нас от callback hell. Давайте посмотрим несколько примеров, чтобы понять, как мы дошли до async/await.
Читать дальше →

Чек-лист вёрстки

Reading time7 min
Views82K

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

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

Математика CSS-шлюзов

Reading time18 min
Views55K

CSS-шлюзом (CSS-lock) называется методика из адаптивного веб-дизайна, позволяющая не перепрыгивать от одного значения к другому, а переходить плавно, в зависимости от текущего размера области просмотра (viewport). Идею и одну из реализаций предложил Тим Браун в статье Flexible typography with CSS locks. Когда я пытался разобраться с его реализацией и создать свои варианты, мне с трудом удавалось понять, что именно происходит. Я выполнил много вычислений и подумал, что полезно будет объяснить другим всю эту математику.

В статье я опишу саму методику, её ограничения и лежащую в её основе математику. Не волнуйтесь: там в основном одни сложения и вычитания. К тому же я постарался всё разбить на этапы и украсил их графиками.
Читать дальше →

JavaScript-тренды, на которые стоит обратить внимание в 2017-м

Reading time7 min
Views74K
image

Я решил написать этот материал после того, как увидел твит Дэна Абрамова, за который хочу сказать ему огромное спасибо. Дэн задал своим подписчикам вопрос о самых интересных событиях в мире JavaScript, которые достойны внимания широкой общественности.


Любители JS на вопрос откликнулись, под твитом собралась целая гора ответов. Каждый говорил о том, на что, по его мнению, стоит обратить внимание в 2017-м году. В результате получилась весьма занимательная подборка, из которой я выбрал всё лучшее и добавил пояснения.

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

Reading time12 min
Views31K

Недавно попалась интереснейшая английская статья, написанная Трейси Гарднер из TechAgeKids. В ней она делится интересными мыслями по поводу программирования детьми в текстовых и визуальных языках. Она приводит интересные наблюдения, которые совпадают с моим опытом развития детей в программировании. Представляю вам перевод данной статьи.


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

19 неожиданных находок в документации Node.js

Reading time11 min
Views46K
Мне хотелось бы думать, что я вполне прилично знаю Node. Вот уже три года, как ни один из сайтов, над которыми я работал, не обходится без него. Но документацию до сих пор я как следует не читал.

Мне нравится записывать полезные вещи об интерфейсах, свойствах, методах, функциях, типах данных, и обо всём прочем, что относится к веб-разработке. Так я заполняю пробелы в знаниях. Сейчас я занят документацией к Node.js, а до этого проработал материалы по HTML, DOM, по Web API, CSS, SVG и EcmaScript.

image

Чтение документации Node.js открыло мне немало замечательных вещей, о которых я раньше не знал. Ими я хочу поделиться в этом небольшом материале. Начну с самого интересного. Так же я обычно делаю, когда показываю новому знакомому свои гаджеты.
Читать дальше →

5 действительно бесплатных нелинейных видеоредакторов для Windows

Reading time6 min
Views438K
Этот пост призван помочь тем, кому, как и мне, внезапно стало тесно с Movie Maker.

Видеоредакторы почти не интересовали меня до прошлого месяца, пока с друзьями мы не задумали снять что-нибудь оригинальное к Новому году. Креативность наша ограничилась тем, чтобы, говоря терминами прежде мне неизвестными, применить эффект “Разделение экрана” (Split Screen). То есть реализовать нечто такое:


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

Нейронные сети на JS. Создавая сеть с нуля

Reading time8 min
Views92K

КПДВ про нейронные сети


Нейронные сети сейчас в тренде. Каждый день мы читаем про то, как они учатся писать комментарии в интернете, торговаться на рынках, обрабатывать фотографии. Список бесконечен. Когда я впервые посмотрел на масштаб кода, который приводит это в движение, я был напуган и хотел больше не видеть эти исходники.


Но врожденные любознательность и энтузиазм довели меня до того, что я стал одним из разработчиков Synaptic — проекта фреймворка для построения нейронных сетей на JS с 3к+ звезд на GitHub. Сейчас мы с автором фреймворка занимаемся созданием Synaptic 2.0 с ускорением на GPU и WebWorker-ах и с поддержкой почти всех основных фич любого приличного NN-фреймворка.


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

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

6 бесплатных CDN для ускорения и улучшения безопасности вашего сайта

Reading time5 min
Views77K


Улучшите два критически важных показателя вашего сайта — производительность и защищенность, воспользовавшись подходящей сетью доставки контента.

Вряд ли кому-то нравится низкая скорость загрузки веб-страниц, которая может стоить миллионы из-за упущенных продаж. Факты говорят сами за себя:

  • доход Shopzilla увеличился на 12% после того, как время загрузки сократилось с 6 секунд до 1,2 секунд;
  • по оценкам Amazon задержки в загрузках страниц лишь на одну секунду могут привести к потере продаж на $1,6 миллиарда ежегодно;
  • 21% покупателей бросают корзину покупок, если сайт работает медленно;
  • Google учитывает время загрузки сайта при выдаче результатов поиска, так что скорость влияет не только на доход. Быстрая загрузка позволяет продвинуться выше в поисковой выдаче.

Безопасность не менее важна для успешности сайта, и вам следует делать все возможное, чтобы предотвратить взлом вашего сайта.
Читать дальше →

Путь чайника в астрофото. Часть 3 — Туманность Ориона (M42)

Reading time3 min
Views17K
Привет geektimes! В предыдущей части «записок астрочайника» рассказывалось о съемке Юпитера, теперь пора перейти к более сложным объектам более дальнего космоса. Для примера возьмем самый известный и яркий объект, туманность Ориона M42. Как написано в Википедии, M42 находится на расстоянии около 1344 световых лет от Земли и имеет 33 световых года в поперечнике. Это самая яркая туманность, которая на темном (не городском) небе должна быть видна даже невооруженным глазом.

Если кто не знает созвездие и туманность Ориона, подсказка в виде картинки из Stellarium:


Подробности съемки под катом.
Читать дальше →

Путь чайника в астрофото. Часть 2 — съемка Юпитера

Reading time3 min
Views22K
Привет geektimes! В первой части было кратко рассказано, какое оборудование может подойти (или не подойти) для фотографии небесных тел. Во второй части перейдем к практическому рассмотрению того, как получить и как обрабатывать снимки.



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

20 полезных Node.js фреймворков

Reading time8 min
Views84K
За последние годы Node.js значительно повысил свой статус от экспериментальной технологии до основы для серьезных проектов. Node.js дает возможность построить достаточно сложные, высоконагруженные приложения на простом, элегантном и, самое главное, легковесном механизме. Но прежде всего Node.js – это совершенно увлекательная и захватывающая вещь, с которой по-настоящему интересно работать!

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

Функциональное тестирование современных web-приложений

Reading time12 min
Views36K


Современные web-приложения зачастую содержат множество "движущихся частей" и сторонних зависимостей. В процессе рефакторинга и добавления/изменения функциональности в таком приложении может произойти поломка существующих use-case сценариев и нестабильная работа в определенных браузерах.


Для своевременного обнаружения таких ситуаций и выполнения непрерывной интеграции необходимо функциональное тестирование web-приложения. В статье пойдет речь о двух бесплатных open-source решениях:


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

Information

Rating
Does not participate
Registered
Activity