Pull to refresh
20
0

Как мы оптимизировали Twitter Lite

Reading time 13 min
Views 12K

Twitter Lite и высокопроизводительные прогрессивные веб-приложения на React




Взгляд на то, как удаляли обычные и необычные узкие места в производительности при создании одного из крупнейших в мире прогрессивных веб-приложений (PWA) на React.js — Twitter Lite

Создание быстрого веб-приложения требует многих циклов измерений, куда тратится время. Нужно понять, почему это происходит, и применить потенциальные исправления. К сожалению, не бывает одного простого решения. Производительность — это бесконечная игра, где мы ищем и измеряем области для улучшения. В Twitter Lite сделано много маленьких улучшений в разных сферах: от первоначального времени загрузки до рендеринга компонентов React (и предотвращения повторного рендеринга), загрузки изображений и много другого. Большинство изменений небольшие, но они складываются, и в конечном результате мы получили одно из самых больших и быстрых прогрессивных веб-приложений.
Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Comments 10

Кровавый урожай

Reading time 6 min
Views 75K
by Alexis C. Madrigal, The Atlantic

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

Читать дальше →
Total votes 80: ↑76 and ↓4 +72
Comments 73

json-api-normalizer: легкий способ подружить Redux и JSON API

Reading time 10 min
Views 23K

JSON API + redux


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


Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 11

Опасности очаровашек в дизайне

Reading time 4 min
Views 28K

Заметка о том, как очаровашки приводят к проблемам


image

Первая ассоциация со словом “очаровашки” — все те милые глазу и сердцу вещи, от который тепло разливается по всему телу. Плюшевые игрушку. Капкейки. Обнимашки.

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

В мире дизайна, приятные детали принято восхвалять. Но, как вы скоро убедитесь, даже самые очаровательные элементы могут вовлечь вас в неприятности.
Total votes 61: ↑50 and ↓11 +39
Comments 40

Как проводят отпуск ИТ-специалисты — инфографика соцопроса

Reading time 3 min
Views 31K
На календаре – июль. Лето прочно вступило в свои права, наступил самый разгар отпусков. Мы решили узнать, как проводят время ИТ-специалисты на отдыхе, и провели опрос среди пользователей «Хабра» и «Моего круга».

В общей сложности на вопросы ответили 3342 респондента.

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

За подробностями и ответами на другие животрепещущие вопросы – добро пожаловать под кат.


Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Comments 3

Efficient Rails — новая книга по оптимизации процесса разработки Rails-приложений

Reading time 3 min
Views 9.2K


Эффективные Рельсы — более точного названия для книги придумать было бы сложно. Всё содержание описывается этими двумя словами и раскрывается для нас в сотне рецептов на 380+ страницах. В ожидании выхода финальной версии Rails 5, данное чтиво — то, на что стоит потратить время, благо потребуется его не так много. Но данное вложение вернётся колоссальной прибылью знаний и позволит, как говорится на обложке, «создавать Rails-приложения с нечеловеческой скоростью». Да и не только Rails, да и не только Ruby. Первые две главы включают в себя обилие информации по работе с терминалом и СКВ. Подробности под катом.
Узнать подробнее и получить промокод
Total votes 10: ↑9 and ↓1 +8
Comments 16

Социальное неравенство и зарплаты чиновников

Reading time 7 min
Views 68K
Волею судеб, ко мне в руки попали данные о заработных платах, премиях и сверхурочных множества госслужащих одного крупного портового города, от мэра до сторожа бассейна. Не теряя ни минуты, я бросился вгрызаться в цифры. Нет ничего любопытнее, чем смотреть на чужие зарплаты, особенно, когда можно оправдать себя тем, что занимаешься Data Science!

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

Сегодня мы поговорим про средние и медианные зарплаты, индекс социального неравенства Джини, отношения между богатыми и бедными (индекс Rich/Poor), непреодолимый разрыв доходов (эффект Матфея) и карьерный рост.

San-Francisco
Читать дальше →
Total votes 92: ↑83 and ↓9 +74
Comments 62

Data Context Interaction (DCI) — эволюция объектно-ориентированной парадигмы

Reading time 9 min
Views 36K
Слишком часто стала мелькать в западных блогах и твиттере аббревиатура “DCI”. Меня удивил тот факт, что на хабре по данной тематике почти нету информации, лишь в Ruby NoName Podcast S04E09 упоминалось об этом. Любопытство взяло вверх, и я решил узнать об этом загадочном слове побольше. В процессе поиска я наткнулся на хорошую статью, написанную на английском моим земляком, Виктором Савкиным. Данная статья без обильной теории, на практических примерах показывает, что из себя представляет DCI. Далее повествование будет идти от лица Виктора.
Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Comments 58

Иду, плыву: близ Новой Зеландии нашли рыбу с ногами

Reading time 2 min
Views 20K
image

