Pull to refresh
42
0

Пользователь

Send message

Дайджест свежих материалов из мира фронтенда за последнюю неделю №312 (23 — 29 апреля 2018)

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


Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments0

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

Reading time10 min
Views30K

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


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

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


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

Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments84

Упрощаем универсальное/изоморфное приложение на 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
}));

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

Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments22

«Меньше некуда»: ученые из IBM сохранили информацию в атоме

Reading time2 min
Views12K
Для сохранения одного бита информации на жестком диске требуется порядка 100 тыс. атомов. 8 марта ученые из IBM Research представили результаты своего исследования, в котором показали, что можно сохранить такое же количество информации всего в одном атоме. Распространение этой технологии позволит записать музыкальный каталог Apple из 26 миллионов песен на запоминающее устройство размером с небольшую монетку.

Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments8

Работа с CouchDB на примере JavaScript приложения «Todo List»

Reading time3 min
Views9.7K
В какой-то промежуток времени мне пришлось работать с одной из документоориентированных СУБД — Apache CouchDB, но у меня возникли трудности с поиском документации. В этой статье хочу рассказать о том, как же работать в этой СУБД из JavaScript на примере небольшого приложения «Todo List». Так как статья ориентирована на ApacheCouchDB – я не буду показывать и рассказывать о том, как работает приложение в полной мере.
Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments3

Почему все виртуальные помощники — женщины?

Reading time5 min
Views31K


Вы замечали, в нашем мире все так устроено, что везде можно найти плюсы и минусы, черное и белое, мужское и женское? Понятно, что на Хабре 76,1 процентов мужчины, поэтому, если вы испытываете жесткий антагонизм к тематическим постам, можете смело дальше не читать. Под катом много картинок и пара любопытных историй о том, почему современные виртуальные помощники говорят женскими голосами.
Читать дальше →
Total votes 56: ↑39 and ↓17+22
Comments73

Квантовый компьютер: от мечты к реальности

Reading time12 min
Views8.2K
Сейчас весьма абстрактные идеи, лежащие в основе квантовой физики, воплощаются в реальность благодаря новым технологическим возможностям в области нанотехнологий и оптических взаимодействий. Об одной из таких идей, идее квантового компьютера, далее и пойдет речь. Постараюсь как можно более популярней.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments16

Самый большой серно-натриевый аккумулятор

Reading time1 min
Views4.1K
Во многих офисах стоят источники бесперебойного питания (UPS). Техасский городок Пресидио (Presidio), постоянно страдающий от перебоев в подаче энергии, решил построить свой собственный UPS.



На фотографии — самый большой в мире серно-натриевый аккумулятор под названием БОБ (big-old battery), который выполняет роль резервного источника питания для Пресидио. Он может хранить 4 мегаватта в течение восьми часов.

Строительство обошлось в $25 млн, тогда как прокладка новой линии электропередачи стоила бы почти вдвое дороже.

via Popular Science
Total votes 63: ↑52 and ↓11+41
Comments44

Утекший роадмап HTC раскрывает тайны гигагерцевого Android'а

Reading time3 min
Views1.5K
HTC BravoСовсем недавно на презентации, которую организовала HTC для представителей T-Mobile, произошла утечка информации о планах HTC на следующий год.

Итак, вся продуктовая линейка HTC будет разделена на несколько категорий:
  • Design / Lifestyle — смартфоны, ориентированные на молодежный сегмент рынка: HTC Legend, HTC Salsa.
  • Social — молодежные смартфоны, ориентированные на тесную интеграцию с социальными сетями (Twitter, Facebook, Flickr): HTC Tide, HTC Buzz.
  • Performance — смартфоны, у которых тысячи лошадей под капотом: HTC Bravo.
  • Productivity — смартфоны на Windows Mobile, расчитанные на бизнес-сегмент: HTC Photon, HTC Trophy, HTC Tera (римейк Touch Pro2).


По словам Эльдара Муртазина, в данном роадмапе отсутствует пара ключевых аппаратов HTC, как, например, HTC Espresso, или 10 дюймовый Tablet HTC Halo под управлением Android'а.

Перейдем к описанию самого ожидаемого смартфона на Хабрахабре.
Читать дальше →
Total votes 47: ↑39 and ↓8+31
Comments46

Электричество из воздуха

Reading time1 min
Views55K
Total votes 42: ↑31 and ↓11+20
Comments96

Мертвые с косами. И тишина…

Reading time11 min
Views11K
Хочу поделиться опытом сборки бесшумного компьютера для дома.

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

Корпус

Компьютерный корпус — это всего лишь коробка, более или менее прилично выглядящая. Однако, если уделить внимание шумоизоляции, удобству сборки и эффективности охлаждения, то все не так очевидно. Для большей гибкости я рассматривал корпуса без блока питания, т.к. уже заранее выбрал один из самых тихих БП (см. ниже).
Сразу скажу, что получилось дорого. Я выбрал корпус Antec P182 (на фото выше). Без блока питания они выпускают несколько моделей. Наиболее известные серии — P182 и P190 (сильно дороже). Есть еще довольно маленький корпус без БП NSK4000, но в небольших корпусах охлаждение менее эффективно и требует более шумных вентиляторов.
Наряду с Antec я почитал про корпуса Lian-Li. Они оригинальны тем, что сделаны из чистого алюминия. Выглядят очень стильно и сделаны с высоким качеством. Но в России распространены еще меньше, чем Antec.
Можно было, конечно, найти много хороших корпусов среди более дешевых. Что мне понравилось в Antec?
Читать дальше →
Total votes 222: ↑214 and ↓8+206
Comments212

IE8 Beta 2

Reading time1 min
Views772
Стала доступна для скачивания 2 бета-версия браузера IE8.

Нововведения по сравнению beta 1 есть, и их достаточно: цветные табы, inPrivate Browsing, новый внешний вид, улучшенное быстродействие, восстановление сессий, Compatibility View и т.д. Лучше увидеть самому, чем читать кучу обзоров ;)

Версию именно для вашей ОС (поддерживается только Windows) и на нужном вам языке (к сожалению, русского нет) можно выбрать здесь.

Total votes 119: ↑85.5 and ↓33.5+52
Comments134

Как рекламироваться в Google Adwords

Reading time1 min
Views13K
Мой опыт рекламы в Adwords. Будет полезен скорее новичкам, но, возможно, и опытные рекламодатели найдут что-то новое.

Что надо сделать до начала работы с Адвордс?
  • Завести карточку для оплаты в Интернет и узнать в банке ее CVV-код. Положить на нее некоторую сумму, например, $50.
  • Очень полезно почитать справку по Adwords.

Регистрация в Адвордс и настройка платежной информации

Зайдите на http://adwords.google.com и зарегистрируйтесь.

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

Настройте платежную информацию. Зайдите на вкладку Оплата — Настройки платежных данных. Выберите основной способ оплаты (для Украины я выбираю постоплату по кредитной карте и пишу транслитом имя, фамилию, адрес в том виде, как они заполнены в банке при получении кредитки, дату окончания срока карты и ее CVV-код).

Подбор ключевых слов

Допустим, Вы занимаетесь страхованием автомобилей.

Продолжение статьи здесь
Total votes 102: ↑90 and ↓12+78
Comments35

Как получить больше клиентов за малые деньги

Reading time1 min
Views665
Интересный эксперимент с системой контекстной рекламы «Бегун» провели авторы блога о контекстной рекламе rucontext. По заказу рекламодателя была реализована рекламная компания с 10 одинаковыми объявлениями на разных площадках и с разной стоимостью привлеченного посетителя.
Читать дальше →
Total votes 33: ↑23 and ↓10+13
Comments15

Заменяем стандартный элемент input file

Reading time5 min
Views14K
Недавно, занимаясь кастомизацией (да простят меня руссоведы) я бы даже назвал это веб-моддингом (ещё раз извините, уважаемые руссоведы) стандартных элементов формы, а в частности элемента file, я наткнулся на большую неприятность: он оказался не профпригоден для настройки. Суть вот в чём: от элемента file нам особенно нужно его диалоговое окно "Upload files", добыть который программными средствами в браузерах Mozilla и Opera невозможно, т.е. команда document.getElementById('SaveForm').click(); ничего не вернёт. Разработчики уверяют что это небезопасно, что спорно. А вот IE меня порадовал, он беспрепятственно отправляет нажатие мыши в элемент file, скорее всего по недосмотру разработчиков, оставивших «опаснейшую дыру» в Вашей безопасности.
Как же решить поставленную задачу?
Total votes 10: ↑8 and ↓2+6
Comments32

Хостеры развлекаются

Reading time1 min
Views617
Во время традиционного мониторинга поисковиков на предмет упоминаний нашей компании наткнулась на забавную вещь. При поиске слова «Majordomo» в Рамблере появляется контекстное объявление от компании PeterHost:

.
Что ж, ничего нового, но в долгу не останемся. Поэтому уже готов наш ответ ПетерХосту

Читать дальше →
Total votes 72: ↑64 and ↓8+56
Comments38

DrugMe.ru: медицинский Веб 2.0

Reading time3 min
Views622
На этой неделе интерактивная творческая система E-generator (принадлежит инвестхолдингу «Финам») представила новый проект – социальную сеть медицинской направленности DrugMe.ru. Как водится в Веб 2.0-ресурсах, наполнять его контентом будут пользователи. Точнее – те, кто имеет потребность обсудить свои болячки с целью, возможно, встретить дельный совет по их устранению.



Участники сети DrugMe.ru могут вести персональные блоги, записывая в них мысли на любую связанную со здоровьем тему. Могут знакомиться с информацией из каталога, который включает в себя снабженный пользовательскими отзывами перечень больниц, клиник и имен врачей. Сейчас в каталоге находятся только московские учреждения и специалисты, но по мере развития в планах охватить все регионы страны.

«Социальные сети – один из приоритетных векторов развития интернет-проектов «Финама», — говорит Сергей Михеев, руководитель блока «Интернет-проекты» холдинга. – В ближайшее время мы планируем представить несколько новых сайтов, относящихся к этому сегменту. Думаю, E-generator.ru войдет в число их основных разработчиков».

Чтобы узнать о DrugMe.ru подробнее, мы связались с Евгенией Кронберг, руководителем этого проекта.
Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments100

Оффлайн: Записки старого виртуала

Reading time3 min
Views785
Понедельник
Семья запинговала до полного ДДОСа – пришлось ехать в Белоруссию к родственникам. Еду в поезде. Ноутбук с собой, но интернета нет. Кругом полный оффлайн. Чувствую себя немного не в своей тарелке. Для успокоения решил представить, что я как Жак Ив Кусто, только не под водой, а в оффлайне. Становится легче…
Читать дальше →
Total votes 82: ↑60 and ↓22+38
Comments45

Разработка через жалобы

Reading time5 min
Views11K
В течение последнего года я мало писал, так как был занят разработкой нового средства для ведения дискуссий. Если вы, вслед за моими инвесторами, хотите знать, почему это заняло целый год, мне стоит объяснить, как именно я делаю программы, или, как минимум, как мы сделали Stack Overflow, Stack Exchange и, теперь, Discourse:

1. Проведите крайне подробное исследование всего, связанного с вашей тематикой. Успехи: в чем они ошиблись? Провалы: что они сделали правильно? Никто не должен знать об этой теме больше вас. У вас должна быть осмысленная история, в которую вы верите и, что еще более важно, в которую могут поверить другие.

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

3. Начните использовать этот продукт вместе со всей командой, каждый день, весь день. Это не просто разработка: это вся ваша жизнь. Если вы не живете разрабатываемой программой каждый день, целый день… проект неизбежно ждет плачевный исход. И, честно говоря, если мне приходится вам это объяснять, то знаете что? Вы в заднице.

Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments9

Репликация из OLTP в OLAP базу данных

Reading time3 min
Views6K
Мой друг Роберт Ходжес на днях опубликовал статью про репликацию из OLTP в OLAP базу данных (а именно, из MySQL в Vertica), которую его компания построила на своем продукте Tungsten. Самое интересное, это преобразование данных, которое происходит в процессе репликации. Подход достаточно общий, и может быть использован и для других систем.

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

Этот подход плохо работает с OLAP-специфичными, и особенно, колонко-ориентированными базами данных, которые хранят данные физически не по строкам, а по колонкам. Такие базы данных оптимизированы на запись, чтение и сортировку больших массивов данных, что типично для аналитических задач, но не на маленькие операции на единичных записях, потому что любая операция затрагивает много колонок, которые физически хранятся в разных файлах (а иногда и разных дисках). Хуже всего обстоит дело с изменением данных. Конечно, все базы данных поддерживают стандарт SQL и оператор UPDATE, но на физическом уровне он, как правило, транслируется в то, что обновляемая запись помечается как удаленная, а вместо нее вставляется измененная копия. Потом, когда-нибудь, «сборщик мусора» перетрясет таблицу и удаленные записи удалятся навсегда. Помимо плохой эффективности, отсюда следует, что частые удаления и обновления приводят к «засорению» базы данных, что снижает ее производительность в том числе и на чтение.

Роберт предложил, как мне кажется, новый, хотя и естественный подход к решению проблемы репликации данных для таких случаев. Бинарный лог преобразуется в последовательность частично упорядоченных множеств операций типа DELETE/INSERT для каждой таблицы, причем, так слово «множество» подразумевает, что «одинаковые» в некотором смысле операции достаточно сделать один раз. Поясню чуть подробнее.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments8

Information

Rating
Does not participate
Location
San Mateo, California, США
Registered
Activity