D3.js (или просто D3) — это JavaScript-библиотека для обработки и визуализации данных с невероятно огромными возможностями. Я, когда впервые узнал про нее, наверное, потратил не менее двух часов, просто просматривая примеры визуализации данных, созданных на D3. И конечно, когда мне самому понадобилось строить графики для небольшого внутреннего сайта на нашем предприятии, первым делом вспомнил про D3 и с мыслью, что “сейчас я всех удивлю крутейшей визуализацией”, взялся изучать исходники примеров…
User
Офис компании Boomburum
19 min
412K
Осторожно, трафик! Но можно хотя бы посмотреть картинки )
Идея создать дома свой «рабочий кабинет» у меня зрела давно – как-то сам дошел до осознания его необходимости, хотя немалый вклад в начинания сделал этот давний пост на Хабре. У меня было своё рабочее место – большой удобный стол, где помещалось практически всё и даже больше… но, по сути, он был проходным двором – все время кто-то ходил, был рядом, отвлекал… такое очень часто мешает сосредоточиться и начать работать. Иногда, бывает, сидишь весь вечер за компом и понимаешь, что абсолютно ничего не сделал, хотя родным заявил «так, мне надо поработать».
+512
Надзиратель для фрилансера: выбираем систему учета рабочего времени
11 min
159K
Чуть более ста лет назад инженер Фредерик Тейлор встал за спиной фабричных рабочих с секундомером и стал измерять, сколько времени они тратят на рутинные операции. Вскоре стало ясно, что их можно «оптимизировать» — повысить производительность с помощью системы научной организации труда. Именно из нее выросло современное массовое производство. Но могли ли тогдашние рабочие представить, что их правнуки примутся измерять свою производительность не по приказу капиталиста, а по собственной инициативе? Современным работникам умственного труда приходится самостоятельно планировать деятельность, а секундомер Тейлора им заменяют специальные программы для учета рабочего времени — тайм-трекеры.
+26
Spark local mode: обработка больших файлов на обычном ноутбуке
3 min
24K
Всем привет.
4 января вышла новая версия Apache Spark 1.6 с
+12
Транзакционные письма (интернет-магазина, сервиса и так далее)
5 min
12K
Привет! А я продолжаю цикл (в блоге замечательного человека Михаила, владельца Текстброкера) про буквы, и что из них можно собрать.
Транзакционные письма — это, грубо говоря, письма-подтверждения, что всё идёт нормально. Например, в двухтысячных у интернет-магазинов было только одно транзакционное письмо: «Ваш заказ подтверждён». После того как Амазон убедительно доказал, что покупателя надо держать в курсе, появилась целая цепочка:
— Да, мы приняли ваш заказ
— Заказ обрабатывается
— Поступила оплата
— Заказ начал собираться на складе
— Товар поехал к вам, будет завтра
— Через час ждите курьера (это обычно SMS, а не email)
— Заказ прибыл, всё хорошо?
Подход к написанию этих писем такой же, как к проектированию UI/UX-моделей. И принципы используются те же самые, что в навигации.
+14
Power Query: стероиды для MS Excel и Power BI
7 min
219K
В данной статье я хочу рассказать о некоторых возможностях бесплатной и крайне полезной, но пока еще мало известной надстройки над MS Excel под названием Power Query.
Power Query позволяет забирать данные из самых разных источников (таких как csv, xls, json, текстовых файлов, папок с этими файлами, самых разных баз данных, различных api вроде Facebook opengraph, Google Analytics, Яндекс.Метрика, CallTouch и много чего еще), создавать повторяемые последовательности обработки этих данных и загружать их внутрь таблиц Excel или самого data model.
И вот под катом вы можете найти подробности всего этого великолепия возможностей.
+34
Как описывать товар интернет-магазина
5 min
19K
Продолжаю рассказы про то, как складывать буквы в слова и предложения. Теперь практика по товарам на сайте.
Первое, что нужно понимать – что оптимальная стратегия продажи заключается не в том, чтобы всеми силами продвигать один отдельно взятый товар, а в том, чтобы предельно сузить его аудиторию. Это значит, что если пытаться описывать товар как лучший-в-мире-для-всех-и-всего, его просто не купят.
Задача магазина – не продавать один товар, а продавать как можно больше товаров в целом. Для этого нужно очень точно, объективно и со знанием вопроса разделять их по тому, для чего и для кого они нужны. Каждый товар ассортиментной линейки должен чётко ориентироваться на одну задачу и одну аудиторию.
Но это слишком очевидно и правильно, поэтому так никто не делает.
+12
Чуваки, я сейчас расскажу, как писать, если вы не умеете — и ещё в чём проблема копирайтеров
8 min
41K
Привет! Это ёжик, и он теперь будет жить с нами. Конкретно, я буду вести тут время от времени рассказы о том, как писать тексты в корпоративном блоге человека-парохода Михаила, из-за которого 11 лет назад я и влез в эту тему.
Итак, проблема простая. Вы здорово объясняете на словах, но не можете написать ничего толком. Знаете, что? Вам повезло. Потому что если вы наймёте специального человека — копирайтера — который расскажет всё за вас, будет хуже.
Никто кроме вас не знает всех особенностей вашего дела. Никто кроме вас не может быть точнее, конкретнее и убедительнее. Никто кроме вас не вспомнит живой пример из практики и не скажет точнее. Вы – профессионал. И вы наверняка понимаете, о чём речь, и отличаете профессионалов от «продажников» по первым же словам.
Вы уже умеете писать. Просто ещё никогда этого не делали.
+18
Зачем нужны почты no-reply@?
4 min
170KПочты вида noreply@domain.ru, no-reply@domain.ru и прочие — вызов здравому смыслу. Просто вдумайтесь: это действующие почтовые ящики, на которые можно отправить письмо, но делать этого не нужно. Я знаю такой же по логичности объект – это кнопка «не нажимать». Вот примерно такая:

