Привет! Я — Алексей Бондаренко, работаю в команде Платформа Банки.ру. Сегодня хочу рассказать о semantic-release и его практическом применении на примере упрощения разработки и внедрения библиотеки в проект.
Марсель Абдрахманов @marsABD
User
ИТ Стажировка в продуктовой компании? Казнить(,) нельзя(,) помиловать
11 min
5.6KReview
Привет! Меня зовут Павел, я Head of Mobile в финансовом маркетплейсе Banki.ru. Сегодня я хочу остановиться не на mobile и нашей внутренней кухне направления, а рассказать про опыт создания программ стажировок на базе наших продуктовых команд. Поговорим о подходах, подводных камнях, первых результатах, да и вообще о целесообразности создания подобных программ.
+4
Где Agile ужасен, особенно Scrum
15 min
95KTranslation
Гибкость — без сомнения хорошая вещь, и в манифесте Agile есть смысл. По сравнению с хрупкой практикой под названием «водопад», Agile заметно лучше. Тем не менее, на практике гибкие подходы часто наносят глубокий вред, и в действительности вряд ли здесь уместна дихотомия Agile/Waterfall.
Я видел, как множество вариантов Agile, называемых Scrum, реально убивают компанию. Под «убивают» я имею в виду не «ухудшение культуры», а скорее когда акции компании падают почти на 90% за два года.
Agile вырос из среды веб-консалтинга, где он приносил определённую пользу: при работе с привередливыми клиентами, которые не знают, чего они хотят, обычно приходится выбирать из двух вариантов. Или одолеть клиента: установить ожидания, соответствующую оплату за переделки и поддерживать отношения равенства, а не подчинения. Или принять некорректное поведение клиента (как, скажем, приходится многим дизайнерам) и ориентировать рабочий поток вокруг клиентской дисфункции.
Я видел, как множество вариантов Agile, называемых Scrum, реально убивают компанию. Под «убивают» я имею в виду не «ухудшение культуры», а скорее когда акции компании падают почти на 90% за два года.
Что такое Agile?
Agile вырос из среды веб-консалтинга, где он приносил определённую пользу: при работе с привередливыми клиентами, которые не знают, чего они хотят, обычно приходится выбирать из двух вариантов. Или одолеть клиента: установить ожидания, соответствующую оплату за переделки и поддерживать отношения равенства, а не подчинения. Или принять некорректное поведение клиента (как, скажем, приходится многим дизайнерам) и ориентировать рабочий поток вокруг клиентской дисфункции.
+45
Клавиатура для профессионалов: всё об UHK по-русски
5 min
26KПривет, GT! В спорах об эргоромичности тех или иных клавиатур преломлено множество копий, но, кажется, есть одна клавиатура, которую можно по праву назвать ультимативным решением практически любых проблем с «заводскими» эргономичными решениями. Судите сами: угол поворота одной части относительно другой настраивается (причём выставить можно реально любой, хоть 180 градусов). Расстояние между «половинками» — тоже. Кинематика работы свичей — на выбор покупателя. Продуманная до мелочей раскладка. Занимает минимум места на столе. Оптимизирована под слепой десятипальцевый метод ввода. Пригодность к моддину и установке дополнительных акесессуаров. Заинтригованы? Встречайте: Ultimate Hacking Keyboard!
+33
Быль о типографе
2 min
15KБыло время, когда каждый веб-разработчик писал свой типограф или думал о нём. Я не стал исключением и написал типограф на PHP. Но как сделать типограф без нормальной поддержки UTF-8, в то время я не представлял, в итоге забросил идею.
Прошло время, но идея создания типографа не оставляла, и я решил написать его уже на JavaScript.
Прошло время, но идея создания типографа не оставляла, и я решил написать его уже на JavaScript.
+23
Учебник AngularJS: Всеобъемлющее руководство, часть 2
22 min
191KTutorial
Translation
Часть 1
$rootScope не сильно отличается от $scope, просто это объект $scope самого верхнего уровня, от которого происходят все остальные области видимости. Когда Angular начинает создание вашего приложение, он создаёт объект $rootScope, и все привязки и логика приложения создают объекты $scope, являющиеся наследниками $rootScope.
Обычно мы не используем $rootScope, но с его помощью можно обеспечить передачу данных между разными областями видимости.
4.1 $rootScope
$rootScope не сильно отличается от $scope, просто это объект $scope самого верхнего уровня, от которого происходят все остальные области видимости. Когда Angular начинает создание вашего приложение, он создаёт объект $rootScope, и все привязки и логика приложения создают объекты $scope, являющиеся наследниками $rootScope.
Обычно мы не используем $rootScope, но с его помощью можно обеспечить передачу данных между разными областями видимости.
+25
Очень субъективный обзор JS фреймворков. AmpersandJS, часть 0
20 min
61KОт переводчика: когда я начал разбираться с MVC-фреймворками для фронт-энда, каким-то чудом попалась на глаза эта статья Henrik Joreteg. Сейчас дошли руки перевести ее для Хабра, тем более, что об AmpersandJS на Хабре вообще не слышно. Попробую организовать цикл статей по этому инструменту ребят из &yet, мне кажется, он достоин внимания.
В рамках наших образовательных семинаров я даю краткий обзор JS фреймворков. Я не очень-то хотел публиковать большую часть моих мнений об этих инструментах в Сети, потому что такие вещи, как правило, вызывают бурление масс, обижают людей, и в отличие от разговора с глазу на глаз, в интернет-дискуссиях нет действительно хорошей двунаправленной связи с аудиторией.
Но мне не раз говорили, что мой обзор крайне полезен и помогает получить сжатое и, в то же время, хорошее понимание в вопросе «кто есть кто в JS фреймворках для создания одностраничных приложений». По этому поводу я решил материализовать его и опубликовать как Нечто, но, пожалуйста, помните, что я просто высказываю свое мнение, я не говорю вам, что делать, и вы должны использовать те инструменты, которые лучше подходят вам и вашей команде. Вы можете запросто не согласиться со мной, написать об этом в Твиттере, или, еще лучше, опубликовать отдельный пост, объясняющий вашу позицию.
В рамках наших образовательных семинаров я даю краткий обзор JS фреймворков. Я не очень-то хотел публиковать большую часть моих мнений об этих инструментах в Сети, потому что такие вещи, как правило, вызывают бурление масс, обижают людей, и в отличие от разговора с глазу на глаз, в интернет-дискуссиях нет действительно хорошей двунаправленной связи с аудиторией.
Но мне не раз говорили, что мой обзор крайне полезен и помогает получить сжатое и, в то же время, хорошее понимание в вопросе «кто есть кто в JS фреймворках для создания одностраничных приложений». По этому поводу я решил материализовать его и опубликовать как Нечто, но, пожалуйста, помните, что я просто высказываю свое мнение, я не говорю вам, что делать, и вы должны использовать те инструменты, которые лучше подходят вам и вашей команде. Вы можете запросто не согласиться со мной, написать об этом в Твиттере, или, еще лучше, опубликовать отдельный пост, объясняющий вашу позицию.
Angular.js
за
- очень легко начать использовать. можно просто вставить тег script, добавить немного ng- атрибутов в ваше приложение, и вы волшебным образом получаете нужное вам поведение
- Angular хорошо поддерживается его основной командой разработчиков, многие из которых работают в Гугле на постоянной основе
- большая аудитория/сообщество
+39
Развертываем свой сайт на Heroku
4 min
163KTutorial
Здравствуй, Хабрахабр! Недавно у меня возникла необходимость развернуть свое Rails web-приложение на Heroku и я, к своему удивлению, не нашел почти ничего об этом на просторах не только Хабра, но и рунета в целом, поэтому я решил поделиться с вами своим опытом. Подробности о том, что и как я делал находятся под катом!
+2
ReactJS для глупых людей
5 min
484KПытаясь разобраться с библиотекой от Facebook ReactJS и продвигаемой той же компанией архитектурой «Flux», наткнулся на просторах интернета на две занимательные статьи: «ReactJS For Stupid People» и «Flux For Stupid People». Решил поделиться с хабравчанами переводом первой (а чуть позже и второй) статьи. Итак, поехали.
TL;DR В течении долгого времени я пытался понять, что такое React и как он вписывается в структуру приложения. Это статья, которой мне в свое время не хватало.
Чем отличается React от Angular, Ember, Backbone и других? Как управлять данными? Как взаимодействовать с сервером? Что, черт возьми, такое JSX? Что такое «component»?
СТОП.
Остановитесь прямо сейчас.
React — это ТОЛЬКО УРОВЕНЬ ПРЕДСТАВЛЕНИЯ.
ReactJS для глупых людей
TL;DR В течении долгого времени я пытался понять, что такое React и как он вписывается в структуру приложения. Это статья, которой мне в свое время не хватало.
Что такое React?
Чем отличается React от Angular, Ember, Backbone и других? Как управлять данными? Как взаимодействовать с сервером? Что, черт возьми, такое JSX? Что такое «component»?
СТОП.
Остановитесь прямо сейчас.
React — это ТОЛЬКО УРОВЕНЬ ПРЕДСТАВЛЕНИЯ.
+41
Будущее JavaScript MVC фреймворков
6 min
32KTranslation
Представляем Om
Нам, в нашем ClojureScript-углу, это было известно уже давно — все наши структуры данных неизменяемы и основаны на оригинальных коллекциях из Clojure, написанных на Java. Современные JavaScript движки в настоящее время достаточно оптимизированы и мы часто наблюдаем производительность этих коллекций в пределах 0.4X от JVM.
Стоп, стоп, стоп. А какое же отношение может иметь производительность неизменяемых структур данных к JavaScript MVC? — Достаточно существенное.
Возможно, объяснить это будет не очень просто, но все же я постараюсь. Дело в том, что неизменяемые структуры данных, представленные в новой библиотеке Om позволяют создавать приложения на порядок производительнее, чем на популярных JS MVC фреймворков, таких как MVC Backbone.js (без ручной оптимизации). Om построен на прекрасном фреймворке от Facebook — React. Если вы не слышали о нём раньше, рекомендую посмотреть видео с JSConf EU 2013. Интересен тот факт, что из-за неизменяемых коллекций Om может продемонстрировать результаты лучше, чем при использовании React без каких-либо модификаций.
+25
Краткое руководство по React JS
5 min
411KRecovery Mode
Статья даст вам краткий обзор того, как строятся интерфейсы с помощью React JS.
Вы можете параллельно писать код с помощью starter kit, или просто продолжать читать.
Вы можете параллельно писать код с помощью starter kit, или просто продолжать читать.
+17
AngularJs. Отложенная загрузка модулей
5 min
34KAngularJs – великолепный фреймворк для разработки web-приложений. Разработка бизнес-логики приложения полностью отделена от сопутствующей суеты вокруг DOM. Angular модульный – это замечательно, но так же является источником проблемы. Количество модулей быстро растёт. И если директивы ещё можно упаковывать в отдельные пакеты типа angular-ui, то с контроллёрами бизнес-логики всё сложнее. Всё становится ещё хуже, когда требования безопасности в принципе запрещают загрузку на клиента контроллёров с бизнес-логикой, которые недоступны текущему пользователю. При развитой ролевой системе доступа к приложению масштаб проблемы становится очевиден.
+19
15 лучших JavaScript-библиотек для построения диаграмм и сводных таблиц
6 min
308KTranslation
Практически невозможно представить себе информационную панель без диаграмм и графиков. Они быстро и эффективно отображают сложные статистические данные. Более того, хорошая диаграмма также улучшает общий дизайн вашего сайта.
В этой статье я покажу вам некоторые из лучших JavaScript библиотек для построения диаграмм/схем (и сводных таблиц). Эти библиотеки помогут вам в создании красивых и настраиваемых графиков для ваших будущих проектов.
Хотя большинство библиотек являются бесплатными и свободно распространяемыми, для некоторых из них есть платные версии с дополнительным функционалом.
В этой статье я покажу вам некоторые из лучших JavaScript библиотек для построения диаграмм/схем (и сводных таблиц). Эти библиотеки помогут вам в создании красивых и настраиваемых графиков для ваших будущих проектов.
Хотя большинство библиотек являются бесплатными и свободно распространяемыми, для некоторых из них есть платные версии с дополнительным функционалом.
+59
Karma — тестируем javascript в консоли
3 min
54KЗдравствуйте. Признаюсь честно, я пишу тесты редко. Т.е хотел бы чаще, но все как-то не получается. Вроде и руководство в принципе не против даже, но все равно находятся задачи посрочнее и поважнее. Тем не менее на днях заглянув в redmine обнаружил что задач практически нет (точнее они были, но требовали сперва дождаться бэкэнда).
Что ж, самое время вспомнить про тесты (конечно нужно было раньше о них думать, но лучше поздно чем никогда).
Вообще я до этого уже пробовал писать тесты, в том числе и на бэкэнде, а конкретно
Скачиваем, заходим в корень видим папку test а в ней файл karma.conf.js
Да и в самом ридми написано, что тесты запускаются так
Гуглим karmajs и находим то что нам нужно karma-runner.github.io/0.8/index.html
Утилита для тестирования. Итак что она может?
В общем то мне этих возможностей уже оказалось достаточно, чтобы взяться за нее. Но там есть и другие, в которые я пока не вникал, например интеграция с
Что ж, самое время вспомнить про тесты (конечно нужно было раньше о них думать, но лучше поздно чем никогда).
Вообще я до этого уже пробовал писать тесты, в том числе и на бэкэнде, а конкретно
django
. Я еще тогда подумал что было бы здорово запускать тесты из консоли а не в окне браузера. Ну а поскольку с недавнего времени я активно слежу за развитием angular
, то почему бы не посмотреть как это сделано у них. Тем более как-то краем глаза я зацепил момент, что там тесты как раз запускаются в консоли. Плюс к тому же с нуля разбираться в премудростях тестирования не хотелось и я решил взять какой нибудь готовый проект с тестами, посмотреть как оно сделано, и погонять собственно тесты на нем. Мой выбор пал на angular-ui, а точнее на один из его модулей ui-utils.Скачиваем, заходим в корень видим папку test а в ней файл karma.conf.js
Да и в самом ридми написано, что тесты запускаются так
karma start —browsers ….
Гуглим karmajs и находим то что нам нужно karma-runner.github.io/0.8/index.html
Утилита для тестирования. Итак что она может?
- Запускать тесты из консоли
- Автоматически прогонять все тесты при каждом сохранении!!!
- Возможность писать тесты на множестве фреймворков, таких как jasmine, qunit и др.
- Прогонять тесты сразу на нескольких браузерах. (в том числе виртуальных, например fantomjs).
В общем то мне этих возможностей уже оказалось достаточно, чтобы взяться за нее. Но там есть и другие, в которые я пока не вникал, например интеграция с
jenkins
+6
Несколько интересностей и полезностей для веб-разработчика #35
7 min
51KДоброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.
Репозиторий с самыми актуальными вопросами на собеседовании на позицию фронтенд разработчика. Проект от команды знаменитого HTML5 Boilerplate и набрал уже более 7500 звезд на GitHub.
В «Америках» почему-то часто критикуют веб-стандарты и работу консорциума W3C в целом. Но не знаю как вас, а меня современные возможности очень даже радуют, особенно когда я вижу их реализацию. Встречайте P2P сервис для передачи файлов, основанный на технологии WebRTC и Firebase. Это веб аналог яблочного AirDrop. Лично я открыл оффлайновый учебник «Постройка.ру» по HTML лет 7-8 назад и по сравнению с тем, что мы видим сейчас — это небо и земля. Даже невзирая на объем и некоторую путаницу в спецификациях.
Front-end Job Interview Questions
Репозиторий с самыми актуальными вопросами на собеседовании на позицию фронтенд разработчика. Проект от команды знаменитого HTML5 Boilerplate и набрал уже более 7500 звезд на GitHub.
ShareDrop
В «Америках» почему-то часто критикуют веб-стандарты и работу консорциума W3C в целом. Но не знаю как вас, а меня современные возможности очень даже радуют, особенно когда я вижу их реализацию. Встречайте P2P сервис для передачи файлов, основанный на технологии WebRTC и Firebase. Это веб аналог яблочного AirDrop. Лично я открыл оффлайновый учебник «Постройка.ру» по HTML лет 7-8 назад и по сравнению с тем, что мы видим сейчас — это небо и земля. Даже невзирая на объем и некоторую путаницу в спецификациях.
+57
Logitech выпустила клавиатуру для нескольких устройств
1 min
52KКомпания Logitech объявила о выпуске Bluetooth-клавиатуры Logitech Bluetooth Multi-Device Keyboard K480, которая может одновременно работать с несколькими устройствами — одновременно к ней можно подключить три девайса (компьютер, планшет и смартфон). Для переключения между устройствами используется специальное колесико на клавиатуре.
+36
Эмуляция NES/Sega/etc в кармане: Обзор/настройка EXEQ Ray 2 (JXD S5110b) — прошивка, софт, управление
8 min
48KВ этой статье я расскажу о своем опыте в эксплуатации и настройке игровой консоли на android "EXEQ Ray 2" (близнец JXD S5110b). При чем рассказывать я буду не о том, как она работает в качестве андроид-девайса, а исключительно в качестве эмулятора старых игровых консолей — Sega, NES (денди), SNES, DS, и т.п. Ведь именно в качестве портативного эмулятора я ее и покупал.
Быстро пробежимся по скучным техническим характеристикам:
В видеоролике ниже я покрутил приставку в руках, немного рассказал о ней и показал, как она работает:
Для всех, кто заинтересовался, далее я расскажу о всех проблемах, с которыми я столкнулся и расскажу, как их решал.
Быстро пробежимся по скучным техническим характеристикам:
- Габариты: 195х87х17 мм, 232 г
- Android 4.1.1 с root-правами «из коробки»
- Экран 5'', глянцевый, TN, 800x480, эмкостной тач на 5 касаний
- 8 Gb памяти + microSD
- 2-ядерный 1.5 GHz CPU
- Wi-Fi, mini-HDMI, акселерометр, камера 0.3 MPx
- Два аналоговых стика, два бампера (шифта), D-Pad, 4 кнопки, start, select
- Аккумулятор: Li-Ion 2200 mAh (3 часа игры)
- Стоимость: ~4200 руб.
В видеоролике ниже я покрутил приставку в руках, немного рассказал о ней и показал, как она работает:
Для всех, кто заинтересовался, далее я расскажу о всех проблемах, с которыми я столкнулся и расскажу, как их решал.
+42
Один день в офисе 500px. Фото-рассказ
3 min
109KЭтим летом мне посчастливилось быть в Торонто. Именно там, а не в привычной всем Долине, находится офис стартапа №1 в Канаде — 500px. Конечно, нельзя было упускать шанс побывать в гостях у известного на весь мир проекта, который, кстати сказать, создали и развивают два «наших» фотографа — москвич Евгений Чеботарев и киевлянин Олег Гуцол. Так что, в одну из пятниц я отправился в гости.
«500px — is a photo community powered by creative people worldwide», — так о своем проекте говорят сами авторы. Я бы добавил, что это лучший сайт с самыми красивыми фотографиями, которые я когда либо встречал.
Благодаря внутренней экосистеме, которая каждому в его ленту отбирает действительно потрясающие снимки, отличному интерфейсу и продуманным мотивационным правилам для фотографов, сайт получил мировую известность и продолжает стремительный рост.
Побывать в офисе у такого проекта и окунуться в рабочую атмосферу было по-настоящему интересно.
Основное рабочее пространство — open space в большой комнате. Столы расположены «фермами» в несколько рядов по 4-6 рабочих мест в ряду. Рабочие места — друг на против друга.
Что такое 500px?
«500px — is a photo community powered by creative people worldwide», — так о своем проекте говорят сами авторы. Я бы добавил, что это лучший сайт с самыми красивыми фотографиями, которые я когда либо встречал.
Благодаря внутренней экосистеме, которая каждому в его ленту отбирает действительно потрясающие снимки, отличному интерфейсу и продуманным мотивационным правилам для фотографов, сайт получил мировую известность и продолжает стремительный рост.
Побывать в офисе у такого проекта и окунуться в рабочую атмосферу было по-настоящему интересно.
Офис
Основное рабочее пространство — open space в большой комнате. Столы расположены «фермами» в несколько рядов по 4-6 рабочих мест в ряду. Рабочие места — друг на против друга.
+53
Microsoft взяла на работу дизайнера, создавшего футуристический бренд
1 min
136KДизайнер Эндрю Ким (Andrew Kim) наделал много шуму летом 2012 года, когда создал свой вариант брендинга для Microsoft. Бренд The Next Microsoft основан на научной фантастике, футуристическом развитии человеческого вида и освоении космоса.
Несколько дней назад Эндрю Ким написал в своём блоге, что после шести месяцев переговоров компания Microsoft взяла его на работу, в подразделение Xbox. Эндрю приступит к работе после окончания учёбы в университете, летом 2013 года.
+98
Lenovo показала 10 килограммовый планшет
1 min
152KНа выставке бытовой электроники CES 2013 которая сейчас проходит в США, компания Lenovo показала планшет размером с небольшой стол. IdeaCentre Horizon Table PC имеет диагональ в 27 дюймов и весит 10 кг. На первый взгляд IdeaCentre Horizon Table PC выглядит как моноблок, только без подставки. Как говорит Lenovo, устройство представляет собой «межперсональный компьютер», то есть устройство, которое изначально задумано, как решение для одновременной работы нескольких человек.
+53
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Works in
- Date of birth
- Registered
- Activity