Search
Write a publication
Pull to refresh
0
0
Подгаев Алексей @alexiusp

User

Send message

Музыкальная теория для гиков

Reading time17 min
Views130K
imageКто-то считает музыку уделом избранных талантов, кто-то — набором физических закономерностей. Автор материала делает попытку объяснить знакомые каждому музыкальные термины, такие как тон, интервал, амплитуда, нота, октава, партитура, аккорд и так далее с помощью расчетов и технических обоснований. Ниже перевод оригинального текста.

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

Все остальные правила для меня выглядят совершенно, ну просто абсолютно произвольно. Почему у нас есть 12 нот, но для их обозначения применяются только 7 букв? Откуда взялись знаки при ключе? Почему ни одну статью по музыке в Википедии просто невозможно понять, не прочитав сперва все остальные?
Читать дальше →

OpenShift + Jenkins + Bitbucket, непрерывная интеграция и публикация из коробки

Reading time5 min
Views19K

В этой статье я покажу, как быстро развернуть среду для сборки, тестирования и публикации приложений используя платформу OpenShift на примере PHP проекта. Использовать буду OpenShift online, но всё это же можно развернуть и на собственных серверах или в VirtualBox (есть готовая сборка). Git-сервером для хранения и версионирования кода будет Bitbucket.
Читать дальше →

JavaScript 2016, а можно попроще?

Reading time8 min
Views45K

Последние полгода много пишут о неоправданной сложности клиентского JavaScript. Недавняя статья How it feels to learn JavaScript in 2016 и ее перевод на хабре вызвали много внимания, критика во многом справедливая, но...


Усложнять просто, упрощать сложно. (Один из законов Мерфи)


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


Как пример используется приложение для работы с коллекцией фильмов. Фильмы отображаются в списке с постраничной выборкой, поиском, сортировкой, редактированием и удалением.


Использованный стек: create-react-app как сборщик для клиента, React, bootstrap, API с json-server или json-заглушки.



Работающее демо здесь: Movies List.

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

Enum-switch антипаттерн

Reading time6 min
Views48K
В последнее время мне часто встречается в коде один интересный шаблон. Он заключается в том, что для описания небольшого множества объектов создается enum, а потом в разных местах кода значения из перечисления обрабатываются при помощи оператора switch.

Как выглядит реализация данного шаблона, и чем он опасен? Давайте разберемся.
Читать дальше →

«Fallout 1.5: Resurrection»: игровой постапокалипсис, каким он должен быть

Reading time3 min
Views67K


Кто не знает Fallout? Наверное, эту игру знают все. И большинство поклонников серии постапокалиптических приключений обитателей Убежищ знакомы не только с трехмерными играми, но и с первыми изометрическими вариантами. Сейчас любители «лампового» Fallout могут быть довольны: можно поиграть в мод для Fallout 2, который называется «Fallout 1.5: Resurrection».

Те, кто ознакомился с этим модом, утверждают, что «это тот Fallout 3, каким он должен был быть». Все начинается в с пробуждения персонажа в грязной канаве. Главный герой мало что помнит, а вокруг — множество мутантов. Для того, чтобы отсюда выбраться, сначала нужно победить парочку радскоприонов. Это сразу напоминает игроку, что он находится в среде старого доброго Fallout, а не современных его инкарнаций.

Предотврати это: облегчаем жизнь клиенту и себе заодно

Reading time3 min
Views4.2K
imageИтак, в предыдущей статье мы начали работу с сообщениями в продукте, позволяющую быстро и точно выяснить, какие ошибки и предупреждения наиболее часто видит пользователь. Что, в частности, позволяет выловить и починить плохо поддающиеся воспроизведению по команде проблемы вроде таймаутов или злоупотребления кнопкой Cancel. В этой же статье мы поговорим о том, как донести до пользователя еще и решение проблемы до того, как он обратится в техподдержку – благо, для этого нам понадобится совсем уж немногое: имеющийся реестр сообщений, база знаний и одно небольшое изменение в GUI.
Читать дальше →

Маленькая архитектура

Reading time6 min
Views23K


Я хочу стать архитектором ПО:


Это хорошая цель для разработчика


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


Хм. Ну, тогда ты вовсе не хочешь стать архитектором ПО.


Конечно хочу! Я хочу быть тем человеком, который принимает все важные решения.


Это хорошо, но ты не перечислил важных решений. Ты перечислил решения, не играющие особой роли.


В смысле? База данных – это не важное решение? Знаешь, сколько мы денег тратим на них?


Скорее всего слишком много. И нет, база данных – это не одно из самых важных решений.


Как можно такое говорить? База данных находится в самом центре системы! Там собраны все данные, они сортируются, индексируются и к ним осуществляется доступ. Без нее не будет системы!