Есть такие штуки – протоколы, стандарты, принятые шаблоны использования. Все они однозначно подсказывают, что если есть почтовый адрес, на него можно написать. Если бы нам нужен был почтовый адрес, на который нельзя писать, его бы описали вместе со всем стеком протоколов, который обеспечивает работу электронной почты. Но его такого тупо нет. И тут на сцене появляется наш noreply.

Есть такие штуки – протоколы, стандарты, принятые шаблоны использования. Все они однозначно подсказывают, что если есть почтовый адрес, на него можно написать. Если бы нам нужен был почтовый адрес, на который нельзя писать, его бы описали вместе со всем стеком протоколов, который обеспечивает работу электронной почты. Но его такого тупо нет. И тут на сцене появляется наш noreply.
+84
Целенаправленная и сознательная деавтоматизация бизнеса
7 min
46K
Мы тут часто говорим про то, как круто автоматизировать разные вещи. Но иногда бывает нужно делать совершенно обратный процесс — убирать автоматизацию там, где она мешает. В нашем случае, например, где она явно мешает зарабатывать или общаться с покупателем.
Например, мы выпилили почти весь IVR; сделали сценарий обхода заполнения полей корзины; добились того, чтобы почти везде были личные контакты сотрудников (даже на кассовом чеке печатается прямой сотовый телефон регионального управляющего); положили прямые почтовые адреса всех до учредителя на каждую страницу сайта; выбросили часть автоуведомлений и заменили их на живые звонки.
И вообще вели себя вызывающе с точки зрения ИТ.
При этом объём кода, нужные мощности и сложность реализации процессов росли. Дело в том, что такая деавтоматизация требует очень нехилых вложений в ИТ. Сейчас объясню на примерах, в чём дело и зачем мы так странно делаем.
+80
Поиск с помощью регулярных выражений может быть простым и быстрым
21 min
49KTranslation
В этой статье мы рассмотрим два способа поиска с помощью регулярных выражений. Один широко распространён и используется в стандартных интерпретаторах многих языков. Второй мало где применяется, в основном в реализациях awk и grep. Оба подхода сильно различаются по своей производительности:

