Search
Write a publication
Pull to refresh
40
0
sysprg @sysprg

User

Send message

Анимация перехода от глобуса к двумерной карте

Reading time5 min
Views19K
Хочу поделиться с хабром своим картографическим экспериментом, а именно анимацией перехода от Ортографической проекции (глобус) к Равнопромежуточной (одна из проекций обычных двумерных карт). Также этот способ подойдёт и для любых других проекций. Результатом экспериментов стала вот такая анимация:

От глобуса к карте


Как и прежде будем использовать библиотеку d3.js, как и прежде сделаем несколько реализаций: SVG и Canvas. Оба варианта можно будет эффектно использовать для интерактивной инфографики. Ну что, начнём?
Приступить к эксперименту

API консоли Javascript

Reading time15 min
Views36K
Разработчикам удобно пользоваться консолью для отладки, но ещё удобнее, если будет оболочка, в которой учтены особенности реализации консоли в различных браузерах, поэтому тема обёрток для консоли устойчиво существует.

Рассмотрим ранее опубликованные решения, затем сделаем обзор методов консоли с помощью перевода недавней статьи Axel Rauschmayer-а, разработчика и консультанта с более чем 15-летним стажем, затем я опубликую некоторые свои решения, которые оказались удачными в процессе эволюции и отладки на ряде проектов.
UPD 2015: обновление таблицы команд до актуального состояния, Github (ru, en; разворачивание на javascript).
ой, сколько букв

Тёмные паттерны: интерфейсы, предназначенные для обмана

Reading time6 min
Views114K

Гарри Бринул (Harry Brignull) — независимый дизайнер пользовательских интерфейсов из Лондона с кандидатской по когнитивной науке. Он также известен как создатель сайта Тёмных паттернов, предназначенного, по его словам, «перечислению и осмеянию веб-сайтов, использующих обманчивые интерфейсы пользователя». Данная статья основана на презентации, которую он показывал в Мюнхене в апреле на Search Marketing Expo.

Статья переведена и опубликована с согласия автора.

Когда Apple выпустила iOS 6, одной из новых фич была не слишком анонсируемая компанией система рекламного отслеживания Identifier for Advertisers (IDFA). Она присваивает каждому устройству уникальный идентификатор, использующийся для слежения за активностью браузера и создания таргетированной рекламы. IDFA анонимен, но неприемлем для людей, заботящихся о приватности.

К счастью, Apple реализовала возможность отключения фичи.
Читать дальше →

Метод генерации тестовых заданий на основе деревьев И/ИЛИ и его программная реализация

Reading time6 min
Views11K
Первый мой топик на Хабре будет посвящен моим научным исследованиям, которые связаны с методами построения алгоритмов генерации тестовых заданий для организации контроля знаний обучаемых.

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

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

Подробности

О звездах

Reading time6 min
Views9.1K
Иногда мне в голову попадают задачи, не имеющие какой-то очевидной практической ценности, но, тем не менее, они захватывают так или иначе мое воображение, по крайней мере, пока не решу. Практическая ценность задачи, как правило, нулевая, но в процессе решаются другие, которые могут иметь бОльшую ценность, чем решенная.

Все началось с желания изучить свойства правильных октагонов и октаграмм, но результаты оказались применимы ко всем выпуклым многоугольникам (полигонам) и звездам, построенным в них (по аналогии назову их полиграммами — пентаграмма, гексаграмма, септаграмма, октаграмма и т.д. — хотя этот термин имеет и иные значения).

Для начала терминология. Пентаграммой называют совокупность всех диагоналей пятиугольника, в случае гексаграммы — это уже не все диагонали, а только те, которые соединяют непротивоположные вершины шестиугольника. Во обоих случаях эти вершины идут через одну друг от друга. Например, если вершины пятиугольника перенумеровать (0, 1, 2, 3, 4), то пентаграмма — совокупность линий (0, 2), (1, 3), (2, 4), (3, 0), (4, 1). Гексаграмма (0, 1, 2, 3, 4, 5), соответственно, является совокупностью линий (0, 2), (1, 3), (2, 4), (3, 5), (4, 0), (5, 1). Нули в качестве начальной точки взяты не случайно и не как дань програмистскому мышлению, удобство этого обозначения я опишу ниже. Линии, образующие полиграмму, я буду называть ребрами. Вершинами полиграммы я буду называть вершины исходного полигона, а не все точки пересечения ребер.