База данных это просто устройство ввода-вывода. Так получилось, что она предоставляет некоторые полезные инструменты для сортировки, запросов и отчетов, но все это – вспомогательные аспекты в рамках системной архитектуры.

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

Валидировали, валидировали… и вывалидировали! Сравниваем валидаторы данных в PHP

Reading time12 min
Views20K

Изображение взято с сайта Michiana Stransportation (Bike Shops)


Если вы еще не в курсе, что такое Kontrolio, предлагаю прочесть первую часть — «Держите свои данные под контролем». Вкратце, это моя библиотека для валидации данных, написанная на PHP.

В предыдущей статье я обещал написать сравнение своей собственной библиотеки с другими имеющимися решениями, так что сегодня мы рассмотрим валидацию с помощью Aura.Filter, Respect Validation, Sirius Validation и Valitron.

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

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Reading time22 min
Views196K
image

Лицо моей жены, когда она вычитывала эту статью


Я решил написать цикл статей, который и сам был бы счастлив найти где-то полгода назад. Он будет интересен в первую очередь тем, кто хотел бы начать разрабатывать классные приложения на React.js, но не знает, как подступиться к зоопарку разных технологий и инструментов, которые необходимо знать для полноценной front-end разработки в наши дни.


Я хочу с нуля реализовать, пожалуй, наиболее востребованный сценарий: у нас есть серверная часть, которая предоставляет REST API. Часть его методов требует, чтобы пользователь веб-приложения был авторизован.

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

Строим свой full-stack на JavaScript: Клиент

Reading time12 min
Views31K

JavaScript на клиенте быстро меняется: библиотеки, фреймворки, упаковщики быстро появляютcя и сменяют один другой. Но несмотря на это, многие ключевые операции одинаковы для любого клиентского приложения. А в современных фронт-энд фреймворках, при всем их разнообразии, есть много общего.

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

Строим свой full-stack на JavaScript: Сервер

Reading time13 min
Views31K

Строим свой full-stack на JavaScript: Сервер



Вторая статья из серии о full-stack JS разработке.


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


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

Zone.js или как Dart спас Angular

Reading time7 min
Views42K


Я фронтенд-разработчик в компании Wrike, пишу на JavaScript и на Dart, который компилируется в JavaScript. Сегодня я хочу рассказать о библиотеке Zone.js, лежащей в основе Angular 2.

Изначально Zone.js была придумана разработчиками Google для языка программирования Dart и утилиты Dart2JS. С помощью этой библиотеки «гугловцы» решили проблему с дайджест-циклом, которая была характерна для первого Angular’а.
Чтобы понять, где эта библиотека используется и для чего нужна, прошу под кат.
Читать дальше →

Цифровая помощь: 14 полезных бизнес-ботов для Telegram

Reading time2 min
Views30K
Мессенджер, который придумал Павел Дуров, становится всё популярнее в этом году. Помимо того, что это удобная, надёжно защищённая кроссплатформерная программа, технология API  позволяет создавать ботов для приложения: боты — это аккаунты, управляемые программами, которые откликаются на определённые команды.

Некоторые создаются для помощи пользователям, некоторые делают для развлечения. При этом, постоянно увеличивается числ робо-помощников, которые могут быть использованы для решения тех или иных бизнес-задач. Я подготовил подборку 14 таких инструментов.
Читать дальше →

Как я изобретал велосипед, или мой первый MEAN-проект

Reading time12 min
Views26K

Сегодня, в период стремительного развития веб-технологий, опытному фронтэнд-разработчику нужно всегда оставаться в тренде, каждый день углубляя свои познания. А что делать, если Вы только начинаете свой путь в мире веб? Вы уже переболели вёрсткой и на этом не хотите останавливаться. Вас тянет в загадочный мир JavaScript! Если это про Вас, надеюсь данная статья придётся к стати.

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

Angular2: RC4 to RC5 Unit Tests Migration Guide

Reading time8 min
Views11K
image

Сразу скажу, что я не любитель Angular1, angular-way и иже с ними, потому как ребята из Angular таких делов наворотили, что иногда диву даешься. Тем не менее, их новое детище выглядит многообещающе. Да, Америку не открыли, но создали нечто, способное конкурировать с популярными современными фреймворками (React + Redux, Aurelia, и т.д.).

Есть и плюсы, и минусы, о которых уже написаны статьи и даже книги, но суть поста в другом.

RC5 вышел всего неделю назад и «порадовал» разработчиков многими изменениями, которые, возможно, и помогают в работе и упрощают жизнь, но заставят серьёзно попотеть над переписыванием уже написанного кода.
Читать дальше →