В первом случае поиск занимает A?nAn времени, во втором — An.
Степени обозначают повторяемость строк, то есть A?3A3 — это то же самое, что и A?A?A?AAA. Графики отражают время, требуемое для поиска через регулярные выражения.
Обратите внимание, что в Perl для поиска строки из 29 символов требуется более 60 секунд. А при втором методе — 20 микросекунд. Это не ошибка. При поиске 29-символьной строки Thompson NFA работает примерно в миллион раз быстрее. Если нужно найти 100-символьную строку, то Thompson NFA справится менее чем за 200 микросекунд, а Perl понадобится более 1015 лет. Причём он взят лишь для примера, во многих других языках наблюдается та же картина — в Python, PHP, Ruby и т. д. Ниже мы рассмотрим этот вопрос более детально.
Наверняка вам трудно поверить приведённым данным. Если вы работали с Perl, то вряд ли подмечали за ним низкую производительность при работе с регулярными выражениями. Дело в том, что в большинстве случаев Perl обращается с ними достаточно быстро. Однако, как следует из графика, можно столкнуться с так называемыми патологическими регулярными выражениями, на которых Perl начинает буксовать. В то же время у Thompson NFA такой проблемы нет.
Возникает логичный вопрос: а почему бы в Perl не использовать метод Thompson NFA? Это возможно и следует делать, и об этом пойдёт далее речь.


В первом случае поиск занимает A?nAn времени, во втором — An.
Степени обозначают повторяемость строк, то есть A?3A3 — это то же самое, что и A?A?A?AAA. Графики отражают время, требуемое для поиска через регулярные выражения.
Обратите внимание, что в Perl для поиска строки из 29 символов требуется более 60 секунд. А при втором методе — 20 микросекунд. Это не ошибка. При поиске 29-символьной строки Thompson NFA работает примерно в миллион раз быстрее. Если нужно найти 100-символьную строку, то Thompson NFA справится менее чем за 200 микросекунд, а Perl понадобится более 1015 лет. Причём он взят лишь для примера, во многих других языках наблюдается та же картина — в Python, PHP, Ruby и т. д. Ниже мы рассмотрим этот вопрос более детально.
Наверняка вам трудно поверить приведённым данным. Если вы работали с Perl, то вряд ли подмечали за ним низкую производительность при работе с регулярными выражениями. Дело в том, что в большинстве случаев Perl обращается с ними достаточно быстро. Однако, как следует из графика, можно столкнуться с так называемыми патологическими регулярными выражениями, на которых Perl начинает буксовать. В то же время у Thompson NFA такой проблемы нет.
Возникает логичный вопрос: а почему бы в Perl не использовать метод Thompson NFA? Это возможно и следует делать, и об этом пойдёт далее речь.
+73
Тематическая картография: общие вопросы
26 min
29KTutorial

Хочу поделиться с вами переводом руководства по тематической картографии от ребят из axismaps.
Рекомендую к прочтению информационным дизайнерам, журналистам (данных), аналитикам, начинающим картографам, а также всем, кто хочет научиться читать тематические карты и отличать хорошую карту от плохой, вводящей читателя в заблуждение. Всех заинтересовавшихся приглашаю под кат.
+21
Топ-10 data mining-алгоритмов простым языком
24 min
129KTranslation

