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

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

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

Лаборатория данных

Время на прочтение2 мин
Количество просмотров23K
Сложные данные всегда были моей страстью. В 2007 году с подачи Артёма Горбунова я прочитала все книги Тафти и открыла для себя информационный дизайн. Первая визуализация — пассажиропотоки в метро — стала для меня счастливым билетиком в бюро, тогда же появился псевдоним Инфотанька. С тех пор я работала над тигриным календарём и бюрошными инфограммами, мобильным приложением «Веб-наблюдатель» со статистикой нарушений и информативным логотипом, умными маркетинговыми графиками для Зептолаба, интерфейсами Oh my stats!.



В июне этого года я, наконец, решила посвятить себя тому, что умею делать лучше всего, — визуализации данных. Так появилась лаборатория.
Читать дальше →
Всего голосов 108: ↑99 и ↓9+90
Комментарии28

Несколько интересностей и полезностей для веб-разработчика (выпуск 6)

Время на прочтение3 мин
Количество просмотров29K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Zephir — Ze(nd Engine) Ph(p) I(nt)r(mediate). Зефир — это компилируемый высокоуровневый язык программирования, предназначенный для написания PHP расширений без использования C. Проект от создателей Phalcon (скомпилированный PHP MVC Framework). О Zephir на Sitepoint
   

JSDB.IO — большая и качественная база нужных скриптов/библиотек/фреймворков на JavaScript. Все распределено по категориям: Animation, Application, Audio, Video, Games и др. Дабы собрать все популярные .js воедино добавлю еще три ссылки: Microjs (множество маленьких полезностей до 5кб), а еще jsdelivr и cdnjs, которые позволяют добавлять собственные скрипты.

Snap.svg — продукт от Adobe Webplatform. Недавно я рассказывал про "достойного конкурента Raphaël" и в комментариях оспоривали эту фразу из за отсутствия поддержки такого же множества браузеров. В разработке Snap участвует автор Raphaël — Дмитрий Барановский, а причина создания новой библиотеки для работы с SVG — невозможность поддерживать все возможности SVG в старых браузерах.

At.js — очень юзабельный скрипт для автозаполнения (в демо используется Emojify). А еще есть более функциональная библиотека для автозаполнения — Typehead от Twitter.
$('.atwho-inputor').atwho({
  at: "@", data: ["one", "two", "three"],
});

Читать дальше →
Всего голосов 58: ↑49 и ↓9+40
Комментарии9

Анимация в интерфейсах

Время на прочтение3 мин
Количество просмотров52K
Когда мы создаем статические макеты интерфейсов (будь то сайтов или мобильных приложений) в Photoshop, мы не слишком сильно задумываемся над тем, как этот макет поведет себя в динамике. Стив Джобс как то сказал: «Дизайн это не то как продукт выглядит, это то как он работает». Наше впечатление от продукта формируется на основании многих факторов, но самым важным является комфортное взаимодействие с ним.

Анимация прокрутки


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


Читать дальше →
Всего голосов 93: ↑81 и ↓12+69
Комментарии59

Высокопроизводительный NIO-сервер на Netty

Время на прочтение9 мин
Количество просмотров128K
Преамбула

Здравствуйте. Я являюсь главным разработчиком крупнейшего в СНГ сервера Minecraft (не буду рекламировать, кому надо, те знают). Уже почти год мы пишем свою реализацию сервера, рассчитанную на больше чем 40 человек (мы хотим видеть цифру в 500 хотя бы). Пока всё было удачно, но последнее время система начала упираться в то, что из-за не самой удачной реализации сети (1 поток на ввод, 1 на вывод + 1 на обработку), при 300 игроках онлайн работает более 980 потоков (+ системные), что в сочетании с производительностью дефолтного io Явы даёт огромное падение производительности, и уже при 100 игроках сервер в основном занимается тем, что пишет/читает в/из сети.

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

Здесь я постараюсь расписать серверную часть работы с сетью через Netty, может быть это кому-то будет полезно.
Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии64

Meet-in-the-middle: оптимизация перебора и не только