PHP-Дайджест № 89 – интересные новости, материалы и инструменты (17 – 31 июля 2016)

Reading time3 min
Views18K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →

О том, как мы на PHP запускали настоящий MS Excel и что из этого вышло

Reading time6 min
Views29K
Не секрет, что зачастую PHP-программистам приходится решать задачи, весьма далёкие от бытового представления о «веб-разработке». Развитие языка в последние годы привело к тому, что PHP всё чаще считают языком общего назначения, пригодным не только для сайтов, но и для других задач.

Одну из таких «других» задач мне с коллективом пришлось решать совсем недавно. Мы решили поделиться «картой граблей» с теми, кто, возможно, пойдет по этому же пути.

Дано


  • Многие наши партнёры (скажем прямо — это крупные банки) любят считать что-то в Excel. Причем «любят» — это очень нежно сказано. Сложнейшие скоринговые модели могут быть «запрограммированы» в Excel, в файле из сотни листов с десятками макросов
  • Перевести «программы», написанные в Excel на какой-либо язык программирования — практически нереально. Это займет уйму времени, а проблема постоянного обновления и проверки корректности делает такую задачу и вовсе нерешаемой


Требуется


  • Основная информационная система нашей компании написана на PHP. Она содержит в себе как веб-интерфейсы, так и множество консольных сервисов и воркеров.
  • С этими «программами» в Excel нужно как-то взаимодействовать из консольных приложений на PHP — передавать в них данные, обсчитывать, получать результаты

Некоторое время нам хватало возможностей популярной библиотеки PHPExcel. Но когда от бизнеса поступило очередное требование «нужно, чтобы работали макросы, и еще бы хорошо всё это сохранять в PDF», стало понятно, что выбранный путь — тупиковый. Нужно не парсить файлы xlsx, не имитировать просчёт, и даже не использовать Open Office, а научиться взаимодействовать с «настоящим» Microsoft Excel.


Что из этого вышло - под катом

Проецируя Google Material Design на десктопную систему… (часть третья)

Reading time5 min
Views20K


Краткое содержание второй части: редизайн раздела “Сделки” (воронка продаж), подбор цветов для всех стадий, отступы — воздух — свобода… Упс… Клиент, ты серьёзно? Взять и запихать теперь всё в 1370х768?!.. Прощайте “отступы — воздух — свобода”… Пришлось перейти в “сжатый” стиль.

Итак, тех, кто питает интерес к продолжению обзора проделанных работ — я приглашаю под кат. А тех, кто считает что GMD для десктопной системы, полный провал — я приглашаю более настойчиво (кто знает, может быть в заключении вы услышите то, что хотите услышать).
Читать дальше →

Режиссер потратил 7 лет на создание собственной версии Star Trek

Reading time2 min
Views31K
Видео продолжительностью почти в час выложено на YouTube



22 июля выходит Star Trek Beyond. В мире насчитывается несколько миллионов поклонников вселенной Star Trek, которые именуют себя Trekkies (или Trekkers). Все они вместе с любителями научной фантастики ждут выхода фильма на экраны. Кинокритики предрекают картине успех.

До похода в кинотеатр есть еще одна возможность насладиться миром Star Trek. 35-летний режиссер из Баварии по имени Юрген Кайзер (Jürgen Kaiser) потратил семь лет жизни на создание своей версии фильма. Его версия называется Star Trek Enterprise II: The Beginning of the End. Идея создать свой фильм по вселенной Star Trek пришла к режиссеру после завершения третьего сезона Star Trek: Enterprise. В этом сериале зрителю показывали самое начало освоения человечеством космических просторов Вселенной — в 2151 год, за 100 лет до событий основной сюжетной линии. В своем фильме режиссер показывает побочную сюжетную линию.
Читать дальше →

Бюджетный умный дом на основе 48 канального микс контроллера

Reading time4 min
Views15K
В данной статье расскажу о минимальной конфигурации умного дома для небольшой квартиры, гостиничного номера или офиса на основе универсального микс контроллера.
1. Универсальный микс контроллер для автоматизации гостиничных номеров, типовых квартир или офисов
У нас в распоряжении все 48 каналов:
релейные каналы с 1 по 13 по 5А каждый,
релейные каналы с 14 по 17 по 10А каждый,
каналы диммирования с 18 по 21 по 1А каждый,
24 сухих контакта,
подключение до 5 дверных звонков,
6 выходов управления светодиодными нагрузками
Система автоматизации отеля с помощью 48 каналов может отслеживать и управлять различными устройствами и режимами: панели, шторы, лампы, системы вентиляции и климат-контроля, а также другими устройствами
image
Читать дальше →

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Date of birth
Registered
Activity