Читать дальше →

Базы знаний. Часть 1 — введение

Reading time5 min
Views67K
Одной из причин слабого использования Linked Data-баз знаний в обычных, ненаучных приложениях является то, что мы не привыкли придумывать юзкейсы, видя перед собой только данные. Трудно спорить с тем, что сейчас в России производится крайне мало взаимосвязанных данных. Однако это не значит, что разработчик, создающий приложение для русскоязычной аудитории совсем уж отрезан от мира семантического веба: кое-что всё-таки у нас есть.
image
Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia, Freebase и Wikidata. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса.

Я попробую привести несколько примеров полезных энциклопедических данных, которые вы не найдете нигде, кроме Linked Data.

Эта статья — первая из цикла Базы знаний. Следите за обновлениями.


Читать дальше →

Lock-free структуры данных. Основы: откуда пошли быть барьеры памяти

Reading time22 min
Views101K

Как только я заинтересовался lock-free алгоритмами, меня стал мучить вопрос – а откуда взялась необходимость в барьерах памяти, в «наведении порядка» в коде?
Конечно, прочитав несколько тысяч страниц руководств по конкретной архитектуре, мы найдем ответ. Но этот ответ будет годен для этой конкретной архитектуры. Есть ли общий? В конце концов, мы же хотим, чтобы наш код был портабелен. Да и модель памяти C++11 не заточена под конкретный процессор.
Наиболее приемлемый общий ответ дал мне мистер Paul McKenney в своей статье 2010 года Memory Barriers: a Hardware View of Software Hackers. Ценность его статьи – в общности: он построил некоторую упрощенную абстрактную архитектуру, на примере которой и разбирает, что такое барьер памяти и зачем он был введен.
Вообще, Paul McKenney – известная личность. Он является разработчиком и активным пропагандистом технологии RCU, которая активно используется в ядре Linux, а также реализована в последней версии libcds в качестве ещё одного подхода к безопасному освобождению памяти (вообще, о RCU я хотел бы рассказать отдельно). Также принимал участие в работе над моделью памяти C++11.
Статья большая, я даю перевод только первой половины. Я позволил себе добавить некоторые комментарии, [которые выделены в тексте так].
Передаю слово Полу

Windows Phone 8 такая, какой её задумали разработчики

Reading time10 min
Views169K

Вместо предисловия



Для начала хотелось бы сказать пару слов о новомодном тренде в области веб-дизайна и дизайна интерфейсов — плоском дизайне (Flat UI).

Flat, очень хорошо играет на контрасте. Metro особенно сильно выделяется в сфере UI.
Можно провести небольшую параллель: посмотрите на это надгробие. Оно прекрасно, не так ли?

image
Крупнее

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

Однако если на кладбище все надгробия будут такие же, как это, тогда это будет ужасающая серость и беда. Прелесть минимализма именно в контрасте.

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


И тут вы достаёте свою минималистичную Zippo Black.

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

Но давайте теперь представим обратную картину.
У всех посетителей в руках минималистичная Zippo Black и тут вы заходите с золотой Zippo с красной вставкой и выдавленной трубкой. И на этот раз уже ваша далеко не минималистичная золотая Zippo будет привлекать внимание посетителей.



Минимализм не должен быть в мейнстриме, ни в коем случае.


Его нужно внедрять маленькими порциями там, где всё очень вычурно, очень нагромождено, усложнено. Но стоит минимализму стать мейнстримом, как он сразу потеряет весь свой шарм и красоту. Тогда будет просто серая безликая масса.

В 2010 году, когда на рынке смартфонов властвовали Apple, Samsung и HTC с нагромождёнными интерфейсами iOS, TouchWiz и HTC Sense, Windows Phone поражал воображение по внешности, дизайну.
Читать дальше →