Время на прочтение3 мин
Количество просмотров16K
В прошлой статье я писал про эвристические методы оптимизации перебора. В этой статье я расскажу вам о ещё одной, но уже асимптотической оптимизации — meet-in-the-middle.

Типичные для этого метода снижения асимптотики: и .

Вступление


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

Meet-in-the-middle имеет смысл применять, если для конкретной задачи выполняются два условия:
1) Время обработки половины данных асимптотически меньше времени получения итогового ответа.
2) Известен асимптотически более быстрый способ получения ответа для всей задачи с использованием информации об обработки её половинок.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Высокопроизводительные вычисления: проблемы и решения

Время на прочтение12 мин
Количество просмотров31K
Компьютеры, даже персональные, становятся все сложнее. Не так уж давно в гудящем на столе ящике все было просто — чем больше частота, тем больше производительность. Теперь же системы стали многоядерными, многопроцессорными, в них появились специализированные ускорители, компьютеры все чаще объединяются в кластеры.
Зачем? Как во всем этом многообразии разобраться?
Что значит SIMD, SMP, GPGPU и другие страшные слова, которые встречаются все чаще?
Каковы границы применимости существующих технологий повышения производительности?

Введение


Откуда такие сложности?

Компьютерные мощности быстро растут и все время кажется, что все, существующей скорости хватит на все.
Но нет — растущая производительность позволяет решать проблемы, к которым раньше нельзя было подступиться. Даже на бытовом уровне есть задачи, которые загрузят ваш компьютер надолго, например кодирование домашнего видео. В промышленности и науке таких задач еще больше: огромные базы данных, молекулярно-динамические расчеты, моделирование сложных механизмов — автомобилей, реактивных двигателей, все это требует возрастающей мощности вычислений.
В предыдущие годы основной рост производительности обеспечивался достаточно просто, с помощью уменьшения размеров элементов микропроцессоров. При этом падало энергопотребление и росли частоты работы, компьютеры становились все быстрее, сохраняя, в общих чертах, свою архитектуру. Менялся техпроцесс производства микросхем и мегагерцы вырастали в гигагерцы, радуя пользователей возросшей производительностью, ведь если «мега» это миллион, то «гига» это уже миллиард операций в секунду.
Но, как известно, рай бывает либо не навсегда, либо не для всех, и не так давно он в компьютерном мире закончился. Оказалось, частоту дальше повышать нельзя — растут токи утечки, процессоры перегреваются и обойти это не получается. Можно, конечно, развивать системы охлаждения, применять водные радиаторы или совсем уж жидким азотом охлаждать — но это не для каждого пользователя доступно, только для суперкомпьютеров или техноманьяков. Да и при любом охлаждении возможность роста была небольшой, где-то раза в два максимум, что для пользователей, привыкших к геометрической прогрессии, было неприемлемо.
Казалось, что закон Мура, по которому число транзисторов и связанная с ним производительность компьютеров удваивалась каждые полтора-два года, перестанет действовать.
Пришло время думать и экспериментировать, вспоминая все возможные способы увеличения скорости вычислений.
Читать дальше →
Всего голосов 79: ↑79 и ↓0+79
Комментарии43

Disruptor — новая парадигма многопоточного программирования

Время на прочтение4 мин
Количество просмотров34K
На прошлой неделе компания LMAX, где я работаю, получила приз Java Duke's Choice Award 2011 за фреймворк Disruptor. Ранее об этой технологии писал Martin Fowler, известный многим читателям публикациями об объектном программировании.

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

Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии25

Изучаем Storm Framework. Часть I

Время на прочтение4 мин
Количество просмотров36K
В 2011 году Twitter открыл, под лицензией Eclipse Public License, проект распределенных вычислений Storm. Storm был создан в компании BackType и перешел к Twitter после покупки.

Storm это система ориентированная на распределенную обработку больших потоков данных, аналогичная Apache Hadoop, но в реальном времени.

Ключевые особенности Storm:
  • Масштабируемость. Задачи обработки распределяются по узлам кластера и потокам на каждом узле.
  • Гарантированная защита от потери данных.
  • Простота развертывания и спровождения.
  • Восстановление после сбоев. Если какой либо из обработчиков отказывает, задачи переадресуются на другие обработчики.
  • Возможность написания компонентов не только на Java. Простой Multilang protocol с использованием JSON объектов. Есть готовые адаптеры для языков Python, Ruby и Fancy.