Примечание переводчика: Мы довольно часто пишем об алгоритмической торговле (вот, например, список литературы по этой теме и соответствующие аналитические материалы) и API для создания торговых роботов, сегодня же речь пойдет непосредственно об алгоритмах, которые можно использовать для анализа различных данных (в том числе на финансовом рынке). Материал является адаптированным переводом статьи американского раработчика и аналитика Рэя Ли.
Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.
Когда вы узнаете, что они собой представляют, как работают, что делают и где применяются, я надеюсь, что вы используете эту статью в качестве отправной точки для дальнейшего изучения принципов data mining.
+43
8 ресурсов для бесплатного образования на русском языке
3 min
63KTutorial
Как выглядит процесс обучения? Детсад, школа, университет и эпизодические курсы повышения квалификации, да и то не у всех. До конца жизни человек идет на том багаже знаний, который набрал в начале. Сейчас есть запрос на то, чтобы процесс обучения стал постоянным. Нужно поменять специализацию – пожалуйста. Нужно усилиться – пожалуйста. Делать это виртуально может быть проще и удобнее, ведь нет никаких барьеров. При этом качественные знания можно получить бесплатно. Представляю 8 платформ, на которых можно учиться на русском языке без бюджета.
+21
7 правил создания красивых интерфейсов. Часть 2
9 min
104KTranslation

Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Сегодня мы публикуем вторую часть перевода. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.
Мы говорили о правилах создания чистых и красивых интерфейсов.
Вот эти правила:
- Свет падает сверху (Часть 1)
- Сначала черное и белое (Часть 1)
- Увеличьте белое пространство (Часть 1)
- Научитесь накладывать текст на изображения
- Научитесь выделять и утапливать текст
- Используйте только хорошие шрифты
- Крадите как художник
+42
Принципы анимации для веба
8 min
94KTranslation
Примечание переводчика: Представленный ниже материал содержит значительное количество технических терминов, при переводе которых могут возникнуть неточности. Если вы заметили опечатку, ошибку или неточность перевода — напишите нам, и мы оперативно всё исправим.
Кроме того, в продолжение темы сегодняшней публикации на одну неделю будет открыт продвинутый курс академии по CSS-анимациям, который обычно доступен по подписке. Его описание размещено в конце топика.

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

Фронтенд-дизайнеры и разработчики используют CSS для создания стилей, позиционирования элементов — в общем, для того, чтобы сайты выглядели красиво. Часто CSS применяют и для добавления движений на веб-страницы, хотя дело обычно не идёт дальше плавных переходов или анимации.
На самом деле анимация может быть мощным инструментом, который позволяет посетителям сайта и клиентам легче взаимодействовать с интерфейсом продукта и быстрее добиваться своих целей. Этого можно достичь, если следовать в своей работе некоторым основополагающим принципам.
+55
Играй на победу: как побеждать в играх и что нужно знать о профессиональных игроках в GameDev [часть 1]
6 min
128K
Давным-давно мы с друзьями играли в Starcraft по диалапному модему. Я часто проигрывал, пока не прочитал на одной из BBS фразу, которая всё поменяла. Принцип очень простой: в стратегиях реального времени выигрывает тот, кто постоянно атакует. Нужно было научиться мыслить категориями постоянного создания угроз.
К чему я это. Есть такой мужик — Дэвид Сирлин. Киберспортсмен, чемпион по Street Fighter, гейм-дизайнер, настольщик, киберспортивный тренер. У него есть целая теория на тему того, как тренироваться и играть так, чтобы выигрывать. Универсальная, применима ко всем играм. Ниже — основные тезисы первой части и мои комментарии. Прочитать про основные вещи из книги будет интересно и с точки зрения GameDev (в особенности — балансировки), и просто по жизни.
+68
Уроки предпринимательства: почему Madrobots провалился в «Меге»
7 min
77K
Когда-то я работал в большой корпорации Panasonic и за ланчами любил с коллегами обсуждать идеи разных бизнес-проектов. Среди клерков это распространенная болезнь — придумывать идеи. Ведь так приятно вообразить себя новым гением инноваций.
Порой кажется, если удалось придумать за обедом что-нибудь и с чувством обсудить — уже и день прожит не зря. Можно расплачиваться за бизнес-ланч и возвращаться в офис — к исполнению своих служебных обязанностей и выполнению утвержденных начальством KPI.
Эта жизнь для меня осталась в прошлом. Теперь я строю Madrobots. К счастью (или к сожалению, это как посмотреть), приходится не только фантазировать, но и реализовывать свои идеи на практике.
Недавно я рассказывал, что мы открываем новую розничную точку продаж в молле «Мега Белая Дача». 16 декабря мы выложили пост о драматическом процессе открывания магазина и какие сложности (в первую очередь технические) нас ждали на этом пути.
С самого начала было понятно, что мы идем на рискованный эксперимент. И теперь я должен признать: эксперимент провалился. Мы открылись в конце августа. В течение следующего месяца я убедился, что «островок» нерентабелен и его надо закрывать.
Легко создавать сверхуспешные бизнесы в собственных мечтах. Реальная жизнь зачастую преподносит неприятные сюрпризы. А сам ты допускаешь ошибки, которых в своих фантазиях, конечно, легко бы избежал.
+78
Алгоритмы: теория и практика. Методы
2 min
34KTutorial