Океанологи из Новой Зеландии сообщили о необычной находке в заливе Бей-оф-Айлендс в северо-восточной части острова. Отдыхавшие на пляже люди заметили во время отлива странную рыбу. Она имела тёмный окрас, а её нижние плавники сильно напоминали конечности, предназначенные для ходьбы. Заинтригованные туристы отправили рыбу в Музей Новой Зеландии для идентификации специалистами.

Специалисты музея поделились этой информацией на своей страничке в Facebook, и уже определили, что рыба принадлежит к семейству полосатых рыб-клоунов [Antennarius striatus] (или как их называют в англоязычной литературе, «frogfish», т.е. «рыба-лягушка»). Рыбы-клоуны получили своё название из-за невероятно ярких расцветок и странного внешнего вида. Данный экземпляр уникален своей тёмной однотонной раскраской — пока неясно, является он отклонением, или же это неизвестный ранее новый вид.

Тело рыб-клоунов покрыто разнообразной формы отростками, напоминающими листья, лишайники, а иногда – шерсть. Это хищные рыбы, они питаются другой рыбой и беспозвоночными. Обычно они поджидают жертву, затаившись у входа в какую-нибудь подземную пещерку. Один из отростков, идущих от позвоночника, имеет форму червяка и используется ими в качестве приманки.
Читать дальше →
Total votes 38: ↑31 and ↓7 +24
Comments 11

Занимательное функциональное программирование в Ruby

Reading time 13 min
Views 10K

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

Предположим, что единственный способ представления кода — лямбда-выражение, а единственная доступная структура данных — массив:

square = ->(x) { x * x }
square.(4) # => 16

person = ["Dave",:male]
print_person = ->((name,gender)) {
  puts "#{name} is a #{gender}"
}
print_person.(person)

Это самые основы функционального программирования: функции — единственное, что у нас есть. Давайте попробуем написать что-то более похожее на реальный код в таком же стиле. Посмотрим, как далеко мы сможем зайти без особых мучений.
Читать дальше →
Total votes 67: ↑64 and ↓3 +61
Comments 20

Команда математиков за полгода написала 600-страничную книгу, используя GitHub

Reading time 4 min
Views 61K
Перевод статьи Андрея Бауера — The HoTT book

Книга по HoTT закончена!

Начиная с весны, и даже раньше, я участвовал в командном проекте по написанию книги по гомотопической теории типов (Homotopy Type Theory). Она наконец написана и готова к употреблению. Вы можете скачать книгу бесплатно: homotopytypetheory.org/book. Майк Шульман рассказал о содержании книги, так что я не буду повторять то же самое. Вместо этого я бы хотел прокомментировать некоторые социо-технологические аспекты создания книги и, в частности, рассказать о том, чему нас научило сообщество Open source.
Читать дальше →
Total votes 145: ↑142 and ↓3 +139
Comments 35

Да, я пишу десктопные приложения под Windows

Reading time 5 min
Views 119K


Здравствуйте, меня зовут Владимир и я анонимный разработчик десктопных приложений под Windows. В этом месте все должны сказать «Здравствуй, Владимир!», а кто-то может быть добавит «Молодец, что осознал!». А потом все похлопают. Нет, правда, иногда от чтения Хабра у меня возникают именно такое ощущение, что нормально, нет, даже не «нормально», а допустимо и одобряемо сегодня писать только микросервисы для каких-то стартапов, которые будут по какому-то REST API отдавать данные какому-нибудь фронтенду на Ангуляре, который и будет, наконец, показывать пользователю что-то невероятно полезное, вроде таблицы с аггрегированными отзывами о стрижках пуделей с возможностью посмотреть на гуглокартах где бы в вашем городе можно было сделать именно такую стрижку вашему пуделю (несуществующему). А никаких других программ писать уже нет-нет, никак нельзя! Что за чушь?!

Да, многое сегодня происходит в вебе и на мобильных устройствах, но, знаете ли, далеко не всё. Значительная часть приложений по-прежнему является десктопным софтом. И даже (о, ужас!) не под Mac Os или Linux, а под тот самый богомерзкий Windows. И, знаете ли, софт этот живёт, развивается, поддерживается и является ежедневным рабочим инструментом миллионов людей. И никуда он мигрировать не собирается, потому что есть причины, по которым иногда именно десктопное приложение является лучшим вариантом.
Читать дальше →
Total votes 272: ↑231 and ↓41 +190
Comments 565

Фантастика сейчас

Reading time 2 min
Views 48K
Список свежей фантастики возрастом меньше 5 лет. А то все рекомендации и списки наполнены классикой без единого проблеска.

Произведения, претендующие на статус классических


1. Роберт Ибатуллин «Роза и Червь»

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

Аннотация от Алексея Анпилогова. Книга выйдет к новому году. К сожалению, автор удалил опубликованные части из странички на Самлибе.
Читать дальше →
Total votes 33: ↑28 and ↓5 +23
Comments 42