Схемы рецептов для кухни пиццерии. Процесс, тестирование, инструкция к схемам

Reading time6 min
Views38K
В прошлом посте  я описал процесс создания схем рецептов для пиццерии. Там же я обещал рассказать о процессе работы и тестировании.

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

Для понимания задачи я приведу пример процесса изготовления Гавайской пиццы. Если на экране пиццамекера высветилось название этой пиццы, он находит инструкцию по ее приготовлению.
image
  1. Рецепты пицц. Тут можно найти список ингредиентов конкретного продукта.
  2. Схемы количества ингредиентов. Если поступил заказ на пиццу среднего размера (30 см), то пиццамейкер обратит внимание именно на блоки с количествами для этой пиццы.
  3. Инструкция. Она существует для ознакомления с принципами схем. Тут показано что и как зашифровано.


Сотрудник добавит 15 штук слайсов ветчины в 3 круга, двойную порцию ананасов (3/4 стаканчика два раза) и стандартную порцию сыра Моцарелла для средней пиццы (1 полный зеленый стаканчик — цвета стаканчиков подобраны не случайно, коробки для средних пицц у нас тоже зеленого цвета).

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

Одновременно с дизайном схем тестировался и дизайн инструкций, которые должны были объяснить человеку принцип работы самих схем.
О тестировании в деталях

Ранжирование в деталях

Reading time8 min
Views10K
Самым важным процессом поисковых систем для продвижения сайта является ранжирование — процесс выстраивания элементов множества web-страниц в последовательность, определяемую убыванием рангов релевантности этих ресурсов. Для определения ранга релевантности разрабатываются алгоритмы, которые определяют, что должно влиять на позицию, при каких запросах и условиях.

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

В данной статье речь пойдет преимущественно о текстовой и ссылочной составляющей.

Поисковая система Яндекс является наиболее интересным исследуемым объектом в данном плане не только потому, что в ней чаще, чем в других происходят сильные изменения в алгоритме, но и потому, что данная система является первой в Рунете по работе с коммерческими или продающими запросами.
Читать далее

Третья версия типографа Муравьёва

Reading time2 min
Views15K
Типограф Муравьева 3.0

Практически пять лет назад я опубликовал на Хабре пост про свой типограф: habrahabr.ru/post/67010. Прошло много времени, он несколько раз обновлялся и получал продолжения в модулях для движков и блогов. Пришло время задуматься о самом лучшем и грамотном инструменте, который будет за вас типографировать текст. Именно по этому я вернулся к своему типографу и все начал заново.

Типограф — инструмент для форматирования текста с использованием норм, правил и специфики русского языка и экранной типографики.



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

О продукте


  1. Типограф получил поддержку Unicode (это позволяет получать на выходе сразу красивый и форматированный текст без HTML-мнемоники). По умолчанию он отключен, нужно вручную включить.
  2. Включил около 70 правил, 30 дополнений и исключений к ним. На сайте есть раздел со всеми общими правилами, там можно подробнее прочитать. Но опять-таки они не все, т.к. есть множество под-правил и условий.
  3. Теперь типограф занимаем всего один файл (EMP.php) и доступен для PHP, но в ближайшее время выйдут версии и для Python (в процессе), Ruby, Perl и JS.
  4. Инструмент бесплатный и всегда будет оставаться таким. Открытый исходный код. При использовании мы не просим ничего указывать, но будет здорово, если расскажете об этом.
  5. Каждое правило можно включить или выключить. Внутри много скрытых правил.
  6. Реализована висящая пунктуация (некоторые это называют оптическим выравниванием).


Читать дальше →

Что не так с нашим EsheDeshe?

Reading time2 min
Views3K


Этим летом мы в компании Aidem совместно с партнерами запустили проект интернет-магазина совместных покупок EsheDeshe.ru. Задача стояла сделать совместную покупку удобной (сейчас это в 99% форумы, на которых нормальный человек без «поллитры» не разберется).

