Pull to refresh
19
0
Глеб @gleberof

User

Send message

Свет и освещение

Reading time7 min
Views165K
Часто (в том числе и на хабре) всплывает вопрос освещения, особенно «нанотехнологиченого» светодиодного и зачастую говны священных войн «светодиод» против люминисцентных ламп начинают подбурливать. Больше года я уже собирался написать статью о свете, и оно наконец свершилось.
Из этой статьи вы узнаете почему в фотостудиях не снимают с люминесцентными лампами, почему светодиоды до сих пор не захватили мир и стоит ли ими освещать улицы. Поехали!
Читать дальше →

Юзабилити веб-форм или онлайн-заказ по-человечески

Reading time7 min
Views5.4K
Сегодня мне пришел заказ от весьма крупной компании. Они просят реализовать на одном из их сайтов вот такое решение (орфография оригинала, названия изменены):

Пользователь на сайте заходит в «Калькулятор стоимости решения „ЗАО Рога и Копыта“.
Там он отвечает на 11 вопросов для расчета стоимости решения. После этого пользователю должно быть предложено заполнить свои ФИО, должность, название организации и email.
На указанный email должно быть отправлено уведомление: „По указанному адресу в скором времени Вам будет выслана стоимости решения “ЗАО Рога и Копыта», на основе заполненной на сайте rogaiko.pyta анкеты".
На нашу почту должены прийти контакты пользователя и ответы на вопросы. В течении суток мы рассчитываем решение и высылаем на указанный адрес.

(прим.авт. — средняя стоимость решения более миллиона рублей).

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

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

2. Большинство пользователей настоящих онлайн-калькуляторов подсчитывают на них что-то, в основном, ради любопытства, пусть и не праздного. Для них это быстрый способ узнать, стоит ли им тратить время на общение с этой компанией, или нет, а если да, то можно ли как-то сэкономить на том или ином решении. Для этого они могут пользоваться калькулятором несколько раз, вводя разные параметры и сравнивая результаты. Делается это, как правило, без особой предварительной подготовки, и некоторые параметры пользователь может ввести с изрядной погрешностью, что называется, «от фонаря». Заниматься этим будет, вероятно, сотрудник невысокой должности и квалификации, либо просто частное лицо.
Факт использования калькулятора совершенно не означает готовности пользователя пойти дальше и сделать заказ. Калькулятор лишь облегчает ему процесс принятия решения. И возможность быстро, навскидку, сравнить несколько результатов ему в этом сильно помогает.
Читать дальше →

Пример техзадания на сайт. Сэкономит время и нервы

Reading time2 min
Views41K
Сайт – всегда компромисс между разработчиком и владельцем, каждый из которых – профессионал в своей области.

Точек зрения на то, каким должен быть сайт, много: у программиста одна, у дизайнера – другая, у интернет-маркетолога – третья, у владельца…

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

В чем преимущества грамотно написанного технического задания:
  • однозначное понимание всеми участниками проекта того, как и что должно работать
  • экономия времени на разработке и всяческих уточнениях
  • возможность еще до начала работы оценить сложность проекта и продумать тонкие моменты
  • возможность после завершения работы отследить, все ли было сделано так, как задумывалось
  • возможность рассчитать окончательную стоимость проекта до начала работы
  • возможность распределить ответственности обеих сторон

под катом - выдержки из концепции сайта

Суффиксный массив — удобная замена суффиксного дерева

Reading time14 min
Views34K
Здравствуйте, уважаемое сообщество! Думаю, многим знакома такая структура данных как суффиксное дерево. На Хабре уже было описание как его построить и зачем. Если вкратце, то оно нужно тогда, когда надо много раз искать какие-то произвольные образцы Xi в заранее заданном тексте A, а строится такое дерево мучительно с помощью алгоритма Укконена (есть и другие варианты, но они предполагают еще большее количество страданий). Общее наблюдение при работе с алгоритмами таково, что деревья — это, конечно, хорошо, но на практике их лучше избегать из за серьезных оверхэдов по памяти и не очень оптимального (с точки зрения эффективности оперирования данными компьютером) расположения. Кроме того, именно в таком дереве есть еще более существенная неприятность, а именно алфавитнозависимость структуры. Для решения этих проблем был придуман суффиксный массив. О том как его строить и как использовать и пойдет в этой статье.

Материал статьи предполагает знание понятий суффикса и префикса строки, а также знание того, как работает бинарный поиск. Надо также представлять, что такое стабильная сортировка и поразрядная сортировка, а также понимание, что имеется ввиду под стабильной сортировкой подсчетом. Для некоторых частей нам понадобится знание задачи о минимуме на отрезке — Range Minimum Query (RMQ). Ну, в общем, вас предупредили: никто не говорил, что будет просто.

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

Семь аспектов, как Github изменил мир Open Source

Reading time2 min
Views6.8K
Как известно, мир Open Source быстро меняется. Мы постоянно отслеживаем всё новое, пытаемся не отстать. Я уверен, что проект Github оказал сильное влияние и сделал Open Source более понятным и общедоступным. Каким образом?
Читать дальше →

Сделай сам: регистрация ООО

Reading time6 min
Views33K
Не так давно мы размещали подкаст, в котором Антон Шаяхов поведал миру, как быстро и качественно зарегистрировать ИП. Совершенно незаслуженно мы обошли вниманием более сложный процесс. Исправляемся.

Дано: ведется деятельность в качестве ИП, есть доступ в интернет, уровень интеллекта выше среднего.
Задача: в кратчайшие сроки и с минимальными затратами закрыть ИП и зарегистрировать ООО.

Почему ООО?

Веб-кластер — опыт реального применения

Reading time9 min
Views20K
Приветствую, уважаемые сообщники!

Эта статья — о том, как мы реализовали веб-кластер для новостного портала (с пиком посещений в 130 тысяч уникальных посетителей в день — это 7Тб траффика за 3 дня — выборы и 2 последующих. Сейчас в среднем кластер раздаёт 35-40 Тб траффика в месяц), о том, как по-разному понимают одинаковые задачи программисты и журналисты, о том, как можно достичь одной и той же цели, идя разными путями.

Она будет интересна тем, кто хочет построить легко масштабируемый географически распределённый веб-кластер, не вкладывая астрономических сумм в оборудование (а по меркам телевидения — будут вообще смешные суммы).

Я больше чем уверен, что маркетологи, толкающие убер-решения свежевыпущенных продуктов, имеющих в своём названии слова «масштабируемый веб-кластер» или «horizontal infinite scalable web cluster», меня возненавидят.

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

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

eTraxis — SaaS трекер с хостингом в облаке

Reading time1 min
Views1.3K
Добрейшего.

Доогое время слежу за развитием open source проекта eTraxis, это система управления запросами на изменения. Большинству такие систенмы известны под именем «багтрекеры». Мне довелось написать для неё немного кода и поучаствовать в её внедрении для нужд большой команды (несколько десятков человек). Отличительная особенность его — большая гибкость в настройке шаблонов workflow, их полей, групп пользователей и прав доступа — вплоть до отдельного поля в произвольном состоянии.

В общем, проект мне интересен, слежу за его развитием. Ну а не так давно создатель системы решил выйти на новый уровень — и именно, создать онлайн-сервис (то, что сейчас принято называть SaaS). Сказано — сделано, был запущен https://www.etraxis.com/.
Читать дальше →

Канобувости, 82-й выпуск

Reading time1 min
Views8.3K


Приветствуем дорогих весенних зрителей! Сейчас «Канобувости» возьмут чуточку вашего оптимизма, выкинут за борт немного ММО — и этого хватит на 82-й выпуск. Кстати, с Питером Мулинье заряда набралось бы сразу на три сезона!

Смотрите в этом выпуске:

Uncharted 3: Drake’s Deception – погодьте, Джонс!;
Diablo III – консоли сатаны;
Alice: Madness Returns – чеширская голова;
Call of Juarez: The Cartel – на индейской границе;
Sony Computer Entertainment – бессонница в Англии.

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

Как оценить задачу до начала разработки сайта

Reading time5 min
Views29K
Постановка задачи — ключ к успеху любой работы. Если задача не поставлена чётко, то невозможно даже понять, решена ли она.

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

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

Простая библиотека для парсинга HTML

Reading time2 min
Views10K
Недавно зарелизил Leaf, это небольшая библиотека для парсинга HTML на Python.
Она уже довольно долгое время покрывает все мои нужды в парсинге, но еще есть идеи для развития.
Эта библиотека по сути обертка над lxml, которая делает работу с ней гораздо приятней.
далее...

Шпион в кармане. Каким образом ваши мобильники могут выдать ваши же географические координаты?

Reading time1 min
Views38K
[геопоиск]После того, как в начале февраля 2011 года в Ленте.Ru появилось сообщение о задержании в Нидерландах двенадцати сомалийских нелегалов по обвинению в подготовке теракта, некоторые читатели были обеспокоены упоминанием технологии задержания: было ведь гласно объявлено, что должностные лица получили сведения о положении нелегалов при помощи GPS-модулей в мобильниках, направив на телефонные номера нелегалов сообщение, которое было обработано мобильниками без ведома владельцев, после чего с мобильников (опять же без ведома владельцев) автоматически отправились SMS с указанием местоположения аппаратов. Судя по тому, что задержания были произведены в семи различных местах, эта технология должна была сработать в семи мобильниках (из максимум двенадцати), так что она наверняка является распространённою.

Оказывается:

1) Имея SMS-центр, легально подключённый к глобальной сети SS7, при помощи простого MAP-запроса, и зная всего лишь номер абонента, можно выяснить и его IMSI (номер SIM), и адрес того коммутатора, который обслуживает абонента, и состояние мобильника (включён или выключен). Подробнее — вон там. Если имеется карта привязки коммутаторов к местности, то это даёт приближённые координаты абонента.