В ноябре мы запускаем онлайн-курс «Алгоритмы: теория и практика. Методы» от Computer Science центра. Курс бесплатный, приглашаются все желающие. В курсе будут подробно разобраны базовые алгоритмические методы: жадные алгоритмы, метод «разделяй и властвуй», динамическое программирование. Для всех алгоритмов будут математически строго доказаны корректность и оценки на время работы. Мы постарались изложить материал так, чтобы были понятны и сами алгоритмы, и то, как можно было бы догадаться до их основных идей. Помимо теоретических основ, будут рассказаны тонкости реализации алгоритмов на языках программирования C++, Java и Python. В частности, будет рассказано, какие есть общие практики написания кода, позволяющие минимизировать вероятность ошибки, как писать и тестировать код, где стоит использовать стандартные методы, а не изобретать колесо.
Мы тщательно подобрали задачи для закрепления материала. Большинство алгоритмов, которые вы узнаете, вам нужно будет запрограммировать. Это лучший способ убедиться, что вы разобрались во всех деталях. Решая такие задачи, вы получите ценный опыт написания и отладки эффективных и надёжных программ. Задачи на программирование помогут вам почувствовать разницу между плохим (медленным) и хорошим (быстрым) алгоритмом. Вас также ждут тесты (где нужно выбрать правильные ответы из предложенных) и теоретические задачи (в них нужно доказать математическое утверждение). Наконец, в курсе есть также задачи повышенной сложности — менее стандартные задачи, которые не являются обязательными для прохождения курса. Получить удовольствие от решения этих задач смогут и те, кто уже знаком с базовыми алгоритмами.
+26
Что я узнал про интерфейсы в реальном мире в Китае
8 min
85KВот типичная форма подключения к вай-фаю. Она вообще-то на огромной странице с кучей иероглифов, но серая подложка помогла мне понять, что это и есть самая важная форма подключения, а остальное — справка и реклама.

Иконки важны. Судя по ним, галочка внизу — это, почти наверняка, «я согласен с условиями». Телефон вверху — наверняка номер. Дальше — замок — это пароль. Оба поля активные, то есть логин и пароль у меня должны быть сразу, так?
Нет, нифига, китайский UX подразумевает, что я сначала введу телефон и нажму оранжевую кнопку (цвета иконки — и да, это кнопка!). Получу пароль и введу его во второе поле, а потом нажму зелёную кнопку. Робот сравнит телефон с паролем и пустит меня дальше. Эту форму, скорее всего, рисовал китаец.

А это обычная такая телефонная будка раннего космического века
Сейчас покажу ещё несколько вещей, рождённых в стране, где квалифицированных инженеров примерно раз в двадцать больше, чем в Америке, а состояние изобретательности «советского инженера» ещё не пройдено. Я, конечно, опять продолжу свою историю и покажу интерфейсы в реальном мире — они не менее интересны с точки зрения юзабилити, нежели HCI, и не менее полезны для понимания, как можно работать с пользователем.

Иконки важны. Судя по ним, галочка внизу — это, почти наверняка, «я согласен с условиями». Телефон вверху — наверняка номер. Дальше — замок — это пароль. Оба поля активные, то есть логин и пароль у меня должны быть сразу, так?
Нет, нифига, китайский UX подразумевает, что я сначала введу телефон и нажму оранжевую кнопку (цвета иконки — и да, это кнопка!). Получу пароль и введу его во второе поле, а потом нажму зелёную кнопку. Робот сравнит телефон с паролем и пустит меня дальше. Эту форму, скорее всего, рисовал китаец.

А это обычная такая телефонная будка раннего космического века
Сейчас покажу ещё несколько вещей, рождённых в стране, где квалифицированных инженеров примерно раз в двадцать больше, чем в Америке, а состояние изобретательности «советского инженера» ещё не пройдено. Я, конечно, опять продолжу свою историю и покажу интерфейсы в реальном мире — они не менее интересны с точки зрения юзабилити, нежели HCI, и не менее полезны для понимания, как можно работать с пользователем.
+108
Information
- Rating
- Does not participate
- Registered
- Activity