Микросервисы (Microservices)

Reading time 22 min
Views 674K
От переводчика: некоторые скорее всего уже читали этот титанический труд от Мартина Фаулера и его коллеги Джеймса Льюиса, но я все же решил сделать перевод этой статьи. Тренд микросервисов набирает обороты в мире enterprise разработки, и эта статья является ценнейшим источником знаний, по сути выжимкой существующего опыта работы с ними.

Термин «Microservice Architecture» получил распространение в последние несколько лет как описание способа дизайна приложений в виде набора независимо развертываемых сервисов. В то время как нет точного описания этого архитектурного стиля, существует некий общий набор характеристик: организация сервисов вокруг бизнес-потребностей, автоматическое развертывание, перенос логики от шины сообщений к приемникам (endpoints) и децентрализованный контроль над языками и данными.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 45

Управление сложностью в проектах на ruby on rails. Часть 2

Reading time 7 min
Views 11K
В предыдущей части я рассказал про представления. Теперь поговорим про контроллеры.
В этой части я расскажу про:
  • REST
  • gem responders
  • иерархию контроллеров
  • хлебные крошки

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

Контроллер содержит только логику взаимодействия с пользователем:
  • выбор view для отображения данных
  • вызов процедур обработки данных
  • отображение уведомлений
  • управление сессиями

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

Читать дальше →
Total votes 13: ↑9 and ↓4 +5
Comments 8

Подальше от обыденной реальности: фантастические романы, которые стоит прочитать

Reading time 4 min
Views 141K
image

Фантастика как жанр заставляет читателей и писателей выйти за пределы разумного, дать волю своему воображению и отправиться в неизведанные миры. За это мы и любим этот жанр. RoboHunter этой осенью предлагает с головой погрузиться в мир научной фантастики.
Читать дальше →
Total votes 63: ↑59 and ↓4 +55
Comments 273

Куртка для путешественников получила на Kickstarter $8 млн вместо $20 тысяч

Reading time 2 min
Views 34K


На Kickstarter получают финансовую поддержку не только гаджеты, видеоигры и разного рода кошельки. Здесь есть возможность получить средства на реализацию своего проекта и для компаний, которые планируют выпускать одежду. Самой успешной кампанией такого рода стал проект "Travel Jacket". Авторы идеи уже получили $8 млн вместо $20 тысяч, которые изначально запрашивались.

Куртка выглядит вполне обычно, но она включает множество элементов, которые просто необходимы для человека, которому часто приходится путешествовать.
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 42

Стандартная модель элементарных частиц для начинающих

Reading time 5 min
Views 74K
«Мы задаёмся вопросом, почему группа талантливых и преданных своему делу людей готова посвятит жизнь погоне за такими малюсенькими объектами, которые даже невозможно увидеть? На самом деле, в занятиях физиков элементарных частиц проявляется человеческое любопытство и желание узнать, как устроен мир, в котором мы живём» Шон Кэрролл

Если вы всё ещё боитесь фразы квантовая механика и до сих пор не знаете, что такое стандартная модель — добро пожаловать под кат. В своей публикации я попытаюсь максимально просто и наглядно объяснить азы квантового мира, а так же физики элементарных частиц. Мы попробуем разобраться, в чём основные отличия фермионов и бозонов, почему кварки имеют такие странные названия, и наконец, почему все так хотели найти Бозон Хиггса.
Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 58

Про сахара с точки зрения химика. Химия на кухне 2

Reading time 12 min
Views 133K

Старинная форма фасовки сахара — «сахарная голова»
Выкладываю продолжение, как обещал. Первый пост был про соль.
Про сахар. Какие бывают сахара. Про кленовый сахар и сахар ли он? Сосульки из кленового сока — ценный дар природы. Моно- и много- сахариды. Что общего у омара, тарантула, ёлки, гриба, мёда и ракеты «Кассам». Ставим химический опыт по превращению крахмала… Как блеснуть эрудицией. Фруктоза — польза и вред, две стороны вопроса. Кто виноват в том, что от молока болит живот. Как получается, что кислое варенье меньше засахаривается. Из чего делают мёд. Из чего делают сахар. Про тростниковый сахар — едим ради его вкуса.
Всем привет! Что-то после рассказов про «белую смерть», захотелось поговорить про «сладкую». Это такой каламбур, шутка юмора. Вопрос вреда, и в данном случае, как Вы уже догадываетесь, заключается в основном, в неумеренном потреблении. Ну вот, значит, встречаются на полке много разных сортов сахара, и из местных и приезжие, и начинают выяснять, кто из них лучше… Стоп! Не допустим мордобоя, и разберемся сами.
Читать дальше →
Total votes 143: ↑140 and ↓3 +137
Comments 159

Information

Rating
Does not participate
Location
Могилев, Могилевская обл., Беларусь
Date of birth
Registered
Activity