Проектирование UX и UI — наша специфика, поэтому начали с изучения и аналитики рынка и схожих проектов. Разработали персонажей, концепцию, запрототипировали, описали логику, поведение, определили требования к дизайну, материалам и пр. — получили спецификацию формы и поведения (60+ страниц). Заказали разработку айдентики и макетов сайта у хорошего дизайнера, ушли в разработку, параллельно начав заключать договора с поставщиками и партнерами.

В магазине мы используем несколько вспомогательных сервисов (определение геопозиции покупателя, сервис расчета стоимости доставки разными транспортными компаниями, сервис отправки смс и другие).
Читать дальше →

SVG.js — достойный конкурент Raphaël

Reading time2 min
Views52K
image

Доброго времени суток, уважаемые хабражители. Хочу поделиться с вами одной замечательной находкой на GitHub — SVG.js — удобная манипуляция и анимация SVG. Хочется сказать о трех вещах, которые сосредоточили мое внимание на этой библиотеке. Самое простое и важное это то, что с появлением retina дисплеев SVG становится популярнее, более нужным, чем раньше. SVG.min.js весит 34кб и 9кб в Gzip, что в разы меньше Raphaël и что можно пожертвовать для дизайна и эффектов. Минифицированный SVG.filter.js размером в 3кб является прекрасным кроссбраузерным аналогом для свойства webkit-filter.

Другие плюсы SVG.js

У Федрезерва США кто-то украл. Семь миллисекунд

Reading time2 min
Views96K
18 сентября американский «центральный банк» — Федеральная резервная система — выступил с заявлением о том, что не будет сворачивать свою программу разбрасывания денег с вертолёта «количественного смягчения», в рамках которой в американскую экономику вкачивается 85 млрд долл. ежемесячно.

Хабр — не экономический сайт, поэтому не будем говорить ни про споры экономистов о «затягивании поясов» в кризис против идеи «накачки» экономики деньгами, ни про современный капитализм в целом. Интересен процесс и его технологическая изнанка.

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

Журналисты прибывают в офис Федрезерва к 13:45 дня анонса и собираются в помещении для прессы, после чего двери за ними закрываются. В 13:50 сотрудники ФРС раздают им текст решения, чтобы дать прессе возможность ознакомиться со сложным финансовым текстом. В 13:58 тележурналистам разрешают пройти на балкон к своим камерам. «Пишущим» журналистам разрешается набрать телефон своей редакции. Но правила ФРС не разрешают ни тем, ни другим произносить ни единого слова строго до 14:00 — времени, которое сверяют по «национальным атомным часам» в Колорадо. Электронные СМИ, естественно, имеют преимущество — написанная второпях выжимка о сути решения попадает на новостные ленты мгновенно после окончания «эмбарго».

Что изумило всех следивших за процессом в этот раз — это то, что за 7 миллисекунд, за которые свет теоретически может добежать 960 километров от Вашингтона до биржи в Чикаго по оптоволоконному кабелю, высокочастотные трейдеры его оценили и следом провели сделок на сложно вообразимые 600 млн долл., сняв самые отборные сливки с последовавшего затем бурного роста на позитивных новостях.
Читать дальше →

Стадный эффект голосующих. Мууу… Исследование MIT'а

Reading time4 min
Views94K
Mууу… Интернет-пользователи имеют тенденцию следовать за стадом, когда речь идет о рейтинге комментария на новостном сайте.



«Мудрость толпы» стала мантрой эпохи Интернета. Нужно выбрать новый пылесос? Проверить отзывы на Амазоне. Хорош ли тот или иной ресторан? Посмотрите, что Вам скажет, например, TripAdvisor или Yelp. Но новое исследование показывает, что такие оценки онлайн не всегда определяют наилучший выбор. Масштабный эксперимент веб-пользователей MIT'ом обнаружил, что такие рейтинги в значительной степени подвержены иррациональному «стадному поведению», и что стадом можно манипулировать.
Читать дальше →

«Ускоряем» открытие тяжелого сайта

Reading time3 min
Views17K
На днях потребовалось ускорить открытие сайта. Проблема заключалась в том, что одни только JS-файлы, даже собранные в один и сжатые обфускацией, весили более 500kB, а ведь еще есть css тоже довольно крупный.
В связи с этим, пользователям, у которых файлы закешированы (например новый пользователь или после билда сменилась версия), с медленным интернетом приходилось ждать довольно долго, смотря на белый экран.
Читать дальше →