2) Существует стандарт RRLP, описывающий способ считывания с GSM-мобильника его точных GPS-координат через сеть мобильной связи. Вон там пишут, что многие смартфоны с GPS (особенно штатовского производства) поддерживают этот стандарт, так как он был задуман как средство определения координат абонентов, попавших в беду. Достаточно создать поддельный узел сотовой связи вблизи абонента, чтобы невозбранно достигнуть желаемого.

Но этими или не этими способами воспользовались в Нидерландах?

Тайна.

Как написать игру за два дня

Reading time2 min
Views22K
Если вы любите компьютерные игры, вы скорее всего задумывались о том, чтобы написать свою собственную игру. И если вы до сих пор этого не сделали, то потому что:
  • не смогли собрать команду (программиста, дизайнера, сценариста, аниматора, художника — нужное подчеркнуть);
  • нет свободного времени.

Возможно, у вас была интересная идея. Может быть, вы даже начали ее прорабатывать. Но потом, за бытовыми проблемами, суетой и работой эта мечта как-то сама собой забылась. И теперь вы делаете сайты, программируете на java, рисуете визитки или пишете статьи… Но иногда, обычно некстати, мечта дает о себе знать: мешает вам заснуть или отвлекает от работы, и вы думаете: "Ладно, разберусь с делами, появится свободное время, соберу команду и сделаем!". А потом опять уходит на второй план.
Как с этим жить?

Самодельный SD Card Shield для Arduino

Reading time3 min
Views91K
Приветствую, %username%!
Подумал на днях, что для своего будущего 2х ядерного коптера (да и мало ли других проектов) неплохо бы потом сделать еще и черный ящик (GPS), а для этого надо много памяти и EEPROM не поможет, а поэтому стоит купить или сделать SD шилд для Arduino.
Купить — дороговато для такой мелочи и долго ждать пока пришлют, поэтому гуглим и находим что народ то клепает свои шилды, для этого нам понадобится всего 6 резисторов, переходник/разъем для карты памяти и сама карточка (заработало с картами SD и SDHC, отформатированными в FAT16 и FAT32).
Читать дальше →

OAuth 2.0 простым и понятным языком

Reading time7 min
Views863K
Логотип OAuth 2.0

На хабре уже писали про OAuth 1.0, но понятного объяснения того, что такое OAuth 2.0 не было. Ниже я расскажу, в чем отличия и преимущества OAuth 2.0 и, как его лучше использовать на сайтах, в мобильных и desktop-приложениях.

Что такое OAuth 2.0


OAuth 2.0 — протокол авторизации, позволяющий выдать одному сервису (приложению) права на доступ к ресурсам пользователя на другом сервисе. Протокол избавляет от необходимости доверять приложению логин и пароль, а также позволяет выдавать ограниченный набор прав, а не все сразу.

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

Рисуем цветной кубик в Mayavi

Reading time10 min
Views6.1K
Приветствую, хабравчане!

Сегодня хочу вам рассказать о том, что такое Mayavi и с чем его запивают его едят.

Mayavi — это кроссплатформенное приложение для визуализации научных данных (и не только). Распространяется по лицензии BSD, что позволяет использовать его в коммерческих приложениях.
image

Что умеет?
  • Строить 2D и 3D модели на основе скалярных/векторных данных
  • Открывать файлы VTK, PLOT3D
  • Сохранять результаты рендера в различных графических форматах
  • Может даже рендерить результаты MRI(Магнитно-резонансная томография)


Работать с ним можно тремя способами:
1) Работать непосредственно в интерфейсе Mayavi.
2) Подгружать/передавать в Mayavi уже готовые данные.
3) Написать питоновский скрипт, в котором можно задать для Mayavi все желаемые возможности.

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

Нечёткий поиск в тексте и словаре

Reading time13 min
Views268K

Введение


Алгоритмы нечеткого поиска (также известного как поиск по сходству или fuzzy string search) являются основой систем проверки орфографии и полноценных поисковых систем вроде Google или Yandex. Например, такие алгоритмы используются для функций наподобие «Возможно вы имели в виду …» в тех же поисковых системах.

В этой обзорной статье я рассмотрю следующие понятия, методы и алгоритмы:
  • Расстояние Левенштейна
  • Расстояние Дамерау-Левенштейна
  • Алгоритм Bitap с модификациями от Wu и Manber
  • Алгоритм расширения выборки
  • Метод N-грамм
  • Хеширование по сигнатуре
  • BK-деревья
А также проведу сравнительное тестирование качества и производительности алгоритмов.
Читать дальше →

Анимированные баннеры на Javascript — это просто*

Reading time7 min
Views20K
*) На самом деле все равно сложно, но зато проще, чем было раньше.

История началась с постановки задачи: нужно сделать анимированный баннер с примерно тридцатью объектами средствами HTML+javascript за один день. За день, конечно, баннер сделан не был, а был сделан за два усилиями трех человекодней. После выполнения задания осталась библиотека пакетной анимации, которую я назвал Scenario. О её доработанной версии я и хочу рассказать.

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

Запуск сценария из любого места предельно прост:

var newScenario = [...];
$.scenario(newScenario, {
    complete: function(time) {
        alert('Готово!');
    }
});

Осталось только разобраться, что писать вместо трех точек в примере :)
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity