Pull to refresh
18
0
Александр @oleks

Front-end

Send message

Новинки JavaScript: Асинхронные итераторы

Reading time5 min
Views23K

В этом небольшом посте я хочу рассказать об одном интересном предложении (англ. proposal) в стандарт EcmaScript. Речь пойдёт об асинхронных итераторах, о том, что это такое, как ими пользоваться и зачем они вообще нужны простому разработчику.


Асинхронные итераторы, это расширение возможностей обычных итераторов, которые с помощью цикла for-of/for-await-of позволяют пробежать по всем элементам коллекции.

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

Ansible: настраиваем zsh терминал с antigen, autosuggestions, fzf и красивым prompt одной командой

Reading time6 min
Views48K

Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно. Из этого рождается постоянное желание его настраивать, пробовать разные плагины. Шеллом я выбрал для себя zsh лет 5 назад, пару лет назад нашел oh-my-zsh для его удобной настройки.


Со временем к этому конфигу добавились некоторые сбоку торчащие части в виде powerline и percol.


Недавно я решил пересобрать все так, чтобы избавиться от ненужных плагинов, добавить нужные, сделать легкую установку и обновление. В итоге появилась роль ansible-role-zsh, которая полностью настраивает терминалы на локалке и на моих серверах.


Особенности:


  • устанавливается одной командой (кроме шрифта и темы вашего терминального клиента)
  • быстро загружается, быстро работает
  • полностью настраивается через ansible, ~/.zshrc
  • полностью локальная (в систему ничего не ставится, все хранится в ~/.oh-my-zsh)
  • оставляет возможность юзеру вносить свои настройки через ~/.zshrc.local
  • одинаково работает на macOS, старом Debian, Ubuntu, CentOS
  • нормально выглядит на разных цветовых схемах (но лучше всего на Solarized Dark)
  • встроенная подсветка синтаксиса (помогает реже ошибаться и лучше читать длинные команды)
  • автодополнение по истории команд (помогает реже нажимать Ctrl+R)
  • отображение времени для долго выполняемых команд (помогает реже использовать time)

Демонстрация фич за 1 минуту:


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

Синдром хронической усталости: как разобраться со сном, если ты устал уставать

Reading time6 min
Views48K
image

Проблема хронической усталости близка каждому. Сегодняшняя статья по книге «Вечно уставший» Джейкоба Тейтельбаума посвящена нарушениям сна и способам их исправления.

Почему сон важен


Ежедневные восемь часов ночного сна — один из самых эффективных способов повысить жизненный тонус.

Сегодня среднее время сна — 6 часов 45 минут, а ста годами ранее это были 9 часов. Наши предки ложились спать с заходом солнца и просыпались с рассветом, поэтому иногда их сон достигал 11 часов.

Сегодня проспать 8 часов это уже большая редкость — электричество, интернет и телевидение делают свое дело.
Читать дальше →

Упрощаем универсальное/изоморфное приложение на React + Router + Redux + Express

Reading time8 min
Views19K

На Хабре уже было предостаточно статей про то, как делать универсальное (изоморфное) приложение на стеке React + Redux + Router + Koa/Express (Google в помощь), однако я заметил, что все они содержат повторяющийся код для серверного рендеринга. Я решил упростить задачу и выделить этот общий код в библиотеку, так и появился на свет Create React Server, работает примерно так:


import Express from "express";
import config from "./webpack.config";
import createRouter from "./src/createRouter";
import createStore from "./src/createStore";
import {createExpressServer} from "create-react-server";

createExpressServer({
  createRouter: (history) => (createRouter(history)),
  createStore: ({req, res}) => (createStore()),
  port: 3000
}));

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

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

Бирюзовые организации: примеры и общие ответы

Reading time5 min
Views89K
Живу и тружусь в основном в Иркутске: в двух организациях, которые сложно назвать классическими. Одна относительно крупная: на примерно, т.к. есть приходящие фрилансеры, 20 человек оборот составляет несколько десятков миллионов рублей в месяц, а вторая — хобби, которое с двумя товарищами «по цеху» пытаемся монетизировать.

На Хабре есть статьи, посвящённые так называемым бирюзовым (по поводу цвета идут споры: кто-то развивает идею до изумрудных, кто-то останавливается на жёлтых, но всё это частности, и статья не об этом) организациям. Их же называют: синергетическими, холакратическими (не стоит путать с охлократическими). Есть и посты предостерегающие. И всё же…


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

Cкринкастинг на сайте по WebRTC из браузера Chrome

Reading time11 min
Views17K

Cкринкастинг в Chrome


Cкринкастинг (демонстрация экрана, скриншаринг) уже работает в браузере Google Chrome и позволяет захватывать как окно самого браузера, так и окно любого другого приложения. Например можно захватить Firefox, запущенный в соседнем окне.

Все бы замечательно, но есть проблема с безопасностью. В браузере Chrome скринкастинг выключен.

Для его включения необходимо воспользоваться Chrome Desktop Capture API и мы покажем в этой статье как это сделать.

Расширение для скринкастинга


Чтобы скринкастинг заработал, юзер должен установить ваше расширение (Chrome Extension), которое создано специально для вашего сайта (домена).
Читать дальше →

Использование Neutrino для быстрого начала разработки на JavaScript

Reading time5 min
Views16K

Тайсон Нил Деграс в детекторе нейтрино


Привет! Меня зовут Артем, и я занимаюсь тестированием веб-приложений в Badoo. Я регулярно изучаю профили крупных компаний на Github для того, чтобы узнать что-то новое как в веб-разработке, так и в трендах (иногда в будущих трендах). И это перевод статьи о Neutrino от Mozilla.


Neutrino — это инструмент, объединяющий в себе лучшие компоненты набора современных JavaScript-инструментов и простоту отсутствия первоначальных настроек.

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

Как сделать логотип на миллион, если ты не дизайнер

Reading time3 min
Views57K
Что делать, если хочется сделать для своего проекта классный логотип, а денег на это нет? Последние десять лет я занимался дизайном, поэтому всегда мог сделать лого для своих проектов самостоятельно. А как можно сделать классный логотип, если ты не дизайнер?

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

Что взять за основу React приложения

Reading time10 min
Views30K

Каждый раз начиная писать React приложение, вы так или иначе выберите какой-то вариант:


  • копи-паст вашего предыдущего проекта
  • какой-то бойлерплейт или даже генератор (типа Yeoman)
  • готовый фреймворк не требующий конфигурации
  • пишете сами все с нуля

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


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

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

Создаем изоморфное/универсальное приложение на Next.JS + Redux

Reading time5 min
Views38K

Это вторая статья о Server Side Rendering и изоморфных/универсальных приложениях на React. Первая под названием "Упрощаем универсальное/изоморфное приложение на React + Router + Redux + Express" была больше про кастомное решение, эта же статья нацелена больше на тех, кому не хочется заморачиваться, а хочется готовое решение, с коммьюнити, и вообще поменьше головной боли с настройкой, отладкой, подбором библиотек и т.д.


+


В данной статье будем рассматривать Next.JS, который обладает преимуществами в виде отсутствия конфигурации, серверного рендеринга и готовой экосистемы.


Из коробки Next.JS не умеет работать с Redux, поэтому в процессе написания пробного проекта я выделил получившийся общий код в отдельный репозиторий next-redux-wrapper, с помощью которого в этой статье мы и соберем приложение-пример на Next.JS + Redux.

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

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

Reading time40 min
Views156K


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →

Вносите изменения в код понемногу

Reading time4 min
Views26K


Всегда было любопытно узнать, что и как думают кодеры за океаном? Логично предположить, что техническое мышление и основные процессы должны быть схожими с российскими разработчиками. Под катом возможность сравнить наши походы с «тамошними». Если у вас все хорошо с английским, оригинал публикации и самого автора можно найти по ссылке
Читать дальше →

Как Discord хранит миллиарды сообщений

Reading time10 min
Views94K


Discord продолжает расти быстрее, чем мы ожидали, как и пользовательский контент. Чем больше пользователей — тем больше сообщений в чате. В июле мы объявили о 40 млн сообщений в день, в декабре объявили о 100 млн, а в середине января преодолели 120 млн. Мы сразу решили хранить историю чатов вечно, так что пользователи могут вернуться в любой момент и получить доступ к своим данным с любого устройства. Это много данных, поток и объём которых нарастает, и все они должны быть доступными. Как мы это делаем? Cassandra!
Читать дальше →

Универсальный грамматический анализатор естественных языков с нуля. Выпуск 1

Reading time13 min
Views13K
Компиляторы, интерпретаторы… Сколько им посвещено книг и проектов! Баста, надоело! А вот сунешся в область анализа естественных языков, и никакой информации! А все что есть как-то очень сложно, непонятно и не универсально. Была у меня идея создать средневековую лингвистическую новеллу. Чтобы можно было разговаривать с персонажами на каком нибудь древнем естественном или вымышленном языке. На Латыни например? И на Квенья. И чтобы они понимали. А почему бы и нет?
Читать дальше →

GameDev с нуля: От хакатона до собственной студии разработки игр. Часть 2

Reading time6 min
Views27K
Делимся продолжением истории из жизни инди-разработчиков из IzHard. Сегодня команда расскажет про события, которые с ними происходили после победы в международном конкурсе, а также про ошибки, которые они совершали в процессе развития.


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

Разработка механики игры Bounce от Nokia на JavaScript

Reading time6 min
Views18K
Давно уже не писал для хабра, сегодня хотелось бы порассуждать на тему того, как организовать простейшую механику уровней для игры Bounce на тот случай, если кто-то пожелает сделать что-то похожее и будут вопросы. Думаю, особых вступлений не требуется, поэтому начнем!

image

Я отказался от кофе, и вот что произошло

Reading time3 min
Views228K


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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №253 (6 — 12 марта 2017)

Reading time4 min
Views19K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы и интересные материалы из области фронтенда.


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

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

Reading time17 min
Views364K

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


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


Web PUSH Notifications


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


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

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

Большой обзор лучших конструкторов мобильных приложений в 2017 году

Reading time14 min
Views86K


Перед вами наша выборка лучших конструкторов приложений, с краткой информацией о том, как ее проводили. В этом обзоре только зарубежные (в основном с рынка США) решения, а для жителей России (и стран СНГ) мы предлагаем воспользоваться нашим конструктором appropio.com, который делается с учетом специфики нашего рынка. Если чуть отвлечься, то в России совсем плохо приживаются конструкторы. На нашей памяти закрылись два — myapps & getshopapp, хотя наш опыт разработки под заказ показывает — мало кто из среднего и малого бизнеса может позволить себе сделать приложение за 500 000+ рублей, держа в уме не проверенные для многих гипотезы по возврату вложенных средств (хотя мы наблюдали продажи в размере 5 000 000 р. в сутки из мобильных приложений сегмента fashion). Мы напишем отдельную статью для Хабра с попытками ответить на вопрос: почему лучшие зарубежные конструкторы так и не «взлетели» на нашем рынке позже, что мы планируем сделать для обратного :) и т.п. Кажется, что основную роль здесь играет наша ментальность…
Читать дальше →

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Works in
Date of birth
Registered
Activity