Простой, но эффективный Voice Activity Detection алгоритм реального времени

Reading time7 min
Views31K
Ниже дан перевод статьи
A SIMPLE BUT EFFICIENT REAL-TIME VOICE ACTIVITY DETECTION ALGORITHM
М.H. Moattar and M.M. Homayonpour
Laboratory for Intelligent Sound and Speech Processing (LISSP), Computer Engineering and Information Technology Dept., Amirkabir University of Technology, Tehran, Iran
Оригинал по ссылке

РЕЗЮМЕ

Алгоритм обнаружения активности голоса (Voice Activity Detection, далее VAD) очень важный метод в приложениях обработки речи и аудио. Эффективность большинства, если не всех методов обработки речи/аудио сильно зависит от эффективности применяемого алгоритма VAD. Идеальный детектор активности голоса должен быть независимым от области применения приложения, от уровня шума и быть наименее зависимым от максимума параметров приложения, в котором его используют. В этой статье предлагается близкий к идеальному алгоритм VAD, который одновременно легок в реализации и устойчив к шуму. Предложенный метод использует такие кратковременные характеристики как Spectral Flatness (SF) (спектральная плоскостность, ровность) и Short-term Energy, что делает метод целесообразным для применения в реальном времени. Этот метод был проверен на нескольких записях с разным уровнем шума и сравнивался с недавно преложенными методами. Эксперименты показали удовлетворительные результаты при разных уровнях шума.
Читать дальше →

Web-дизайн 2013: традиции, новшества, основы

Reading time7 min
Views65K
Web-дизайн находится в постоянном движении: с каждым годом он развивается и видоизменяется под воздействием всевозможных факторов, обрастая новыми интересными инструментами и оставляя позади все старое и неактуальное. Нынешний год можно охарактеризовать тем, что одной из причин развития дизайна становится все большее распространение мобильных устройств и планшетов, появление HTML 5. Но давайте подробнее остановимся на тенденциях web-дизайна в 2013 году.
Читать дальше →

Понятно про CSS Masking и Shapes Modules, или Будущая революция дизайна контента

Reading time6 min
Views60K
Доброго времени суток уважаемые хабражители. На сегодняшний день с помощью CSS можно создать множество различных элементов. Это безусловно очень радует, вспоминая веб несколько лет назад. Но порой так «устаешь» от всех этих изощрений с :before и :after… Недавно я нашел две интересных спецификации CSS Masking Level 1 и CSS Shapes Level 2, благодаря которым в недалеком будущем перед нами откроются совершенно новые возможности оформления контента и разработки форм элементов.

CSS Masking


Совместимость

Все современные браузеры поддерживают свойства mask и clip-path, как определено в SVG 1.1 для элементов SVG. Но только Firefox позволяет применять эти свойства к HTML элементам, причем без префиксов. Но говоря конкретно про спецификацию CSS Masking, то свойства mask, clip-path, mask-box-image поддерживаются только на последних Webkit/Blink с префиксом webkit.

clip-path


Свойство clip-path создает область отсечения для любого из HTML элементов или графических элементов, в том числе элементам-контейнерам SVG — clipPath. Образовавшиеся элементы возможно анимировать. Одно впечатляющее демо (к сожалению работает только на последних Chrome).
Читать дальше →

Почему с нормальным распределением не все нормально

Reading time7 min
Views53K
image

Нормальное распределение (распределение Гаусса) всегда играло центральную роль в теории вероятностей, так как возникает очень часто как результат воздействия множества факторов, вклад любого одного из которых ничтожен. Центральная предельная теорема (ЦПТ), находит применение фактически во всех прикладных науках, делая аппарат статистики универсальным. Однако, весьма часты случаи, когда ее применение невозможно, а исследователи пытаются всячески организовать подгонку результатов под гауссиану. Вот про альтернативный подход в случае влияния на распределение множества факторов я сейчас и расскажу.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity