Как стать автором
Обновить
42
0

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

Отправить сообщение

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

Время на прочтение3 мин
Количество просмотров18K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии0

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

Время на прочтение10 мин
Количество просмотров30K

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


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

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


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

Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии84

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

Время на прочтение8 мин
Количество просмотров19K

На Хабре уже было предостаточно статей про то, как делать универсальное (изоморфное) приложение на стеке 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
}));

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

Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии22

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

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

Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии8

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

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

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

Время на прочтение5 мин
Количество просмотров31K


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

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

Время на прочтение12 мин
Количество просмотров8.2K
Сейчас весьма абстрактные идеи, лежащие в основе квантовой физики, воплощаются в реальность благодаря новым технологическим возможностям в области нанотехнологий и оптических взаимодействий. Об одной из таких идей, идее квантового компьютера, далее и пойдет речь. Постараюсь как можно более популярней.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии16

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

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



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

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

via Popular Science
Всего голосов 63: ↑52 и ↓11+41
Комментарии44

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

Время на прочтение3 мин
Количество просмотров1.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'а.

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

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

Время на прочтение1 мин
Количество просмотров56K
Всего голосов 42: ↑31 и ↓11+20
Комментарии96

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

Время на прочтение11 мин
Количество просмотров11K
Хочу поделиться опытом сборки бесшумного компьютера для дома.

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

Корпус

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

IE8 Beta 2

Время на прочтение1 мин
Количество просмотров848
Стала доступна для скачивания 2 бета-версия браузера IE8.

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

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

Всего голосов 118: ↑85 и ↓33+52
Комментарии134

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

Время на прочтение1 мин
Количество просмотров13K
Мой опыт рекламы в Adwords. Будет полезен скорее новичкам, но, возможно, и опытные рекламодатели найдут что-то новое.

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

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

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

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

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

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

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

Продолжение статьи здесь
Всего голосов 102: ↑90 и ↓12+78
Комментарии35

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

Время на прочтение1 мин
Количество просмотров678
Интересный эксперимент с системой контекстной рекламы «Бегун» провели авторы блога о контекстной рекламе rucontext. По заказу рекламодателя была реализована рекламная компания с 10 одинаковыми объявлениями на разных площадках и с разной стоимостью привлеченного посетителя.
Читать дальше →
Всего голосов 33: ↑23 и ↓10+13
Комментарии15

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

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

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

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

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

Читать дальше →
Всего голосов 72: ↑64 и ↓8+56
Комментарии38

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

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



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

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

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

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

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

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

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

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

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

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

Читать дальше →
Всего голосов 42: ↑38 и ↓4+34
Комментарии9

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

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

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

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

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

Информация

В рейтинге
Не участвует
Откуда
San Mateo, California, США
Зарегистрирован
Активность