В первой части рассматриваются базовые понятия и основы создания приложения c использованием Storm версии 0.8.2.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии10

Как стать предпринимателем? Четыре буквы: JFDI

Время на прочтение6 мин
Количество просмотров72K
В офисе моей первой компании висело изображение с логотипом Nike и заглавными буквами JFDI. (JFDI расшифровывается как «Just Frickin' Do It» — «просто, блин, сделай это». Если не совсем очевидно, аббревиатура обыгрывает слоган компании Nike «Just Do It» — «просто сделай это»). Я уверен в том, что для успеха в бизнесе нужно быть в состоянии сделать много чего. Вы постоянно должны принимать решения, а информации никогда не хватает. Это парализует многих. Но не вас.

Переведено в Alconost.


Читать дальше →
Всего голосов 70: ↑56 и ↓14+42
Комментарии23

Эволюция проектирования с приходом адаптивного дизайна

Время на прочтение10 мин
Количество просмотров31K
Хабр, привет!

Прошло около двух лет с момента запуска первого адаптивного сайта нашей компанией, примерно столько же этому вопросу в России вообще. С этого момента мне, как проектировщику, уже удалось пройтись по многим граблям, поэтому в первом своем посте хотел бы поделиться мыслями, что поменялось у нас в процессах проектирования сайтов вместе с приходом адаптива.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии13

Инструменты студии мобильной разработки

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


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

В нашей компании используется много подобных сервисов и инструментов, поэтому я решил рассказать вам кратко о лучших из них. О базовых вещах на подобии Basecamp, GitHub и т.п. речи не будет, т.к. это не сугубо специфические вещи для мобильной разработки.

Пройдемся по дизайну, серверным решениям, тестированию и аналитике.
Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии22

Trend Watching: 10 главных трендов 2013 года. Часть 2

Время на прочтение6 мин
Количество просмотров19K
Продолжаем публиковать подборку, наверное одних из самых необычных трендов. Ранее вы уже могли ознакомиться с первой частью статьи, в которой мы попытались изложить наше видение обзора трендов 2013 года, подготовленного Trend watching. Как вы понимаете, все эти идеи могут стать новыми многомилионными бизнесами (или провалами) в ближайшие 12 месяцев, поэтому читайте и вдохновляйтесь!

Настало время поговорить об экологии, моде и медицине:
Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии5

Визуализация графа социальной сети: анализ событий блогосферы перед декабрём 2011 года

Время на прочтение6 мин
Количество просмотров35K
Это логическое продолжение статьи "Построение графа социальной сети с помощью Drupal и Feeds"

Я в составе группы занимался собором информации из блогосферы. Задачей было оценить напряженность, активность политических дискуссий в период избирательной кампании выборов в Государственную Думу. Забегая вперед скажу, что исследование позволило выдвинуть гипотезы, которые позже подтвердились. В частности, по результатам, о которых вы прочтете ниже можно понять, кто же будет выходить на площади и выводить за собой людей. И главное, за кем они пойдут.
Читать дальше →
Всего голосов 46: ↑38 и ↓8+30
Комментарии16

Проектирование приложений: как стать ближе к пользователю?

Время на прочтение10 мин
Количество просмотров19K
В предыдущей статье («Не говорите мне, куда мне идти») мы рассмотрели вопрос структурирования информации в приложении и вытягивания важных блоков наверх с тем, чтобы сделать их более доступными для пользователя.

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

Кто-то увидел в статье квадратики и информеры на картинках, но, я надеюсь, что от любопытного читателя не ускользнула и суть статьи.
Читать дальше →
Всего голосов 41: ↑33 и ↓8+25
Комментарии14

Восемь способов улучшить мозговой штурм

Время на прочтение4 мин
Количество просмотров30K
В Alconost я часто сталкиваюсь с необходимостью собирать команду и использовать мозговой штурм, например, при производстве видеороликов, чтобы найти достойную идею сценария или решить, как лучше проиллюстрировать на экране текст диктора. Я обратил внимание, что некоторые штурмы проходят очень результативно, а некоторые еще больше усложняют решение задачи. Мне стало интересно, как решают это проблему в мире, и вот я наткнулся на статью Ричарда Брэнсона, основателя Virgin, которая рассказывает о принципах успешного брэйнсторминга.

Полезные советы от британского миллиардера под катом.



Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии13

JAVA библиотека padeg — новогодний подарок хабру

Время на прочтение4 мин
Количество просмотров25K
Да-да, это та самая библиотека padeg.dll, но работающая везде где есть java. Авторы Sergey V. Plahov aka Seer and Gennady Pokatashkin
Собственно, история простая. Началась она в 2007 году, когда мне срочно понадобилось склонять ФИО и должности для одного корпоративного проекта. В принципе, данный функционал не стоял в требованиях заказчика, но нужны были «плюшки», и автоматические склонения — это как раз одна из плюшек.
Довольно быстро удалось связаться с одним из авторов библиотеки, и после перечисления небольшой суммы были получены исходники на Delphi, которые затем портировались в JAVA. По первоначальной задумке java и delphi исходники должны были максимально совпадать, чтобы впоследствии можно было вносить параллельные правки. Делалось так: брались исходники на delphi, менялись расширения pas→java, и добавлялись в проект. Дальше шла правка синтаксиса. Но фактически delphi — код пришлось сильно рефакторизовать, поскольку он состоял в основном из многоэтажных if-ов и внутренних процедур, содержал глобальные переменные и не был приспособлен для многопоточной работы.
Как бы там ни было, библиотека портирована. На вопрос о копирайте мне было разрешено делать с результатом что угодно, но поскольку delphi-библиотека распространялась на условиях shareware, я не стал публиковать java-порт.
С тех пор прошло 5 лет, и я думаю, хватит одному пользоваться инструментом, которой найдется применение в хозяйстве отечественного java — разработчика. К тому же праздник на носу. Поэтому загружайте
Читать дальше →
Всего голосов 46: ↑39 и ↓7+32
Комментарии23

Какой хороший программист!

Время на прочтение3 мин
Количество просмотров78K
Какой хороший программист наш Вася! Всегда опрятно одет, вежлив и предупредителен, хороший семьянин и душа компании. Что? Как он, собственно говоря, программирует? Хм… Постойте… А мы и не знаем. Никто никогда толком результатов его работы и не видел-то. Получается, Вася — не очень хороший программист? Ну ладно.

Вот Петя — точно хороший спец. Его код реально существует, компилируется, что-то делает. Показатель? Показатель. Правда, работает Петя не над тем, что по проекту надо, а над тем, что ему взбредет в голову. Иногда оно совпадает с общими целями, но чаще — нет. Выходит, и Петя наш — не идеал? Выходит так.

Читать дальше →
Всего голосов 176: ↑143 и ↓33+110
Комментарии88

Новое для веб-дизайнера за ноябрь 2012

Время на прочтение1 мин
Количество просмотров57K
Продолжаю подборку новых полезных штук для веб-дизайнера за прошедший месяц. Прошлые выпуски: октябрь, сентябрь.

Сервисы и инструменты


Photo Raster — новый мощный графический редактор онлайн.

Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии27

Как стать руководителем

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


Мы в Alconost’е очень любим стройную мысль в хорошем изложении. Именно так пишет Бен Хоровиц, в далеком прошлом — обычный программист, а сегодня — соучредитель одного из самых успешных мировых венчурных фондов. В свободное от инвестирования время Бен делится всеми нажитыми знаниями в своем блоге. Мы не можем молчать. Впечатлились и перевели один из его постов, очень уж он хорош и полезен.

Управленцы, налетай!

Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Комментарии24

Типы адаптивных макетов

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


С каждым днем появляется все больше сайтов с адаптивной версткой. При проектировании такого дизайна первое, о чем задумывается разработчик — это общее представление контента на устройствах с разным размером экранов. В этой статье я описал некоторые типы (layouts) адаптивных макетов.
Читать дальше →
Всего голосов 82: ↑67 и ↓15+52
Комментарии8

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность